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

pantsbuild / pants / 23715422062

29 Mar 2026 05:59PM UTC coverage: 52.399% (-40.5%) from 92.917%
23715422062

Pull #23200

github

web-flow
Merge ee17c6764 into da60c6486
Pull Request #23200: perf: Port FrozenOrderedSet to rust

18 of 26 new or added lines in 6 files covered. (69.23%)

23004 existing lines in 605 files now uncovered.

31634 of 60371 relevant lines covered (52.4%)

1.05 hits per line

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

94.29
/src/python/pants/build_graph/address.py
1
# Copyright 2014 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
3

4
from __future__ import annotations
2✔
5

6
import dataclasses
2✔
7
from collections.abc import Iterable
2✔
8
from dataclasses import dataclass
2✔
9

10
from pants.base.exceptions import MappingError
2✔
11
from pants.engine.engine_aware import EngineAwareParameter
2✔
12
from pants.engine.internals.native_engine import (  # noqa: F401
2✔
13
    BANNED_CHARS_IN_GENERATED_NAME as BANNED_CHARS_IN_GENERATED_NAME,
14
)
15
from pants.engine.internals.native_engine import (  # noqa: F401
2✔
16
    BANNED_CHARS_IN_PARAMETERS as BANNED_CHARS_IN_PARAMETERS,
17
)
18
from pants.engine.internals.native_engine import (  # noqa: F401
2✔
19
    BANNED_CHARS_IN_TARGET_NAME as BANNED_CHARS_IN_TARGET_NAME,
20
)
21
from pants.engine.internals.native_engine import Address as Address  # noqa: F401
2✔
22
from pants.engine.internals.native_engine import AddressInput as AddressInput  # noqa: F401
2✔
23
from pants.engine.internals.native_engine import (  # noqa: F401
2✔
24
    AddressParseException as AddressParseException,
25
)
26
from pants.engine.internals.native_engine import (  # noqa: F401
2✔
27
    InvalidAddressError as InvalidAddressError,
28
)
29
from pants.engine.internals.native_engine import (  # noqa: F401
2✔
30
    InvalidParametersError as InvalidParametersError,
31
)
32
from pants.engine.internals.native_engine import (  # noqa: F401
2✔
33
    InvalidSpecPathError as InvalidSpecPathError,
34
)
35
from pants.engine.internals.native_engine import (  # noqa: F401
2✔
36
    InvalidTargetNameError as InvalidTargetNameError,
37
)
38
from pants.engine.internals.native_engine import (  # noqa: F401
2✔
39
    UnsupportedWildcardError as UnsupportedWildcardError,
40
)
41
from pants.util.strutil import bullet_list, softwrap
2✔
42

43

44
@dataclass(frozen=True)
2✔
45
class BuildFileAddressRequest(EngineAwareParameter):
2✔
46
    """A request to find the BUILD file path for an address."""
47

48
    address: Address
2✔
49
    description_of_origin: str = dataclasses.field(hash=False, compare=False)
2✔
50

51
    def debug_hint(self) -> str:
2✔
52
        return self.address.spec
×
53

54

55
@dataclass(frozen=True)
2✔
56
class BuildFileAddress:
2✔
57
    """An address, along with the relative file path of its BUILD file."""
58

59
    address: Address
2✔
60
    rel_path: str
2✔
61

62

63
class ResolveError(MappingError):
2✔
64
    """Indicates an error resolving targets."""
65

66
    @classmethod
2✔
67
    def did_you_mean(
2✔
68
        cls,
69
        bad_address: Address,
70
        *,
71
        description_of_origin: str,
72
        known_names: Iterable[str],
73
        namespace: str,
74
    ) -> ResolveError:
UNCOV
75
        return cls(
×
76
            softwrap(
77
                f"""
78
                The address {bad_address} from {description_of_origin} does not exist.
79

80
                The target name ':{bad_address.target_name}' is not defined in the directory
81
                {namespace}. Did you mean one of these target names?\n
82
                """
83
                + bullet_list(f":{name}" for name in known_names)
84
            )
85
        )
86

87

88
@dataclass(frozen=True)
2✔
89
class MaybeAddress:
2✔
90
    """A target address, or an error if it could not be created.
91

92
    Note that this does not validate the address's target actually exists. It only validates that
93
    the address is well-formed and that its spec_path exists.
94

95
    Reminder: you may need to catch errors when creating the input `AddressInput` if the address is
96
    not well-formed.
97
    """
98

99
    val: Address | ResolveError
2✔
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