Пример #1
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_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
 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
 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
 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
 def filter_target(tgt: Target) -> bool:
     return tag in (tgt.get(Tags).value or [])
Пример #26
0
 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
 def opt_out(cls, tgt: Target) -> bool:
     return tgt.get(SkipGoogleJavaFormatField).value