v440 2.0.0.dev43__tar.gz → 2.0.0.dev44__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 (34) hide show
  1. {v440-2.0.0.dev43/src/v440.egg-info → v440-2.0.0.dev44}/PKG-INFO +2 -1
  2. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/pyproject.toml +2 -1
  3. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/_utils/SlotList.py +17 -6
  4. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/_utils/VList.py +6 -5
  5. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/core/Base.py +5 -0
  6. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/core/Local.py +6 -3
  7. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/core/Public.py +4 -0
  8. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/core/Qual.py +5 -0
  9. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/core/Release.py +14 -1
  10. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/core/Version.py +6 -1
  11. {v440-2.0.0.dev43 → v440-2.0.0.dev44/src/v440.egg-info}/PKG-INFO +2 -1
  12. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440.egg-info/requires.txt +1 -0
  13. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/LICENSE.txt +0 -0
  14. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/MANIFEST.in +0 -0
  15. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/README.rst +0 -0
  16. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/setup.cfg +0 -0
  17. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/__init__.py +0 -0
  18. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/_utils/BaseList.py +0 -0
  19. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/_utils/Cfg.py +0 -0
  20. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/_utils/Digest.py +0 -0
  21. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/_utils/Pattern.py +0 -0
  22. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/_utils/__init__.py +0 -0
  23. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/_utils/cfg.toml +0 -0
  24. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/_utils/qualparse.py +0 -0
  25. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/_utils/utils.py +0 -0
  26. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/core/VersionError.py +0 -0
  27. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/core/__init__.py +0 -0
  28. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/tests/__init__.py +0 -0
  29. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/tests/test_testdata.py +0 -0
  30. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/tests/test_version.py +0 -0
  31. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440/tests/testdata.toml +0 -0
  32. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440.egg-info/SOURCES.txt +0 -0
  33. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/src/v440.egg-info/dependency_links.txt +0 -0
  34. {v440-2.0.0.dev43 → v440-2.0.0.dev44}/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.dev43
3
+ Version: 2.0.0.dev44
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)
@@ -47,6 +47,7 @@ Requires-Dist: keyalias<2.0,>=1.0.3
47
47
  Requires-Dist: overloadable<2.0,>=1.0.5
48
48
  Requires-Dist: packaging>=23.2
49
49
  Requires-Dist: scaevola<2.0,>=1.1
50
+ Requires-Dist: setdoc<2,>=1.2
50
51
  Requires-Dist: tofunc<2,>=1.0.0
51
52
  Dynamic: license-file
52
53
 
@@ -27,6 +27,7 @@ dependencies = [
27
27
  "overloadable>=1.0.5,<2.0",
28
28
  "packaging>=23.2",
29
29
  "scaevola>=1.1,<2.0",
30
+ "setdoc>=1.2,<2",
30
31
  "tofunc>=1.0.0,<2",
31
32
  ]
32
33
  description = "This project provides mutable version objects in accordance with PEP440."
@@ -34,7 +35,7 @@ keywords = []
34
35
  name = "v440"
35
36
  readme = "README.rst"
36
37
  requires-python = ">=3.11"
37
- version = "2.0.0.dev43"
38
+ version = "2.0.0.dev44"
38
39
 
39
40
  [project.license]
40
41
  file = "LICENSE.txt"
@@ -4,6 +4,7 @@ from abc import abstractmethod
4
4
  from typing import *
5
5
 
6
6
  import scaevola
7
+ import setdoc
7
8
  from datarepr import datarepr
8
9
  from unhash import unhash
9
10
 
@@ -19,11 +20,12 @@ class SlotList(collections.abc.Collection, BaseList):
19
20
 
20
21
  data: list
21
22
 
23
+ @setdoc.basic
22
24
  def __contains__(self: Self, other: Any) -> bool:
23
25
  return other in self.data
24
26
 
27
+ @setdoc.basic
25
28
  def __eq__(self: Self, other: Any) -> bool:
26
- "This magic method implements self==other."
27
29
  try:
28
30
  alt: Self = type(self)(other)
29
31
  except VersionError:
@@ -31,15 +33,16 @@ class SlotList(collections.abc.Collection, BaseList):
31
33
  else:
32
34
  return self.data == alt.data
33
35
 
36
+ @setdoc.basic
34
37
  def __format__(self: Self, format_spec: Any = "", /) -> str:
35
- "This magic method implements format(self, format_spec)."
36
38
  return format(str(self), str(format_spec))
37
39
 
40
+ @setdoc.basic
38
41
  def __getitem__(self: Self, key: Any) -> Any:
39
42
  return self.data[key]
40
43
 
44
+ @setdoc.basic
41
45
  def __ge__(self: Self, other: Any, /) -> bool:
42
- "This magic method implements self<=other."
43
46
  alt: Self
44
47
  try:
45
48
  alt = type(self)(other)
@@ -48,8 +51,8 @@ class SlotList(collections.abc.Collection, BaseList):
48
51
  else:
49
52
  return self._cmp() >= alt._cmp()
50
53
 
54
+ @setdoc.basic
51
55
  def __gt__(self: Self, other: Any, /) -> bool:
52
- "This magic method implements self<=other."
53
56
  alt: Self
54
57
  try:
55
58
  alt = type(self)(other)
@@ -60,14 +63,16 @@ class SlotList(collections.abc.Collection, BaseList):
60
63
 
61
64
  __hash__ = unhash
62
65
 
66
+ @setdoc.basic
63
67
  def __init__(self: Self, data: Any = None) -> None:
64
68
  self.data = data
65
69
 
70
+ @setdoc.basic
66
71
  def __iter__(self: Self) -> Any:
67
72
  return iter(self.data)
68
73
 
74
+ @setdoc.basic
69
75
  def __le__(self: Self, other: Any, /) -> bool:
70
- "This magic method implements self<=other."
71
76
  alt: Self
72
77
  try:
73
78
  alt = type(self)(other)
@@ -76,11 +81,12 @@ class SlotList(collections.abc.Collection, BaseList):
76
81
  else:
77
82
  return self._cmp() <= alt._cmp()
78
83
 
84
+ @setdoc.basic
79
85
  def __len__(self: Self) -> int:
80
86
  return len(type(self).__slots__)
81
87
 
88
+ @setdoc.basic
82
89
  def __lt__(self: Self, other: Any, /) -> bool:
83
- "This magic method implements self<=other."
84
90
  alt: Self
85
91
  try:
86
92
  alt = type(self)(other)
@@ -89,20 +95,25 @@ class SlotList(collections.abc.Collection, BaseList):
89
95
  else:
90
96
  return self._cmp() < alt._cmp()
91
97
 
98
+ @setdoc.basic
92
99
  def __ne__(self: Self, other: Any) -> bool:
93
100
  return not (self == other)
94
101
 
102
+ @setdoc.basic
95
103
  def __repr__(self: Self) -> str:
96
104
  return datarepr(type(self).__name__, self.data)
97
105
 
106
+ @setdoc.basic
98
107
  def __reversed__(self: Self) -> Iterable:
99
108
  return reversed(self.data)
100
109
 
110
+ @setdoc.basic
101
111
  def __setitem__(self: Self, key: Any, value: Any) -> None:
102
112
  data: list = self.data
103
113
  data[key] = value
104
114
  self.data = data
105
115
 
116
+ @setdoc.basic
106
117
  def __str__(self: Self) -> str:
107
118
  return NotImplemented
108
119
 
@@ -1,5 +1,6 @@
1
1
  from typing import *
2
2
 
3
+ import setdoc
3
4
  from datahold import OkayList
4
5
 
5
6
  from v440._utils.BaseList import BaseList
@@ -8,8 +9,8 @@ from v440.core.VersionError import VersionError
8
9
 
9
10
  class VList(OkayList, BaseList):
10
11
 
12
+ @setdoc.basic
11
13
  def __eq__(self: Self, other: Any) -> bool:
12
- "This magic method implements self==other."
13
14
  ans: bool
14
15
  try:
15
16
  alt: Self = type(self)(other)
@@ -19,8 +20,8 @@ class VList(OkayList, BaseList):
19
20
  ans = self._data == alt._data
20
21
  return ans
21
22
 
23
+ @setdoc.basic
22
24
  def __ge__(self: Self, other: Any, /) -> bool:
23
- "This magic method implements self>=other."
24
25
  ans: bool
25
26
  try:
26
27
  alt: Self = type(self)(other)
@@ -30,18 +31,18 @@ class VList(OkayList, BaseList):
30
31
  ans = alt <= self
31
32
  return ans
32
33
 
34
+ @setdoc.basic
33
35
  def __iadd__(self: Self, other: Any, /) -> Self:
34
- "This magic method implements self+=other."
35
36
  self.data += type(self)(other).data
36
37
  return self
37
38
 
39
+ @setdoc.basic
38
40
  def __imul__(self: Self, other: Any, /) -> Self:
39
- "This magic method implements self*=other."
40
41
  self.data = self.data * other
41
42
  return self
42
43
 
44
+ @setdoc.basic
43
45
  def __le__(self: Self, other: Any, /) -> bool:
44
- "This magic method implements self<=other."
45
46
  ans: bool
46
47
  try:
47
48
  alt: Self = type(self)(other)
@@ -2,6 +2,8 @@ from __future__ import annotations
2
2
 
3
3
  from typing import *
4
4
 
5
+ import setdoc
6
+
5
7
  from v440._utils.Digest import Digest
6
8
  from v440._utils.SlotList import SlotList
7
9
  from v440._utils.utils import guard
@@ -72,15 +74,18 @@ class Base(SlotList):
72
74
  epoch: int
73
75
  release: Release
74
76
 
77
+ @setdoc.basic
75
78
  def __init__(self: Self, data: Any = None) -> None:
76
79
  self._epoch = 0
77
80
  self._release = Release()
78
81
  self.data = data
79
82
 
83
+ @setdoc.basic
80
84
  def __str__(self: Self) -> str:
81
85
  return self.format()
82
86
 
83
87
  @property
88
+ @setdoc.basic
84
89
  def data(self: Self) -> list:
85
90
  return [self.epoch, self.release]
86
91
 
@@ -3,6 +3,8 @@ from __future__ import annotations
3
3
  import functools
4
4
  from typing import *
5
5
 
6
+ import setdoc
7
+
6
8
  from v440._utils import utils
7
9
  from v440._utils.Digest import Digest
8
10
  from v440._utils.utils import guard
@@ -15,13 +17,13 @@ class Local(VList):
15
17
 
16
18
  data: list[int | str]
17
19
 
20
+ @setdoc.basic
18
21
  def __init__(self: Any, data: Any = None) -> None:
19
- "This magic method initializes self."
20
22
  self._data = list()
21
23
  self.data = data
22
24
 
25
+ @setdoc.basic
23
26
  def __le__(self: Self, other: Iterable) -> bool:
24
- "This magic method implements self<=other."
25
27
  ans: bool
26
28
  try:
27
29
  alt: Self = type(self)(other)
@@ -31,8 +33,8 @@ class Local(VList):
31
33
  ans = self._cmp() <= alt._cmp()
32
34
  return ans
33
35
 
36
+ @setdoc.basic
34
37
  def __str__(self: Self) -> str:
35
- "This magic method implements str(self)."
36
38
  return ".".join(map(str, self))
37
39
 
38
40
  def _cmp(self: Self) -> list:
@@ -73,6 +75,7 @@ class Local(VList):
73
75
  return type(value) is int, value
74
76
 
75
77
  @property
78
+ @setdoc.basic
76
79
  def data(self: Self) -> list[int | str]:
77
80
  return list(self._data)
78
81
 
@@ -2,6 +2,8 @@ from __future__ import annotations
2
2
 
3
3
  from typing import *
4
4
 
5
+ import setdoc
6
+
5
7
  from v440._utils.Digest import Digest
6
8
  from v440._utils.Pattern import Pattern
7
9
  from v440._utils.SlotList import SlotList
@@ -44,6 +46,7 @@ class Public(SlotList):
44
46
  base: Base
45
47
  qual: Qual
46
48
 
49
+ @setdoc.basic
47
50
  def __init__(self: Self, data: Any = None) -> None:
48
51
  self._base = Base()
49
52
  self._qual = Qual()
@@ -62,6 +65,7 @@ class Public(SlotList):
62
65
  self.base.data = value
63
66
 
64
67
  @property
68
+ @setdoc.basic
65
69
  def data(self: Self) -> list:
66
70
  return [self.base, self.qual]
67
71
 
@@ -2,6 +2,8 @@ from __future__ import annotations
2
2
 
3
3
  from typing import *
4
4
 
5
+ import setdoc
6
+
5
7
  from v440._utils import qualparse
6
8
  from v440._utils.SlotList import SlotList
7
9
  from v440._utils.utils import guard
@@ -19,6 +21,7 @@ class Qual(SlotList):
19
21
  post: Optional[int]
20
22
  dev: Optional[int]
21
23
 
24
+ @setdoc.basic
22
25
  def __init__(self: Self, data: Any = None) -> None:
23
26
  self._prephase = None
24
27
  self._presubphase = None
@@ -26,6 +29,7 @@ class Qual(SlotList):
26
29
  self._dev = None
27
30
  self.data = data
28
31
 
32
+ @setdoc.basic
29
33
  def __str__(self: Self) -> str:
30
34
  ans: str = ""
31
35
  if self.prephase is not None:
@@ -53,6 +57,7 @@ class Qual(SlotList):
53
57
  return ans
54
58
 
55
59
  @property
60
+ @setdoc.basic
56
61
  def data(self: Self) -> list:
57
62
  return [self.prephase, self.presubphase, self.post, self.dev]
58
63
 
@@ -4,6 +4,7 @@ import operator
4
4
  import string
5
5
  from typing import *
6
6
 
7
+ import setdoc
7
8
  from keyalias import keyalias
8
9
  from overloadable import Overloadable
9
10
 
@@ -22,6 +23,7 @@ class Release(VList):
22
23
  micro: int
23
24
  patch: int
24
25
 
26
+ @setdoc.basic
25
27
  def __add__(self: Self, other: Any, /) -> Self:
26
28
  opp: Self = type(self)(other)
27
29
  ans: Self = self.copy()
@@ -29,16 +31,19 @@ class Release(VList):
29
31
  return ans
30
32
 
31
33
  @Overloadable
34
+ @setdoc.basic
32
35
  def __delitem__(self: Self, key: Any) -> bool:
33
36
  return type(key) is slice
34
37
 
35
38
  @__delitem__.overload(False)
39
+ @setdoc.basic
36
40
  def __delitem__(self: Self, key: SupportsIndex) -> None:
37
41
  i: int = operator.index(key)
38
42
  if i < len(self):
39
43
  del self._data[i]
40
44
 
41
45
  @__delitem__.overload(True)
46
+ @setdoc.basic
42
47
  def __delitem__(self: Self, key: Any) -> None:
43
48
  r: range = utils.torange(key, len(self))
44
49
  l: list = [k for k in r if k < len(self)]
@@ -47,41 +52,48 @@ class Release(VList):
47
52
  del self._data[k]
48
53
 
49
54
  @Overloadable
55
+ @setdoc.basic
50
56
  def __getitem__(self: Self, key: Any) -> bool:
51
57
  return type(key) is slice
52
58
 
53
59
  @__getitem__.overload(False)
60
+ @setdoc.basic
54
61
  def __getitem__(self: Self, key: Any) -> int:
55
62
  i: int = operator.index(key)
56
63
  ans: int = self._getitem_int(i)
57
64
  return ans
58
65
 
59
66
  @__getitem__.overload(True)
67
+ @setdoc.basic
60
68
  def __getitem__(self: Self, key: Any) -> list:
61
69
  r: range = utils.torange(key, len(self))
62
70
  m: map = map(self._getitem_int, r)
63
71
  ans: list = list(m)
64
72
  return ans
65
73
 
74
+ @setdoc.basic
66
75
  def __init__(self: Any, data: Any = None) -> None:
67
- "This magic method initializes self."
68
76
  self._data = list()
69
77
  self.data = data
70
78
 
71
79
  @Overloadable
80
+ @setdoc.basic
72
81
  def __setitem__(self: Self, key: Any, value: Any) -> bool:
73
82
  return type(key) is slice
74
83
 
75
84
  @__setitem__.overload(False)
85
+ @setdoc.basic
76
86
  def __setitem__(self: Self, key: SupportsIndex, value: Any) -> Any:
77
87
  i: int = operator.index(key)
78
88
  self._setitem_int(i, value)
79
89
 
80
90
  @__setitem__.overload(True)
91
+ @setdoc.basic
81
92
  def __setitem__(self: Self, key: SupportsIndex, value: Any) -> Any:
82
93
  k: range = utils.torange(key, len(self))
83
94
  self._setitem_range(k, value)
84
95
 
96
+ @setdoc.basic
85
97
  def __str__(self: Self) -> str:
86
98
  return self.format()
87
99
 
@@ -190,6 +202,7 @@ class Release(VList):
190
202
  self.data = self.data[: i + 1]
191
203
 
192
204
  @property
205
+ @setdoc.basic
193
206
  def data(self: Self) -> list:
194
207
  return list(self._data)
195
208
 
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  from typing import *
4
4
 
5
5
  import packaging.version
6
+ import setdoc
6
7
 
7
8
  from v440._utils.Digest import Digest
8
9
  from v440._utils.SlotList import SlotList
@@ -45,15 +46,18 @@ class Version(SlotList):
45
46
  local: Local
46
47
  public: Public
47
48
 
48
- def __init__(self: Self, data: Any = "0") -> None:
49
+ @setdoc.basic
50
+ def __init__(self: Self, data: Any = None) -> None:
49
51
  self._public = Public()
50
52
  self._local = Local()
51
53
  self.data = data
52
54
 
55
+ @setdoc.basic
53
56
  def __str__(self: Self) -> str:
54
57
  return self.format()
55
58
 
56
59
  @property
60
+ @setdoc.basic
57
61
  def data(self: Self) -> list:
58
62
  return [self.public, self.local]
59
63
 
@@ -78,6 +82,7 @@ class Version(SlotList):
78
82
  self.local.data = value
79
83
 
80
84
  def packaging(self: Self) -> packaging.version.Version:
85
+ "This method returns an eqivalent packaging.version.Version object."
81
86
  return packaging.version.Version(str(self))
82
87
 
83
88
  @property
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: v440
3
- Version: 2.0.0.dev43
3
+ Version: 2.0.0.dev44
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)
@@ -47,6 +47,7 @@ Requires-Dist: keyalias<2.0,>=1.0.3
47
47
  Requires-Dist: overloadable<2.0,>=1.0.5
48
48
  Requires-Dist: packaging>=23.2
49
49
  Requires-Dist: scaevola<2.0,>=1.1
50
+ Requires-Dist: setdoc<2,>=1.2
50
51
  Requires-Dist: tofunc<2,>=1.0.0
51
52
  Dynamic: license-file
52
53
 
@@ -5,4 +5,5 @@ keyalias<2.0,>=1.0.3
5
5
  overloadable<2.0,>=1.0.5
6
6
  packaging>=23.2
7
7
  scaevola<2.0,>=1.1
8
+ setdoc<2,>=1.2
8
9
  tofunc<2,>=1.0.0
File without changes
File without changes
File without changes
File without changes