• 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

0.0
/src/python/pants/backend/python/typecheck/pytype/subsystem.py
1
# Copyright 2022 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
3

UNCOV
4
from __future__ import annotations
×
5

UNCOV
6
from pants.backend.python.subsystems.python_tool_base import PythonToolBase
×
UNCOV
7
from pants.backend.python.target_types import ConsoleScript
×
UNCOV
8
from pants.core.util_rules.config_files import ConfigFilesRequest
×
UNCOV
9
from pants.option.option_types import ArgsListOption, FileOption, SkipOption
×
UNCOV
10
from pants.util.strutil import help_text, softwrap
×
11

12

UNCOV
13
class Pytype(PythonToolBase):
×
UNCOV
14
    options_scope = "pytype"
×
UNCOV
15
    name = "Pytype"
×
UNCOV
16
    help_short = help_text(
×
17
        """
18
        The Pytype utility for typechecking Python code
19
        (https://github.com/google/pytype).
20
        """
21
    )
22

UNCOV
23
    register_interpreter_constraints = True
×
UNCOV
24
    default_interpreter_constraints = ["CPython>=3.9,<3.14"]
×
25

UNCOV
26
    default_main = ConsoleScript("pytype")
×
UNCOV
27
    default_requirements = ["pytype==2024.9.13"]
×
UNCOV
28
    default_version = "pytype@2024.9.13"
×
29

UNCOV
30
    default_lockfile_resource = ("pants.backend.python.typecheck.pytype", "pytype.lock")
×
31

UNCOV
32
    skip = SkipOption("check")
×
UNCOV
33
    args = ArgsListOption(example="--version")
×
UNCOV
34
    config = FileOption(
×
35
        default=None,
36
        help=softwrap(
37
            """
38
            Path to an toml config file understood by Pytype
39
            (https://github.com/google/pytype#config-file).
40
            """
41
        ),
42
    )
43

UNCOV
44
    def config_request(self) -> ConfigFilesRequest:
×
45
        """Pytype will look for a  `pyproject.toml` (with a `[tool.pytype]` section) in the project
46
        root.
47

48
        Pytype's configuration content is specified here: https://github.com/google/pytype#config-
49
        file.
50
        """
51

52
        return ConfigFilesRequest(
×
53
            discovery=True,
54
            check_existence=[self.config] if self.config else [],
55
            check_content={"pyproject.toml": b"[tool.pytype"},
56
        )
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