v440 2.0.0.dev12__tar.gz → 2.0.0.dev14__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.dev12/src/v440.egg-info → v440-2.0.0.dev14}/PKG-INFO +1 -1
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/pyproject.toml +1 -1
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/_utils/SimpleQualifierParser.py +42 -34
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/_utils/utils.py +1 -1
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/core/Public.py +8 -10
- {v440-2.0.0.dev12 → v440-2.0.0.dev14/src/v440.egg-info}/PKG-INFO +1 -1
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/LICENSE.txt +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/MANIFEST.in +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/README.rst +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/setup.cfg +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/__init__.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/_utils/Digest.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/_utils/Pattern.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/_utils/VList.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/_utils/WList.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/_utils/__init__.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/core/Base.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/core/Local.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/core/Pre.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/core/Qualification.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/core/Release.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/core/Version.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/core/VersionError.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/core/__init__.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/tests/__init__.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/tests/test_testdata.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/tests/test_version.py +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440/tests/testdata.toml +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440.egg-info/SOURCES.txt +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440.egg-info/dependency_links.txt +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440.egg-info/requires.txt +0 -0
- {v440-2.0.0.dev12 → v440-2.0.0.dev14}/src/v440.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
import dataclasses
|
|
4
3
|
from typing import *
|
|
5
4
|
|
|
6
5
|
from v440._utils import utils
|
|
@@ -10,11 +9,8 @@ from v440._utils.Pattern import Pattern
|
|
|
10
9
|
__all__ = ["SimpleQualifierParser"]
|
|
11
10
|
|
|
12
11
|
|
|
13
|
-
@dataclasses.dataclass(frozen=True)
|
|
14
12
|
class SimpleQualifierParser:
|
|
15
|
-
|
|
16
|
-
keysforstr: tuple = ()
|
|
17
|
-
allow_len_1: bool = False
|
|
13
|
+
__slots__ = ("_keysforlist", "_keysforstr", "_allow_len_1")
|
|
18
14
|
|
|
19
15
|
__call__ = Digest("__call__")
|
|
20
16
|
|
|
@@ -31,7 +27,7 @@ class SimpleQualifierParser:
|
|
|
31
27
|
@__call__.overload(list)
|
|
32
28
|
def __call__(self: Self, value: list) -> Any:
|
|
33
29
|
v: list = list(map(utils.segment, value))
|
|
34
|
-
n = self.nbylist(v)
|
|
30
|
+
n: Any = self.nbylist(v)
|
|
35
31
|
if isinstance(n, str):
|
|
36
32
|
raise TypeError
|
|
37
33
|
return n
|
|
@@ -42,49 +38,61 @@ class SimpleQualifierParser:
|
|
|
42
38
|
v = v.replace("_", ".")
|
|
43
39
|
v = v.replace("-", ".")
|
|
44
40
|
m: Any = Pattern.PARSER.bound.search(v)
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
x: Any
|
|
42
|
+
y: Any
|
|
43
|
+
x, y = m.groups()
|
|
44
|
+
if x not in self.keysforstr:
|
|
47
45
|
raise ValueError
|
|
48
|
-
if
|
|
46
|
+
if y is None:
|
|
49
47
|
return None
|
|
50
48
|
else:
|
|
51
|
-
return int(
|
|
49
|
+
return int(y)
|
|
52
50
|
|
|
53
|
-
def
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
51
|
+
def __init__(
|
|
52
|
+
self: Self,
|
|
53
|
+
keysforlist: Iterable = (),
|
|
54
|
+
keysforstr: Iterable = (),
|
|
55
|
+
allow_len_1: Any = False,
|
|
56
|
+
) -> None:
|
|
57
|
+
self._keysforlist = tuple(map(str, keysforlist))
|
|
58
|
+
self._keysforstr = tuple(map(self.optstr, keysforstr))
|
|
59
|
+
self._allow_len_1 = bool(allow_len_1)
|
|
60
|
+
|
|
61
|
+
@property
|
|
62
|
+
def allow_len_1(self: Self) -> tuple:
|
|
63
|
+
return self._allow_len_1
|
|
64
|
+
|
|
65
|
+
@property
|
|
66
|
+
def keysforlist(self: Self) -> tuple:
|
|
67
|
+
return self._keysforlist
|
|
68
|
+
|
|
69
|
+
@property
|
|
70
|
+
def keysforstr(self: Self) -> tuple:
|
|
71
|
+
return self._keysforstr
|
|
67
72
|
|
|
68
73
|
def nbylist(self: Self, value: Any, /) -> Any:
|
|
69
74
|
if len(value) == 2:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
raise ValueError
|
|
73
|
-
return n
|
|
75
|
+
if value[0] in self.keysforlist:
|
|
76
|
+
return value[1]
|
|
74
77
|
if len(value) == 1:
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
raise ValueError
|
|
78
|
-
return n
|
|
78
|
+
if self.allow_len_1:
|
|
79
|
+
return value[0]
|
|
79
80
|
raise ValueError
|
|
80
81
|
|
|
82
|
+
@classmethod
|
|
83
|
+
def optstr(cls: type, value: Any) -> Optional[str]:
|
|
84
|
+
if value is None:
|
|
85
|
+
return
|
|
86
|
+
else:
|
|
87
|
+
return str(value)
|
|
88
|
+
|
|
81
89
|
|
|
82
|
-
POST = SimpleQualifierParser(
|
|
90
|
+
POST: SimpleQualifierParser = SimpleQualifierParser(
|
|
83
91
|
keysforlist=("post", "rev", "r", ""),
|
|
84
92
|
keysforstr=(None, "post", "rev", "r"),
|
|
85
93
|
allow_len_1=True,
|
|
86
94
|
)
|
|
87
|
-
DEV = SimpleQualifierParser(
|
|
95
|
+
DEV: SimpleQualifierParser = SimpleQualifierParser(
|
|
88
96
|
keysforlist=("dev",),
|
|
89
97
|
keysforstr=(None, "dev"),
|
|
90
98
|
)
|
|
@@ -51,6 +51,14 @@ class Public(WList):
|
|
|
51
51
|
def __str__(self: Self) -> str:
|
|
52
52
|
return self.format()
|
|
53
53
|
|
|
54
|
+
@property
|
|
55
|
+
def _data(self: Self) -> list:
|
|
56
|
+
return [self.base, self.qualification]
|
|
57
|
+
|
|
58
|
+
@_data.setter
|
|
59
|
+
def _data(self: Self, value: Any) -> None:
|
|
60
|
+
self.base, self.qualification = parse_data(value)
|
|
61
|
+
|
|
54
62
|
@property
|
|
55
63
|
def base(self: Self) -> Base:
|
|
56
64
|
return self._base
|
|
@@ -59,14 +67,6 @@ class Public(WList):
|
|
|
59
67
|
def base(self: Self, value: Any) -> None:
|
|
60
68
|
self.base.data = value
|
|
61
69
|
|
|
62
|
-
@property
|
|
63
|
-
def data(self: Self) -> list:
|
|
64
|
-
return [self.base, self.qualification]
|
|
65
|
-
|
|
66
|
-
@data.setter
|
|
67
|
-
def data(self: Self, value: Any) -> None:
|
|
68
|
-
self.base, self.qualification = parse_data(value)
|
|
69
|
-
|
|
70
70
|
def format(self: Self, cutoff: Any = None) -> str:
|
|
71
71
|
return self.base.format(cutoff) + str(self.qualification)
|
|
72
72
|
|
|
@@ -77,5 +77,3 @@ class Public(WList):
|
|
|
77
77
|
@qualification.setter
|
|
78
78
|
def qualification(self: Self, value: Any) -> None:
|
|
79
79
|
self.qualification.data = value
|
|
80
|
-
|
|
81
|
-
_data = data
|
|
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
|