Skip to content

Commit

Permalink
refactor: use packaging lib instead of custom function
Browse files Browse the repository at this point in the history
The package was already an indirect dependency
  • Loading branch information
andreoliwa committed Nov 9, 2023
1 parent 1f1f2a2 commit 2651164
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 36 deletions.
8 changes: 1 addition & 7 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ marshmallow = {version = ">=3.0.0b10"}
# TypeError: _deserialize() got an unexpected keyword argument 'partial'
marshmallow-polyfield = "^5.10"
"more-itertools" = "*"
packaging = "*"
pluggy = "*"
# TODO: chore: move to dependency groups once the feature is on a stable version of Poetry
# https://python-poetry.org/docs/master/managing-dependencies/#dependency-groups
Expand Down
5 changes: 3 additions & 2 deletions src/nitpick/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from loguru import logger
from marshmallow_polyfield import PolyField
from more_itertools import always_iterable
from packaging.version import parse as parse_version
from pluggy import PluginManager
from tomlkit import TOMLDocument
from tomlkit.items import KeyType, SingleKey
Expand All @@ -34,7 +35,7 @@
ROOT_PYTHON_FILES,
)
from nitpick.exceptions import QuitComplainingError
from nitpick.generic import filter_names, glob_files, relative_to_current_dir, version_to_tuple
from nitpick.generic import filter_names, glob_files, relative_to_current_dir
from nitpick.plugins.info import FileInfo
from nitpick.schemas import BaseNitpickSchema, flatten_marshmallow_errors, help_message
from nitpick.violations import Fuss, ProjectViolations, Reporter, StyleViolations
Expand Down Expand Up @@ -299,7 +300,7 @@ def merge_styles(self, offline: bool) -> Iterator[Fuss]:

minimum_version = search_json(self.style_dict, JMEX_NITPICK_MINIMUM_VERSION, None)
logger.debug(f"Minimum version: {minimum_version}")
if minimum_version and version_to_tuple(NitpickFlake8Extension.version) < version_to_tuple(minimum_version):
if minimum_version and parse_version(NitpickFlake8Extension.version) < parse_version(minimum_version):
yield Reporter().make_fuss(
ProjectViolations.MINIMUM_VERSION,
project=PROJECT_NAME,
Expand Down
27 changes: 0 additions & 27 deletions src/nitpick/generic.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,33 +18,6 @@
from nitpick.typedefs import PathOrStr


def version_to_tuple(version: str | None = None) -> tuple[int, ...]:
"""Transform a version number into a tuple of integers, for comparison.
>>> version_to_tuple("")
()
>>> version_to_tuple(" ")
()
>>> version_to_tuple(None)
()
>>> version_to_tuple("1.0.1")
(1, 0, 1)
>>> version_to_tuple(" 0.2 ")
(0, 2)
>>> version_to_tuple(" 2 ")
(2,)
:param version: String with the version number. It must be integers split by dots.
:return: Tuple with the version number.
"""
if not version:
return ()
clean_version = version.strip()
if not clean_version:
return ()
return tuple(int(part) for part in clean_version.split(DOT))


def relative_to_current_dir(path_or_str: PathOrStr | None) -> str:
"""Return a relative path to the current dir or an absolute path."""
if not path_or_str:
Expand Down

0 comments on commit 2651164

Please sign in to comment.