Skip to content

Commit 3df3efa

Browse files
committed
Fix cyclic dependency between 'utils' and '_compat'
The compat subpackage having an `__init__.py` created a cycle with the introduction of pathlib compatibility tooling. The reason being that we have... utils -> _compat.path_compat _compat.pip_compat -> utils (fine on its own) plus _compat -> _compat.pip_compat which makes `utils -> _compat.path_compat` into a cycle. This probably indicates some level of code smell -- the situation arises because pip_compat and utils aren't very clearly defined as distinct -- but for now it's trivial to fix by just getting rid of the subpackage `__init__.py` imports and making each of these pieces a standalone module.
1 parent 95a824d commit 3df3efa

File tree

7 files changed

+6
-21
lines changed

7 files changed

+6
-21
lines changed

piptools/_compat/__init__.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +0,0 @@
1-
from __future__ import annotations
2-
3-
from .pip_compat import (
4-
Distribution,
5-
create_wheel_cache,
6-
get_dev_pkgs,
7-
parse_requirements,
8-
)
9-
10-
__all__ = [
11-
"Distribution",
12-
"parse_requirements",
13-
"create_wheel_cache",
14-
"get_dev_pkgs",
15-
]

piptools/repositories/pypi.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
from pip._vendor.packaging.version import _BaseVersion
3131
from pip._vendor.requests import RequestException, Session
3232

33-
from .._compat import create_wheel_cache
33+
from .._compat.pip_compat import create_wheel_cache
3434
from ..exceptions import NoCandidateFound
3535
from ..logging import log
3636
from ..utils import (

piptools/resolver.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from piptools.cache import DependencyCache
2727
from piptools.repositories.base import BaseRepository
2828

29-
from ._compat import create_wheel_cache
29+
from ._compat.pip_compat import create_wheel_cache
3030
from .exceptions import PipToolsError
3131
from .logging import log
3232
from .utils import (

piptools/scripts/compile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from pip._internal.req import InstallRequirement
1515
from pip._internal.utils.misc import redact_auth_from_url
1616

17-
from .._compat import parse_requirements
17+
from .._compat.pip_compat import parse_requirements
1818
from ..build import ProjectMetadata, build_project_metadata
1919
from ..cache import DependencyCache
2020
from ..exceptions import NoCandidateFound, PipToolsError

piptools/scripts/sync.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from pip._internal.metadata import get_environment
1616

1717
from .. import sync
18-
from .._compat import Distribution, parse_requirements
18+
from .._compat.pip_compat import Distribution, parse_requirements
1919
from ..exceptions import PipToolsError
2020
from ..logging import log
2121
from ..repositories import PyPIRepository

piptools/sync.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
)
1818
from pip._vendor.packaging.utils import canonicalize_name
1919

20-
from ._compat import Distribution, get_dev_pkgs
20+
from ._compat.pip_compat import Distribution, get_dev_pkgs
2121
from .exceptions import IncompatibleRequirements
2222
from .logging import log
2323
from .utils import (

tests/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from pip._vendor.packaging.version import Version
3030
from pip._vendor.pkg_resources import Requirement
3131

32-
from piptools._compat import Distribution
32+
from piptools._compat.pip_compat import Distribution
3333
from piptools.cache import DependencyCache
3434
from piptools.exceptions import NoCandidateFound
3535
from piptools.locations import DEFAULT_CONFIG_FILE_NAMES

0 commit comments

Comments
 (0)