lazy import pkg_resources for faster cli

This commit is contained in:
Manuel Barkhau 2021-03-18 18:40:13 +00:00
parent 8f437ef9c7
commit 92213162c2
2 changed files with 10 additions and 6 deletions

View file

@ -14,7 +14,6 @@ import subprocess as sp
import click
import colorama
import pkg_resources
from . import vcs
from . import config
@ -509,7 +508,7 @@ def _is_valid_version(raw_pattern: str, old_version: str, new_version: str) -> b
logger.error(f"Invalid version '{new_version}' for pattern '{raw_pattern}'")
return False
if pkg_resources.parse_version(new_version) <= pkg_resources.parse_version(old_version):
if version.parse_version(new_version) <= version.parse_version(old_version):
logger.error("Invariant violated: New version must be greater than old version ")
logger.error(f" Failed Invariant: '{new_version}' > '{old_version}'")
return False
@ -651,7 +650,7 @@ def get_latest_vcs_version_tag(cfg: config.Config, fetch: bool) -> typ.Optional[
version_tags = [tag for tag in all_tags if v1version.is_valid(tag, cfg.version_pattern)]
if version_tags:
version_tags.sort(key=pkg_resources.parse_version, reverse=True)
version_tags.sort(key=version.parse_version, reverse=True)
_debug_tags = ", ".join(version_tags[:3])
logger.debug(f"found tags: {_debug_tags} ... ({len(version_tags)} in total)")
return version_tags[0]

View file

@ -6,9 +6,14 @@
import typing as typ
import datetime as dt
MaybeInt = typ.Optional[int]
def parse_version(version: str) -> typ.Any:
# pylint: disable=import-outside-toplevel; lazy import to speed up --help
import pkg_resources
MaybeInt = typ.Optional[int]
return pkg_resources.parse_version(version)
class V1CalendarInfo(typ.NamedTuple):
@ -171,4 +176,4 @@ def to_pep440(version: str) -> str:
>>> to_pep440("v201811.0007-beta")
'201811.7b0'
"""
return str(pkg_resources.parse_version(version))
return str(parse_version(version))