• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 21552830208

31 Jan 2026 11:40PM UTC coverage: 80.277% (-0.05%) from 80.324%
21552830208

Pull #23062

github

web-flow
Merge 808a9786c into 2c4dcf9cf
Pull Request #23062: Remove support for Get

18 of 25 new or added lines in 4 files covered. (72.0%)

17119 existing lines in 541 files now uncovered.

78278 of 97510 relevant lines covered (80.28%)

3.36 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.97
/src/python/pants/backend/codegen/avro/target_types.py
1
# Copyright 2021 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
3

UNCOV
4
from pants.engine.rules import collect_rules, rule
2✔
UNCOV
5
from pants.engine.target import (
2✔
6
    COMMON_TARGET_FIELDS,
7
    AllTargets,
8
    Dependencies,
9
    MultipleSourcesField,
10
    OverridesField,
11
    SingleSourceField,
12
    Target,
13
    TargetFilesGenerator,
14
    Targets,
15
    generate_file_based_overrides_field_help_message,
16
    generate_multiple_sources_field_help_message,
17
)
UNCOV
18
from pants.util.docutil import doc_url
2✔
UNCOV
19
from pants.util.logging import LogLevel
2✔
UNCOV
20
from pants.util.strutil import help_text
2✔
21

22

UNCOV
23
class AvroDependenciesField(Dependencies):
2✔
UNCOV
24
    pass
2✔
25

26

UNCOV
27
class AllAvroTargets(Targets):
2✔
UNCOV
28
    pass
2✔
29

30

UNCOV
31
@rule(desc="Find all Avro targets in project", level=LogLevel.DEBUG)
2✔
UNCOV
32
async def find_all_avro_targets(targets: AllTargets) -> AllAvroTargets:
2✔
33
    return AllAvroTargets(tgt for tgt in targets if tgt.has_field(AvroSourceField))
×
34

35

36
# -----------------------------------------------------------------------------------------------
37
# `avro_source` target
38
# -----------------------------------------------------------------------------------------------
39

40

UNCOV
41
class AvroSourceField(SingleSourceField):
2✔
UNCOV
42
    expected_file_extensions = (".avsc", ".avpr", ".avdl")
2✔
43

44

UNCOV
45
class AvroSourceTarget(Target):
2✔
UNCOV
46
    alias = "avro_source"
2✔
UNCOV
47
    core_fields = (
2✔
48
        *COMMON_TARGET_FIELDS,
49
        AvroDependenciesField,
50
        AvroSourceField,
51
    )
UNCOV
52
    help = help_text(
2✔
53
        f"""
54
        A single Avro file used to generate various languages.
55

56
        See {doc_url("avro")}.
57
        """
58
    )
59

60

61
# -----------------------------------------------------------------------------------------------
62
# `avro_sources` target generator
63
# -----------------------------------------------------------------------------------------------
64

65

UNCOV
66
class AvroSourcesGeneratingSourcesField(MultipleSourcesField):
2✔
UNCOV
67
    default = ("*.avsc", "*.avpr", "*.avdl")
2✔
UNCOV
68
    expected_file_extensions = (".avsc", ".avpr", ".avdl")
2✔
UNCOV
69
    help = generate_multiple_sources_field_help_message(
2✔
70
        "Example: `sources=['example.avsc', 'new_*.avpr', '!old_ignore.avdl']`"
71
    )
72

73

UNCOV
74
class AvroSourcesOverridesField(OverridesField):
2✔
UNCOV
75
    help = generate_file_based_overrides_field_help_message(
2✔
76
        AvroSourceTarget.alias,
77
        """
78
        overrides={
79
            "bar.proto": {"description": "our user model"]},
80
            ("foo.proto", "bar.proto"): {"tags": ["overridden"]},
81
        }
82
        """,
83
    )
84

85

UNCOV
86
class AvroSourcesGeneratorTarget(TargetFilesGenerator):
2✔
UNCOV
87
    alias = "avro_sources"
2✔
UNCOV
88
    core_fields = (
2✔
89
        *COMMON_TARGET_FIELDS,
90
        AvroSourcesGeneratingSourcesField,
91
        AvroSourcesOverridesField,
92
    )
UNCOV
93
    generated_target_cls = AvroSourceTarget
2✔
UNCOV
94
    copied_fields = COMMON_TARGET_FIELDS
2✔
UNCOV
95
    moved_fields = (AvroDependenciesField,)
2✔
UNCOV
96
    help = "Generate a `avro_source` target for each file in the `sources` field."
2✔
97

98

UNCOV
99
def rules():
2✔
UNCOV
100
    return collect_rules()
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc