v440 2.0.0.dev86__tar.gz → 2.0.0.dev88__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 (44) hide show
  1. {v440-2.0.0.dev86/src/v440.egg-info → v440-2.0.0.dev88}/PKG-INFO +1 -1
  2. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/pyproject.toml +1 -1
  3. v440-2.0.0.dev88/src/v440/_utils/releaseparse/getting.py +37 -0
  4. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/core/Release.py +4 -25
  5. {v440-2.0.0.dev86 → v440-2.0.0.dev88/src/v440.egg-info}/PKG-INFO +1 -1
  6. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440.egg-info/SOURCES.txt +1 -0
  7. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/LICENSE.txt +0 -0
  8. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/MANIFEST.in +0 -0
  9. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/README.rst +0 -0
  10. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/setup.cfg +0 -0
  11. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/__init__.py +0 -0
  12. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/BaseStringer.py +0 -0
  13. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/Cfg.py +0 -0
  14. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/ListStringer.py +0 -0
  15. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/Pattern.py +0 -0
  16. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/SlotStringer.py +0 -0
  17. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/__init__.py +0 -0
  18. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/cfg.toml +0 -0
  19. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/guarding.py +0 -0
  20. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/qualparse/Digest.py +0 -0
  21. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/qualparse/__init__.py +0 -0
  22. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/qualparse/devs.py +0 -0
  23. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/qualparse/posts.py +0 -0
  24. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/qualparse/pres.py +0 -0
  25. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/qualparse/segmenting.py +0 -0
  26. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/releaseparse/__init__.py +0 -0
  27. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/releaseparse/deleting.py +0 -0
  28. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/releaseparse/listing.py +0 -0
  29. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/releaseparse/numerals.py +0 -0
  30. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/_utils/releaseparse/ranging.py +0 -0
  31. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/core/Base.py +0 -0
  32. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/core/Local.py +0 -0
  33. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/core/Public.py +0 -0
  34. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/core/Qual.py +0 -0
  35. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/core/Version.py +0 -0
  36. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/core/VersionError.py +0 -0
  37. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/core/__init__.py +0 -0
  38. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/tests/__init__.py +0 -0
  39. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/tests/test_testdata.py +0 -0
  40. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/tests/test_version.py +0 -0
  41. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440/tests/testdata.toml +0 -0
  42. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440.egg-info/dependency_links.txt +0 -0
  43. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/src/v440.egg-info/requires.txt +0 -0
  44. {v440-2.0.0.dev86 → v440-2.0.0.dev88}/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.dev86
3
+ Version: 2.0.0.dev88
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.dev86"
39
+ version = "2.0.0.dev88"
40
40
 
41
41
  [project.license]
42
42
  file = "LICENSE.txt"
@@ -0,0 +1,37 @@
1
+ from __future__ import annotations
2
+
3
+ import operator
4
+ from functools import partial
5
+ from typing import *
6
+
7
+ from overloadable import Overloadable
8
+
9
+ from v440._utils.releaseparse import ranging
10
+
11
+
12
+ @Overloadable
13
+ def getitem(data: tuple, key: Any) -> bool:
14
+ return type(key) is slice
15
+
16
+
17
+ @getitem.overload(False)
18
+ def getitem(data: tuple, key: Any) -> int:
19
+ i: int = operator.index(key)
20
+ ans: int = getitem_int(data, i)
21
+ return ans
22
+
23
+
24
+ @getitem.overload(True)
25
+ def getitem(data: tuple, key: Any) -> list:
26
+ r: range = ranging.torange(key, len(data))
27
+ f: partial = partial(getitem_int, data)
28
+ m: map = map(f, r)
29
+ ans: list = list(m)
30
+ return ans
31
+
32
+
33
+ def getitem_int(data: tuple[int], key: int) -> int:
34
+ if key < len(data):
35
+ return data[key]
36
+ else:
37
+ return 0
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import operator
4
+ from functools import partial
4
5
  from typing import *
5
6
 
6
7
  import setdoc
@@ -9,7 +10,7 @@ from overloadable import Overloadable
9
10
 
10
11
  from v440._utils import releaseparse
11
12
  from v440._utils.ListStringer import ListStringer
12
- from v440._utils.releaseparse import deleting
13
+ from v440._utils.releaseparse import deleting, getting
13
14
 
14
15
  __all__ = ["Release"]
15
16
 
@@ -29,25 +30,9 @@ class Release(ListStringer):
29
30
  def __delitem__(self: Self, key: Any) -> bool:
30
31
  self._data = deleting.delitem(self._data, key)
31
32
 
32
- @Overloadable
33
33
  @setdoc.basic
34
34
  def __getitem__(self: Self, key: Any) -> bool:
35
- return type(key) is slice
36
-
37
- @__getitem__.overload(False)
38
- @setdoc.basic
39
- def __getitem__(self: Self, key: Any) -> int:
40
- i: int = operator.index(key)
41
- ans: int = self._getitem_int(i)
42
- return ans
43
-
44
- @__getitem__.overload(True)
45
- @setdoc.basic
46
- def __getitem__(self: Self, key: Any) -> list:
47
- r: range = releaseparse.torange(key, len(self))
48
- m: map = map(self._getitem_int, r)
49
- ans: list = list(m)
50
- return ans
35
+ return getting.getitem(self.data, key)
51
36
 
52
37
  @Overloadable
53
38
  @setdoc.basic
@@ -86,12 +71,6 @@ class Release(ListStringer):
86
71
  ans: str = ".".join(l)
87
72
  return ans
88
73
 
89
- def _getitem_int(self: Self, key: int) -> int:
90
- if key < len(self):
91
- return self.data[key]
92
- else:
93
- return 0
94
-
95
74
  def _setitem_int(self: Self, key: int, value: Any) -> Any:
96
75
  v: int = releaseparse.numeral(value)
97
76
  if key < len(self):
@@ -148,7 +127,7 @@ class Release(ListStringer):
148
127
  def bump(self: Self, index: SupportsIndex = -1, amount: SupportsIndex = 1) -> None:
149
128
  i: int = operator.index(index)
150
129
  a: int = operator.index(amount)
151
- x: int = self._getitem_int(i) + a
130
+ x: int = getting.getitem_int(self.data, i) + a
152
131
  self._setitem_int(i, x)
153
132
  if i != -1:
154
133
  self.data = self.data[: i + 1]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: v440
3
- Version: 2.0.0.dev86
3
+ Version: 2.0.0.dev88
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)
@@ -25,6 +25,7 @@ src/v440/_utils/qualparse/pres.py
25
25
  src/v440/_utils/qualparse/segmenting.py
26
26
  src/v440/_utils/releaseparse/__init__.py
27
27
  src/v440/_utils/releaseparse/deleting.py
28
+ src/v440/_utils/releaseparse/getting.py
28
29
  src/v440/_utils/releaseparse/listing.py
29
30
  src/v440/_utils/releaseparse/numerals.py
30
31
  src/v440/_utils/releaseparse/ranging.py
File without changes
File without changes
File without changes
File without changes