v440 2.0.0.dev57__tar.gz → 2.0.0.dev59__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.dev57/src/v440.egg-info → v440-2.0.0.dev59}/PKG-INFO +1 -1
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/pyproject.toml +1 -1
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/_utils/VList.py +2 -2
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/_utils/utils.py +2 -3
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/core/Local.py +2 -2
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/tests/test_version.py +21 -46
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/tests/testdata.toml +4 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59/src/v440.egg-info}/PKG-INFO +1 -1
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/LICENSE.txt +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/MANIFEST.in +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/README.rst +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/setup.cfg +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/__init__.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/_utils/BaseList.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/_utils/Cfg.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/_utils/Digest.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/_utils/Pattern.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/_utils/SlotList.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/_utils/__init__.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/_utils/cfg.toml +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/_utils/qualparse.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/core/Base.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/core/Public.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/core/Qual.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/core/Release.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/core/Version.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/core/VersionError.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/core/__init__.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/tests/__init__.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440/tests/test_testdata.py +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440.egg-info/SOURCES.txt +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440.egg-info/dependency_links.txt +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440.egg-info/requires.txt +0 -0
- {v440-2.0.0.dev57 → v440-2.0.0.dev59}/src/v440.egg-info/top_level.txt +0 -0
|
@@ -62,7 +62,7 @@ class VList(BaseList):
|
|
|
62
62
|
data.append(value)
|
|
63
63
|
self.data = data
|
|
64
64
|
|
|
65
|
-
def clear(self: Self
|
|
65
|
+
def clear(self: Self) -> None:
|
|
66
66
|
"This method clears the data."
|
|
67
67
|
self.data = ()
|
|
68
68
|
|
|
@@ -90,7 +90,7 @@ class VList(BaseList):
|
|
|
90
90
|
self.data = data
|
|
91
91
|
return ans
|
|
92
92
|
|
|
93
|
-
def remove(self: Self, value: Any) -> None:
|
|
93
|
+
def remove(self: Self, value: Any, /) -> None:
|
|
94
94
|
"This method removes the first occurence of value."
|
|
95
95
|
data: list = list(self.data)
|
|
96
96
|
data.remove(value)
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import functools
|
|
4
|
-
import operator
|
|
5
4
|
import string
|
|
6
5
|
from typing import *
|
|
7
6
|
|
|
@@ -22,7 +21,7 @@ def numeral(value: Any, /) -> int:
|
|
|
22
21
|
v: Any = segment(value)
|
|
23
22
|
if type(v) is int:
|
|
24
23
|
return v
|
|
25
|
-
e = "%r is not a valid numeral segment"
|
|
24
|
+
e: str = "%r is not a valid numeral segment"
|
|
26
25
|
e %= v
|
|
27
26
|
raise VersionError(e)
|
|
28
27
|
|
|
@@ -31,7 +30,7 @@ def segment(value: Any, /) -> Any:
|
|
|
31
30
|
try:
|
|
32
31
|
return _segment(value)
|
|
33
32
|
except:
|
|
34
|
-
e = "%r is not a valid segment"
|
|
33
|
+
e: str = "%r is not a valid segment"
|
|
35
34
|
e = VersionError(e % value)
|
|
36
35
|
raise e from None
|
|
37
36
|
|
|
@@ -61,12 +61,12 @@ class Local(VList):
|
|
|
61
61
|
return ".".join(map(str, self))
|
|
62
62
|
|
|
63
63
|
@classmethod
|
|
64
|
-
def _sort(cls: type, value: Any) -> tuple[bool,
|
|
64
|
+
def _sort(cls: type, value: Any) -> tuple[bool, int | str]:
|
|
65
65
|
return type(value) is int, value
|
|
66
66
|
|
|
67
67
|
@property
|
|
68
68
|
@setdoc.basic
|
|
69
|
-
def data(self: Self) ->
|
|
69
|
+
def data(self: Self) -> tuple[int | str]:
|
|
70
70
|
return self._data
|
|
71
71
|
|
|
72
72
|
@data.setter
|
|
@@ -105,41 +105,27 @@ class TestExample(unittest.TestCase):
|
|
|
105
105
|
v.public.base.release.micro = 4
|
|
106
106
|
self.assertEqual(str(v), "2.64.4") # Further modified version
|
|
107
107
|
|
|
108
|
-
def
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
self.assertFalse(v1 > v2) # v1 > v2 gives False
|
|
130
|
-
self.assertTrue(v1 < v2) # v1 < v2 gives True
|
|
131
|
-
|
|
132
|
-
def test_example_3c(self: Self) -> None:
|
|
133
|
-
v1: Version = Version("1.6.3")
|
|
134
|
-
v2: Version = Version("1.6.4")
|
|
135
|
-
self.assertEqual(str(v1), "1.6.3") # v1
|
|
136
|
-
self.assertEqual(str(v2), "1.6.4") # v2
|
|
137
|
-
self.assertFalse(v1 == v2) # v1 == v2 gives False
|
|
138
|
-
self.assertTrue(v1 != v2) # v1 != v2 gives True
|
|
139
|
-
self.assertFalse(v1 >= v2) # v1 >= v2 gives False
|
|
140
|
-
self.assertTrue(v1 <= v2) # v1 <= v2 gives True
|
|
141
|
-
self.assertFalse(v1 > v2) # v1 > v2 gives False
|
|
142
|
-
self.assertTrue(v1 < v2) # v1 < v2 gives True
|
|
108
|
+
def test_example_3(self: Self) -> None:
|
|
109
|
+
t: list = [
|
|
110
|
+
[Version, str],
|
|
111
|
+
[str, Version],
|
|
112
|
+
[Version, Version],
|
|
113
|
+
]
|
|
114
|
+
X: type
|
|
115
|
+
Y: type
|
|
116
|
+
x: Any
|
|
117
|
+
y: Any
|
|
118
|
+
for X, Y in t:
|
|
119
|
+
x = X("1.6.3")
|
|
120
|
+
y = Y("1.6.3")
|
|
121
|
+
self.assertEqual(str(x), "1.6.3") # x
|
|
122
|
+
self.assertEqual(str(y), "1.6.4") # y
|
|
123
|
+
self.assertFalse(x == y) # x == y gives False
|
|
124
|
+
self.assertTrue(x != y) # x != y gives True
|
|
125
|
+
self.assertFalse(x >= y) # x >= y gives False
|
|
126
|
+
self.assertTrue(x <= y) # x <= y gives True
|
|
127
|
+
self.assertFalse(x > y) # x > y gives False
|
|
128
|
+
self.assertTrue(x < y) # x < y gives True
|
|
143
129
|
|
|
144
130
|
def test_example_4(self: Self) -> None:
|
|
145
131
|
v: Version = Version("2.5.3.9")
|
|
@@ -424,16 +410,5 @@ class TestDevNoGo(unittest.TestCase):
|
|
|
424
410
|
self.assertIsNone(v.public.qual.dev)
|
|
425
411
|
|
|
426
412
|
|
|
427
|
-
class TestVersionSpecifiersNoGo(unittest.TestCase):
|
|
428
|
-
|
|
429
|
-
def test_version_with_invalid_specifiers(self: Self) -> None:
|
|
430
|
-
# Test version with invalid specifiers that should raise an error
|
|
431
|
-
with self.assertRaises(VersionError):
|
|
432
|
-
Version("1.2.3--4")
|
|
433
|
-
|
|
434
|
-
with self.assertRaises(VersionError):
|
|
435
|
-
Version("1.2.3a1--4")
|
|
436
|
-
|
|
437
|
-
|
|
438
413
|
if __name__ == "__main__":
|
|
439
414
|
unittest.main()
|
|
@@ -742,6 +742,10 @@ Post-releases = [
|
|
|
742
742
|
"1.0.0+build@sha.123",
|
|
743
743
|
"1.0.0++local.version.doubleplus",
|
|
744
744
|
]
|
|
745
|
+
"Test version with invalid specifiers that should raise an error" = [
|
|
746
|
+
"1.2.3--4",
|
|
747
|
+
"1.2.3a1--4",
|
|
748
|
+
]
|
|
745
749
|
|
|
746
750
|
[devint.test_dev_as_int]
|
|
747
751
|
v_version = "1.2.3"
|
|
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
|