v440 2.0.0.dev74__tar.gz → 2.0.0.dev76__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.
Files changed (39) hide show
  1. {v440-2.0.0.dev74/src/v440.egg-info → v440-2.0.0.dev76}/PKG-INFO +1 -1
  2. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/pyproject.toml +1 -1
  3. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/releaseparse/__init__.py +1 -0
  4. v440-2.0.0.dev76/src/v440/_utils/releaseparse/listing.py +63 -0
  5. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/core/Release.py +3 -57
  6. {v440-2.0.0.dev74 → v440-2.0.0.dev76/src/v440.egg-info}/PKG-INFO +1 -1
  7. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440.egg-info/SOURCES.txt +1 -0
  8. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/LICENSE.txt +0 -0
  9. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/MANIFEST.in +0 -0
  10. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/README.rst +0 -0
  11. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/setup.cfg +0 -0
  12. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/__init__.py +0 -0
  13. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/BaseStringer.py +0 -0
  14. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/Cfg.py +0 -0
  15. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/Digest.py +0 -0
  16. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/ListStringer.py +0 -0
  17. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/Pattern.py +0 -0
  18. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/SlotStringer.py +0 -0
  19. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/__init__.py +0 -0
  20. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/cfg.toml +0 -0
  21. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/guarding.py +0 -0
  22. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/qualparse.py +0 -0
  23. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/releaseparse/numerals.py +0 -0
  24. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/releaseparse/ranging.py +0 -0
  25. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/_utils/segmenting.py +0 -0
  26. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/core/Base.py +0 -0
  27. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/core/Local.py +0 -0
  28. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/core/Public.py +0 -0
  29. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/core/Qual.py +0 -0
  30. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/core/Version.py +0 -0
  31. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/core/VersionError.py +0 -0
  32. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/core/__init__.py +0 -0
  33. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/tests/__init__.py +0 -0
  34. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/tests/test_testdata.py +0 -0
  35. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/tests/test_version.py +0 -0
  36. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440/tests/testdata.toml +0 -0
  37. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440.egg-info/dependency_links.txt +0 -0
  38. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440.egg-info/requires.txt +0 -0
  39. {v440-2.0.0.dev74 → v440-2.0.0.dev76}/src/v440.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: v440
3
- Version: 2.0.0.dev74
3
+ Version: 2.0.0.dev76
4
4
  Summary: This project provides mutable version objects in accordance with PEP440.
5
5
  Author-email: Johannes <johannes.programming@gmail.com>
6
6
  License: The MIT License (MIT)
@@ -36,7 +36,7 @@ keywords = []
36
36
  name = "v440"
37
37
  readme = "README.rst"
38
38
  requires-python = ">=3.11"
39
- version = "2.0.0.dev74"
39
+ version = "2.0.0.dev76"
40
40
 
41
41
  [project.license]
42
42
  file = "LICENSE.txt"
@@ -1,2 +1,3 @@
1
+ from v440._utils.releaseparse.listing import tolist
1
2
  from v440._utils.releaseparse.numerals import numeral
2
3
  from v440._utils.releaseparse.ranging import torange
@@ -0,0 +1,63 @@
1
+ from __future__ import annotations
2
+
3
+ import string
4
+ from typing import *
5
+
6
+ from overloadable import Overloadable
7
+
8
+ from v440._utils.releaseparse.numerals import numeral
9
+
10
+ __all__ = ["tolist"]
11
+
12
+
13
+ @Overloadable
14
+ def tolist(value: Any, *, slicing: Any) -> list:
15
+ if value is None:
16
+ return
17
+ if isinstance(value, int):
18
+ return int
19
+ if hasattr(value, "__iter__") and not isinstance(value, str):
20
+ return list
21
+ return str
22
+
23
+
24
+ @tolist.overload()
25
+ def tolist(value: None, *, slicing: Any) -> list:
26
+ return list()
27
+
28
+
29
+ @tolist.overload(int)
30
+ def tolist(value: int, *, slicing: Any) -> list:
31
+ v: int = int(value)
32
+ if value < 0:
33
+ raise ValueError
34
+ return [v]
35
+
36
+
37
+ @tolist.overload(list)
38
+ def tolist(value: int, *, slicing: Any) -> list:
39
+ return list(map(numeral, value))
40
+
41
+
42
+ @tolist.overload(str)
43
+ def tolist(value: Any, *, slicing: Any) -> list:
44
+ s: Any
45
+ if isinstance(value, str):
46
+ s = slicing
47
+ else:
48
+ s = "never"
49
+ v: str = str(value)
50
+ if v == "":
51
+ return list()
52
+ if "" == v.strip(string.digits) and s in (len(v), "always"):
53
+ return list(map(int, v))
54
+ v = v.lower().strip()
55
+ v = v.replace("_", ".")
56
+ v = v.replace("-", ".")
57
+ if v.startswith("v") or v.startswith("."):
58
+ v = v[1:]
59
+ l: list = v.split(".")
60
+ if "" in l:
61
+ raise ValueError
62
+ l = list(map(numeral, l))
63
+ return l
@@ -1,7 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import operator
4
- import string
5
4
  from typing import *
6
5
 
7
6
  import setdoc
@@ -14,59 +13,6 @@ from v440._utils.ListStringer import ListStringer
14
13
  __all__ = ["Release"]
15
14
 
16
15
 
17
- @Overloadable
18
- def tolist(value: Any, *, slicing: Any) -> list:
19
- if value is None:
20
- return
21
- if isinstance(value, int):
22
- return int
23
- if hasattr(value, "__iter__") and not isinstance(value, str):
24
- return list
25
- return str
26
-
27
-
28
- @tolist.overload()
29
- def tolist(value: None, *, slicing: Any) -> list:
30
- return list()
31
-
32
-
33
- @tolist.overload(int)
34
- def tolist(value: int, *, slicing: Any) -> list:
35
- v: int = int(value)
36
- if value < 0:
37
- raise ValueError
38
- return [v]
39
-
40
-
41
- @tolist.overload(list)
42
- def tolist(value: int, *, slicing: Any) -> list:
43
- return list(map(releaseparse.numeral, value))
44
-
45
-
46
- @tolist.overload(str)
47
- def tolist(value: Any, *, slicing: Any) -> list:
48
- s: Any
49
- if isinstance(value, str):
50
- s = slicing
51
- else:
52
- s = "never"
53
- v: str = str(value)
54
- if v == "":
55
- return list()
56
- if "" == v.strip(string.digits) and s in (len(v), "always"):
57
- return list(map(int, v))
58
- v = v.lower().strip()
59
- v = v.replace("_", ".")
60
- v = v.replace("-", ".")
61
- if v.startswith("v") or v.startswith("."):
62
- v = v[1:]
63
- l: list = v.split(".")
64
- if "" in l:
65
- raise ValueError
66
- l = list(map(releaseparse.numeral, l))
67
- return l
68
-
69
-
70
16
  @keyalias(major=0, minor=1, micro=2, patch=2)
71
17
  class Release(ListStringer):
72
18
  __slots__ = ()
@@ -144,7 +90,7 @@ class Release(ListStringer):
144
90
 
145
91
  @classmethod
146
92
  def _data_parse(cls: type, value: list) -> Iterable:
147
- v: list = tolist(value, slicing="always")
93
+ v: list = releaseparse.tolist(value, slicing="always")
148
94
  while v and v[-1] == 0:
149
95
  v.pop()
150
96
  return v
@@ -187,7 +133,7 @@ class Release(ListStringer):
187
133
  @_setitem_range.overload(False)
188
134
  def _setitem_range(self: Self, key: range, value: Any) -> Any:
189
135
  key: list = list(key)
190
- value: list = tolist(value, slicing=len(key))
136
+ value: list = releaseparse.tolist(value, slicing=len(key))
191
137
  if len(key) != len(value):
192
138
  e = "attempt to assign sequence of size %s to extended slice of size %s"
193
139
  e %= (len(value), len(key))
@@ -204,7 +150,7 @@ class Release(ListStringer):
204
150
  data: list = list(self.data)
205
151
  ext: int = max(0, key.start - len(data))
206
152
  data += ext * [0]
207
- l: list = tolist(value, slicing="always")
153
+ l: list = releaseparse.tolist(value, slicing="always")
208
154
  data = data[: key.start] + l + data[key.stop :]
209
155
  self.data = data
210
156
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: v440
3
- Version: 2.0.0.dev74
3
+ Version: 2.0.0.dev76
4
4
  Summary: This project provides mutable version objects in accordance with PEP440.
5
5
  Author-email: Johannes <johannes.programming@gmail.com>
6
6
  License: The MIT License (MIT)
@@ -21,6 +21,7 @@ src/v440/_utils/guarding.py
21
21
  src/v440/_utils/qualparse.py
22
22
  src/v440/_utils/segmenting.py
23
23
  src/v440/_utils/releaseparse/__init__.py
24
+ src/v440/_utils/releaseparse/listing.py
24
25
  src/v440/_utils/releaseparse/numerals.py
25
26
  src/v440/_utils/releaseparse/ranging.py
26
27
  src/v440/core/Base.py
File without changes
File without changes
File without changes
File without changes