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

pantsbuild / pants / 19015773527

02 Nov 2025 05:33PM UTC coverage: 17.872% (-62.4%) from 80.3%
19015773527

Pull #22816

github

web-flow
Merge a12d75757 into 6c024e162
Pull Request #22816: Update Pants internal Python to 3.14

4 of 5 new or added lines in 3 files covered. (80.0%)

28452 existing lines in 683 files now uncovered.

9831 of 55007 relevant lines covered (17.87%)

0.18 hits per line

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

84.21
/src/python/pants/engine/explorer.py
1
# Copyright 2022 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
3

4
from __future__ import annotations
1✔
5

6
from collections.abc import Callable, Iterable
1✔
7
from dataclasses import dataclass
1✔
8
from typing import Any, TypeVar, cast
1✔
9

10
from pants.base.exiter import ExitCode
1✔
11
from pants.build_graph.build_configuration import BuildConfiguration
1✔
12
from pants.engine.environment import EnvironmentName
1✔
13
from pants.engine.internals.scheduler import SchedulerSession
1✔
14
from pants.engine.internals.selectors import Params
1✔
15
from pants.engine.rules import QueryRule
1✔
16
from pants.engine.unions import UnionRule, union
1✔
17
from pants.help.help_info_extracter import AllHelpInfo
1✔
18

19
T = TypeVar("T")
1✔
20

21

22
@union(in_scope_types=[EnvironmentName])
1✔
23
@dataclass(frozen=True)
1✔
24
class ExplorerServerRequest:
1✔
25
    address: str
1✔
26
    port: int
1✔
27
    request_state: RequestState
1✔
28

29
    @classmethod
1✔
30
    def rules_for_implementation(cls, impl: type):
1✔
31
        return (
×
32
            UnionRule(cls, impl),
33
            QueryRule(ExplorerServer, (impl, EnvironmentName)),
34
        )
35

36

37
@dataclass(frozen=True)
1✔
38
class ExplorerServer:
1✔
39
    main: Callable[[], ExitCode]
1✔
40

41
    def run(self) -> ExitCode:
1✔
42
        # Work around a mypy issue with a callable attribute.  Related to
43
        # https://github.com/python/mypy/issues/6910.  What has me bugged out is why we don't see
44
        # this issue with `WorkunitsCallbackFactory.callback_factory` too, for instance.
45
        main = cast("Callable[[], ExitCode]", getattr(self, "main"))
×
46
        return main()
×
47

48

49
@dataclass(frozen=True)
1✔
50
class RequestState:
1✔
51
    all_help_info: AllHelpInfo
1✔
52
    build_configuration: BuildConfiguration
1✔
53
    scheduler_session: SchedulerSession
1✔
54
    env_name: EnvironmentName
1✔
55

56
    def product_request(
1✔
57
        self,
58
        product: type[T],
59
        subjects: Iterable[Any] = (),
60
        poll: bool = False,
61
        timeout: float | None = None,
62
    ) -> T:
UNCOV
63
        result = self.scheduler_session.product_request(
×
64
            product,
65
            [Params(*subjects, self.env_name)],
66
            poll=poll,
67
            timeout=timeout,
68
        )
UNCOV
69
        assert len(result) == 1
×
UNCOV
70
        return cast(T, result[0])
×
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

© 2025 Coveralls, Inc