Skip to content

Commit 42a00cd

Browse files
Narek MkhitaryanNarek Mkhitaryan
authored andcommitted
deleted packaging in dependances
1 parent 5de3327 commit 42a00cd

File tree

4 files changed

+62
-6
lines changed

4 files changed

+62
-6
lines changed

requirements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ pydantic>=1.10,!=2.0.*
22
aiohttp~=3.8
33
boto3~=1.26
44
opencv-python-headless~=4.7
5-
packaging>=24.0,<26.0
65
plotly~=5.14
76
pandas~=2.0
87
pillow>=9.5,~=10.0

src/superannotate/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
import requests
1313
from lib.core import enums
14-
from packaging.version import parse
14+
from lib.core.utils import parse_version
1515
from lib.core import PACKAGE_VERSION_UPGRADE
1616
from lib.core import PACKAGE_VERSION_INFO_MESSAGE
1717
from lib.core import PACKAGE_VERSION_MAJOR_UPGRADE
@@ -47,15 +47,15 @@
4747

4848
def log_version_info():
4949
logging.StreamHandler(sys.stdout)
50-
local_version = parse(__version__)
50+
local_version = parse_version(__version__)
5151
if local_version.is_prerelease:
5252
logging.info(PACKAGE_VERSION_INFO_MESSAGE.format(__version__))
5353
req = requests.get("https://pypi.org/pypi/superannotate/json")
5454
if req.ok:
5555
releases = req.json().get("releases", [])
56-
pip_version = parse("0")
56+
pip_version = parse_version("0")
5757
for release in releases:
58-
ver = parse(release)
58+
ver = parse_version(release)
5959
if not ver.is_prerelease or local_version.is_prerelease:
6060
pip_version = max(pip_version, ver)
6161
if pip_version.major > local_version.major:

src/superannotate/lib/core/pydantic_v1.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
from packaging.version import parse as parse_version
1+
from lib.core.utils import parse_version
22
from pydantic import VERSION
33

4+
45
if parse_version(VERSION).major < 2:
56
import pydantic
67
else:

src/superannotate/lib/core/utils.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import asyncio
2+
import re
23
import typing
34
from threading import Thread
45

@@ -46,3 +47,58 @@ def wrapper(func: typing.Callable):
4647
thread.start()
4748
thread.join()
4849
return response[0]
50+
51+
52+
def parse_version(version_string):
53+
"""Smart version parsing with support for various formats"""
54+
# Remove 'v' prefix if present
55+
version_string = version_string.lstrip("v")
56+
57+
# Extract version parts using regex
58+
match = re.match(
59+
r"^(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:[-.]?(a|b|rc|dev|alpha|beta)(\d*))?",
60+
version_string,
61+
)
62+
63+
if not match:
64+
raise ValueError(f"Invalid version format: {version_string}")
65+
66+
major = int(match.group(1))
67+
minor = int(match.group(2) or 0)
68+
patch = int(match.group(3) or 0)
69+
pre_type = match.group(4)
70+
pre_num = int(match.group(5) or 0) if match.group(5) else 0
71+
72+
class Version:
73+
def __init__(self, major, minor, patch, pre_type=None, pre_num=0):
74+
self.major = major
75+
self.minor = minor
76+
self.patch = patch
77+
self.pre_type = pre_type
78+
self.pre_num = pre_num
79+
80+
@property
81+
def is_prerelease(self):
82+
return self.pre_type is not None
83+
84+
def __str__(self):
85+
version = f"{self.major}.{self.minor}.{self.patch}"
86+
if self.pre_type:
87+
version += f"-{self.pre_type}{self.pre_num}"
88+
return version
89+
90+
def __gt__(self, other):
91+
if self.major != other.major:
92+
return self.major > other.major
93+
if self.minor != other.minor:
94+
return self.minor > other.minor
95+
if self.patch != other.patch:
96+
return self.patch > other.patch
97+
# Handle prerelease comparison
98+
if self.is_prerelease and not other.is_prerelease:
99+
return False
100+
if not self.is_prerelease and other.is_prerelease:
101+
return True
102+
return self.pre_num > other.pre_num
103+
104+
return Version(major, minor, patch, pre_type, pre_num)

0 commit comments

Comments
 (0)