v440 2.0.0.dev110__tar.gz → 2.0.0.dev112__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {v440-2.0.0.dev110/src/v440.egg-info → v440-2.0.0.dev112}/PKG-INFO +1 -1
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/pyproject.toml +1 -1
- v440-2.0.0.dev112/src/v440/_utils/qualparse/__init__.py +1 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/core/Qual.py +11 -8
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/tests/test_version.py +3 -3
- {v440-2.0.0.dev110 → v440-2.0.0.dev112/src/v440.egg-info}/PKG-INFO +1 -1
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440.egg-info/SOURCES.txt +0 -2
- v440-2.0.0.dev110/src/v440/_utils/qualparse/__init__.py +0 -3
- v440-2.0.0.dev110/src/v440/_utils/qualparse/devs.py +0 -48
- v440-2.0.0.dev110/src/v440/_utils/qualparse/posts.py +0 -52
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/LICENSE.txt +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/MANIFEST.in +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/README.rst +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/setup.cfg +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/__init__.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/BaseStringer.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/Cfg.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/ListStringer.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/Pattern.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/SlotStringer.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/__init__.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/cfg.toml +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/guarding.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/qualparse/Digest.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/qualparse/pres.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/qualparse/segmenting.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/releaseparse/__init__.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/releaseparse/deleting.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/releaseparse/getting.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/releaseparse/listing.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/releaseparse/numerals.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/releaseparse/ranging.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/_utils/releaseparse/setting.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/core/Base.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/core/Local.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/core/Public.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/core/Release.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/core/Version.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/core/VersionError.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/core/__init__.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/tests/__init__.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/tests/test_testdata.py +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440/tests/testdata.toml +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440.egg-info/dependency_links.txt +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440.egg-info/requires.txt +0 -0
- {v440-2.0.0.dev110 → v440-2.0.0.dev112}/src/v440.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from v440._utils.qualparse.pres import parse_pre
|
|
@@ -96,13 +96,14 @@ class Qual(SlotStringer):
|
|
|
96
96
|
m: Any
|
|
97
97
|
x: Any
|
|
98
98
|
y: Any
|
|
99
|
+
self.dev = None
|
|
100
|
+
self.post = None
|
|
99
101
|
pre: Any = (None, None)
|
|
100
|
-
post: Any = None
|
|
101
102
|
while v:
|
|
102
103
|
m = Pattern.QUALIFIERS.leftbound.search(v)
|
|
103
104
|
v = v[m.end() :]
|
|
104
105
|
if m.group("N"):
|
|
105
|
-
post = m.group("N")
|
|
106
|
+
self.post = int(m.group("N"))
|
|
106
107
|
continue
|
|
107
108
|
x = m.group("l")
|
|
108
109
|
y = m.group("n")
|
|
@@ -110,11 +111,10 @@ class Qual(SlotStringer):
|
|
|
110
111
|
self.dev = int(y)
|
|
111
112
|
continue
|
|
112
113
|
if x in ("post", "r", "rev"):
|
|
113
|
-
post = y
|
|
114
|
+
self.post = int(y)
|
|
114
115
|
continue
|
|
115
116
|
pre = x, y
|
|
116
117
|
self.pre = pre
|
|
117
|
-
self.post = post
|
|
118
118
|
|
|
119
119
|
def _todict(self: Self) -> dict:
|
|
120
120
|
return dict(pre=self.pre, post=self.post, dev=self.dev)
|
|
@@ -152,12 +152,15 @@ class Qual(SlotStringer):
|
|
|
152
152
|
|
|
153
153
|
@post.setter
|
|
154
154
|
@guard
|
|
155
|
-
def post(self: Self, value:
|
|
156
|
-
|
|
155
|
+
def post(self: Self, value: Optional[SupportsIndex]) -> None:
|
|
156
|
+
if value is None:
|
|
157
|
+
self._post = None
|
|
158
|
+
return
|
|
159
|
+
self._post: int = abs(operator.index(value))
|
|
157
160
|
|
|
158
161
|
@property
|
|
159
|
-
def pre(self: Self) ->
|
|
160
|
-
return self._prephase
|
|
162
|
+
def pre(self: Self) -> str:
|
|
163
|
+
return self._prephase + str(self._presubphase)
|
|
161
164
|
|
|
162
165
|
@pre.setter
|
|
163
166
|
@guard
|
|
@@ -159,15 +159,15 @@ class TestExample(unittest.TestCase):
|
|
|
159
159
|
|
|
160
160
|
def test_example_6(self: Self) -> None:
|
|
161
161
|
v: Version = Version("1.2.3")
|
|
162
|
-
v.public.qual.post =
|
|
162
|
+
v.public.qual.post = 1
|
|
163
163
|
v.local.string = "local.7.dev"
|
|
164
164
|
self.assertEqual(str(v), "1.2.3.post1+local.7.dev") # Post-release version
|
|
165
165
|
self.assertEqual(format(v, "-1"), "1.2.post1+local.7.dev") # Formatted version
|
|
166
|
-
v.public.qual.post =
|
|
166
|
+
v.public.qual.post = 2
|
|
167
167
|
self.assertEqual(str(v), "1.2.3.post2+local.7.dev") # Modified version
|
|
168
168
|
v.public.qual.post = None
|
|
169
169
|
self.assertEqual(str(v), "1.2.3+local.7.dev") # Modified without post
|
|
170
|
-
v.public.qual.post =
|
|
170
|
+
v.public.qual.post = 3
|
|
171
171
|
v.local.sort()
|
|
172
172
|
self.assertEqual(str(v), "1.2.3.post3+dev.local.7") # After sorting local
|
|
173
173
|
v.local.append(8)
|
|
@@ -19,8 +19,6 @@ src/v440/_utils/cfg.toml
|
|
|
19
19
|
src/v440/_utils/guarding.py
|
|
20
20
|
src/v440/_utils/qualparse/Digest.py
|
|
21
21
|
src/v440/_utils/qualparse/__init__.py
|
|
22
|
-
src/v440/_utils/qualparse/devs.py
|
|
23
|
-
src/v440/_utils/qualparse/posts.py
|
|
24
22
|
src/v440/_utils/qualparse/pres.py
|
|
25
23
|
src/v440/_utils/qualparse/segmenting.py
|
|
26
24
|
src/v440/_utils/releaseparse/__init__.py
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import *
|
|
4
|
-
|
|
5
|
-
from v440._utils.Pattern import Pattern
|
|
6
|
-
from v440._utils.qualparse import segmenting
|
|
7
|
-
from v440._utils.qualparse.Digest import Digest
|
|
8
|
-
|
|
9
|
-
parse_dev: Digest = Digest("parse_dev")
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
@parse_dev.overload()
|
|
13
|
-
def parse_dev() -> None:
|
|
14
|
-
return
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
@parse_dev.overload(int)
|
|
18
|
-
def parse_dev(value: int) -> int:
|
|
19
|
-
if value < 0:
|
|
20
|
-
raise ValueError
|
|
21
|
-
return value
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
@parse_dev.overload(list)
|
|
25
|
-
def parse_dev(value: list) -> Optional[int]:
|
|
26
|
-
x: Any
|
|
27
|
-
y: Any
|
|
28
|
-
x, y = map(segmenting.segment, value)
|
|
29
|
-
if x != "dev":
|
|
30
|
-
raise ValueError
|
|
31
|
-
if isinstance(y, str):
|
|
32
|
-
raise TypeError
|
|
33
|
-
return y
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
@parse_dev.overload(str)
|
|
37
|
-
def parse_dev(value: str) -> Optional[int]:
|
|
38
|
-
v: str = value
|
|
39
|
-
v = v.replace("_", ".")
|
|
40
|
-
v = v.replace("-", ".")
|
|
41
|
-
m: Any = Pattern.PARSER.bound.search(v)
|
|
42
|
-
x: Any
|
|
43
|
-
y: Any
|
|
44
|
-
x, y = m.groups()
|
|
45
|
-
if x not in (None, "dev"):
|
|
46
|
-
raise ValueError
|
|
47
|
-
if y is not None:
|
|
48
|
-
return int(y)
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import *
|
|
4
|
-
|
|
5
|
-
from v440._utils.Pattern import Pattern
|
|
6
|
-
from v440._utils.qualparse import segmenting
|
|
7
|
-
from v440._utils.qualparse.Digest import Digest
|
|
8
|
-
|
|
9
|
-
parse_post: Digest = Digest("parse_post")
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
@parse_post.overload()
|
|
13
|
-
def parse_post() -> None:
|
|
14
|
-
return
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
@parse_post.overload(int)
|
|
18
|
-
def parse_post(value: int) -> int:
|
|
19
|
-
if value < 0:
|
|
20
|
-
raise ValueError
|
|
21
|
-
return value
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
@parse_post.overload(list)
|
|
25
|
-
def parse_post(value: list) -> Optional[int]:
|
|
26
|
-
v: list = list(map(segmenting.segment, value))
|
|
27
|
-
if len(v) == 0:
|
|
28
|
-
raise ValueError
|
|
29
|
-
if len(v) > 2:
|
|
30
|
-
raise ValueError
|
|
31
|
-
if len(v) == 1:
|
|
32
|
-
v.insert(0, "")
|
|
33
|
-
if v[0] not in ("post", "rev", "r", ""):
|
|
34
|
-
raise ValueError
|
|
35
|
-
if isinstance(v[1], str):
|
|
36
|
-
raise TypeError
|
|
37
|
-
return v[1]
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
@parse_post.overload(str)
|
|
41
|
-
def parse_post(value: str) -> Optional[int]:
|
|
42
|
-
v: str = value
|
|
43
|
-
v = v.replace("_", ".")
|
|
44
|
-
v = v.replace("-", ".")
|
|
45
|
-
m: Any = Pattern.PARSER.bound.search(v)
|
|
46
|
-
x: Any
|
|
47
|
-
y: Any
|
|
48
|
-
x, y = m.groups()
|
|
49
|
-
if x not in (None, "post", "rev", "r"):
|
|
50
|
-
raise ValueError
|
|
51
|
-
if y is not None:
|
|
52
|
-
return int(y)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|