well… I tried your code, and with this: git diff -...
# general
c
well… I tried your code, and with this: git diff --staged diff --git a/src/python/pants/backend/demo/BUILD b/src/python/pants/backend/demo/BUILD new file mode 100644 index 000000000..0ec0a26db --- /dev/null +++ b/src/python/pants/backend/demo/BUILD @@ -0,0 +1,5 @@ +# Copyright 2023 Pants project contributors (see CONTRIBUTORS.md). +# Licensed under the Apache License, Version 2.0 (see LICENSE). +python_sources() + +portable_object_file(name=“testing”) diff --git a/src/python/pants/backend/demo/__init__.py b/src/python/pants/backend/demo/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/python/pants/backend/demo/messages.po b/src/python/pants/backend/demo/messages.po new file mode 100644 index 000000000..e69de29bb diff --git a/src/python/pants/backend/demo/register.py b/src/python/pants/backend/demo/register.py new file mode 100644 index 000000000..bb6119527 --- /dev/null +++ b/src/python/pants/backend/demo/register.py @@ -0,0 +1,64 @@ +# Copyright 2023 Pants project contributors (see CONTRIBUTORS.md). +# Licensed under the Apache License, Version 2.0 (see LICENSE). +from dataclasses import dataclass +from typing import Iterable + +from pants.engine.rules import Rule, UnionRule, collect_rules, rule +from pants.engine.target import ( + COMMON_TARGET_FIELDS, + Dependencies, + FieldSet, + InferDependenciesRequest, + InferredDependencies, + SingleSourceField, + Target, +) + + +class PortableObjectSourceField(SingleSourceField): + expected_file_extensions = (“.po”,) + default = “messages.po” + required = False + + +class PortableObjectDependenciesField(Dependencies): + pass + + +class PortableObjectTarget(Target): + alias = “portable_object_file” + core_fields = ( + PortableObjectSourceField, + PortableObjectDependenciesField, + *COMMON_TARGET_FIELDS, + ) + help = “A gettext Portable Object file.” + + +@dataclass(frozen=True) +class PortableObjectFileInferenceFieldSet(FieldSet): + required_fields = (PortableObjectSourceField, PortableObjectDependenciesField) + + source: PortableObjectSourceField + dependencies: PortableObjectDependenciesField + + +class InferPortableObjectDependencies(InferDependenciesRequest): + infer_from = PortableObjectFileInferenceFieldSet + + +@rule +async def infer_markup_files_for_portable_object_file( + request: InferPortableObjectDependencies, +) -> InferredDependencies: + raise RuntimeError(“Please Run”) + + return InferredDependencies([]) + + +def rules() -> Iterable[Rule]: + return [*collect_rules(), UnionRule(InferDependenciesRequest, InferPortableObjectDependencies)] + + +def target_types() -> Iterable[type[Target]]: + return [PortableObjectTarget]