コード例 #1
0
ファイル: setup_py.py プロジェクト: cristianmatache/pants
def is_ownable_target(tgt: Target, union_membership: UnionMembership) -> bool:
    return (
        # Note that we check for a PythonProvides field so that a python_distribution
        # target can be owned (by itself). This is so that if there are any 3rdparty
        # requirements directly on the python_distribution target, we apply them to the dist.
        # This isn't particularly useful (3rdparty requirements should be on the python_library
        # that consumes them)... but users may expect it to work anyway.
        tgt.has_field(PythonProvidesField) or tgt.has_field(PythonSources)
        or tgt.has_field(ResourcesSources)
        or tgt.get(Sources).can_generate(PythonSources, union_membership))
コード例 #2
0
 def opt_out(cls, tgt: Target) -> bool:
     if tgt.get(SkipPythonTestsField).value:
         return True
     if not tgt.address.is_file_target:
         return False
     file_name = PurePath(tgt.address.filename)
     return file_name.name == "conftest.py" or file_name.suffix == ".pyi"
コード例 #3
0
 def is_compatible(target: Target) -> bool:
     return (
         # Is directly applicable.
         any(fs.is_applicable(target) for fs in impl.field_sets) or
         # Is applicable via generated sources.
         any(target.has_field(g) for g in generator_sources) or
         # Is applicable via a generator.
         (isinstance(target, TargetFilesGenerator)
          and any(field in target.generated_target_cls.core_fields
                  for field in generator_sources)))
コード例 #4
0
 def create(cls, tgt: Target) -> "BinaryConfiguration":
     all_expected_fields: Dict[str, Type[Field]] = {
         dataclass_field.name: dataclass_field.type
         for dataclass_field in dataclasses.fields(cls)
         if issubclass(dataclass_field.type, Field)
     }
     return cls(  # type: ignore[call-arg]
         address=tgt.address,
         **{
             dataclass_field_name: (
                 tgt[field_cls] if field_cls in cls.required_fields else tgt.get(field_cls)
             )
             for dataclass_field_name, field_cls in all_expected_fields.items()
         },
     )
コード例 #5
0
def is_ownable_target(tgt: Target, union_membership: UnionMembership) -> bool:
    return (
        # Note that we check for a PythonProvides field so that a python_distribution
        # target can be owned (by itself). This is so that if there are any 3rdparty
        # requirements directly on the python_distribution target, we apply them to the dist.
        # This isn't particularly useful (3rdparty requirements should be on the python_sources
        # that consumes them)... but users may expect it to work anyway.
        tgt.has_field(PythonProvidesField)
        or tgt.has_field(PythonSourceField)
        or tgt.has_field(ResourceSourceField)
        or tgt.get(SourcesField).can_generate(PythonSourceField, union_membership)
        or tgt.get(SourcesField).can_generate(ResourceSourceField, union_membership)
        # We also check for generating sources so that dependencies on `python_sources(sources=[])`
        # is included. Those won't generate any `python_source` targets, but still can be
        # dependended upon.
        or tgt.has_field(PythonGeneratingSourcesBase)
    )
コード例 #6
0
def maybe_get_codegen_request_type(
        tgt: Target,
        union_membership: UnionMembership) -> GoCodegenBuildRequest | None:
    if not tgt.has_field(SourcesField):
        return None
    generate_request_types = cast(
        FrozenOrderedSet[Type[GoCodegenBuildRequest]],
        union_membership.get(GoCodegenBuildRequest))
    sources_field = tgt[SourcesField]
    relevant_requests = [
        req for req in generate_request_types
        if isinstance(sources_field, req.generate_from)
    ]
    if len(relevant_requests) > 1:
        generate_from_sources = relevant_requests[0].generate_from.__name__
        raise AmbiguousCodegenImplementationsException(
            f"Multiple registered code generators from {GoCodegenBuildRequest.__name__} can "
            f"generate from {generate_from_sources}. It is ambiguous which implementation to "
            f"use.\n\n"
            f"Possible implementations:\n\n"
            f"{bullet_list(sorted(generator.__name__ for generator in relevant_requests))}"
        )
    return relevant_requests[0](tgt) if relevant_requests else None
コード例 #7
0
 def is_valid(cls, tgt: Target) -> bool:
     return tgt.has_fields(cls.required_fields)
コード例 #8
0
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipFlake8Field).value
コード例 #9
0
def is_ownable_target(tgt: Target, union_membership: UnionMembership) -> bool:
    return (tgt.has_field(PythonSources) or tgt.has_field(ResourcesSources)
            or tgt.get(Sources).can_generate(PythonSources, union_membership))
コード例 #10
0
 def is_applicable(cls, tgt: Target) -> bool:
     return tgt.get(UsesMyPycField).value
コード例 #11
0
def is_first_party_package_target(tgt: Target) -> bool:
    return tgt.has_field(GoPackageSources)
コード例 #12
0
ファイル: rules.py プロジェクト: patricklaw/pants
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipShellcheckField).value
コード例 #13
0
 def maybe_get_resolve(t: Target) -> str | None:
     if not t.has_field(PythonResolveField):
         return None
     return t[PythonResolveField].normalized_value(python_setup)
コード例 #14
0
def _is_exported(target: Target) -> bool:
    return target.has_field(
        PythonProvidesField) and target[PythonProvidesField].value is not None
コード例 #15
0
 def belongs_to_language(cls, tgt: Target) -> bool:
     return tgt.has_fields(cls.required_fields)
コード例 #16
0
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipHadolintField).value
コード例 #17
0
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipPyUpgradeField).value
コード例 #18
0
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipShunit2TestsField).value
コード例 #19
0
ファイル: pytest_runner.py プロジェクト: patricklaw/pants
 def is_applicable(cls, target: Target) -> bool:
     return bool(target.get(RuntimePackageDependenciesField).value)
コード例 #20
0
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipPythonTestsField).value
コード例 #21
0
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipBufFormatField).value
コード例 #22
0
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipMyPyField).value and not tgt.address.is_file_target
コード例 #23
0
ファイル: rules.py プロジェクト: hephex/pants
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipAutoflakeField).value
コード例 #24
0
def is_third_party_package_target(tgt: Target) -> bool:
    return tgt.has_field(GoExternalPackageDependencies)
コード例 #25
0
ファイル: mapper.py プロジェクト: hephex/pants
 def filter_target(tgt: Target) -> bool:
     return tag in (tgt.get(Tags).value or [])
コード例 #26
0
ファイル: target_test.py プロジェクト: rhysyngsun/pants
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(OptOutField).value is True
コード例 #27
0
def is_ownable_target(tgt: Target) -> bool:
    return tgt.has_field(PythonSources) or tgt.has_field(ResourcesSources)
コード例 #28
0
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipDocformatterField).value
コード例 #29
0
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipGofmtField).value
コード例 #30
0
ファイル: rules.py プロジェクト: codealchemy/pants
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipGoogleJavaFormatField).value