datahold 4.0.0.dev40__tar.gz → 4.0.0.dev41__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 (23) hide show
  1. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/PKG-INFO +1 -1
  2. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/pyproject.toml +1 -1
  3. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/src/datahold/__init__.py +18 -10
  4. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/src/datahold.egg-info/PKG-INFO +1 -1
  5. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/LICENSE.txt +0 -0
  6. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/MANIFEST.in +0 -0
  7. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/README.rst +0 -0
  8. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/docs/v1.1.rst +0 -0
  9. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/docs/v1.2.rst +0 -0
  10. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/docs/v2.0.rst +0 -0
  11. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/docs/v2.1.rst +0 -0
  12. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/docs/v2.2.rst +0 -0
  13. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/docs/v2.3.rst +0 -0
  14. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/docs/v3.0.rst +0 -0
  15. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/run_tests.py +0 -0
  16. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/setup.cfg +0 -0
  17. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/src/datahold/py.typed +0 -0
  18. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/src/datahold.egg-info/SOURCES.txt +0 -0
  19. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/src/datahold.egg-info/dependency_links.txt +0 -0
  20. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/src/datahold.egg-info/requires.txt +0 -0
  21. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/src/datahold.egg-info/top_level.txt +0 -0
  22. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/tests/test_MutableListSlot.py +0 -0
  23. {datahold-4.0.0.dev40 → datahold-4.0.0.dev41}/tests/testdata.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datahold
3
- Version: 4.0.0.dev40
3
+ Version: 4.0.0.dev41
4
4
  Summary: This project wraps common mutable datastructures for inheritance with modification.
5
5
  Author-email: Johannes <johannes.programming@gmail.com>
6
6
  License-Expression: MIT
@@ -34,7 +34,7 @@ license-files = [
34
34
  name = "datahold"
35
35
  readme = "README.rst"
36
36
  requires-python = ">=3.12"
37
- version = "4.0.0.dev40"
37
+ version = "4.0.0.dev41"
38
38
 
39
39
  [project.urls]
40
40
  Download = "https://pypi.org/project/datahold/#files"
@@ -33,7 +33,7 @@ type Sort = SupportsDunderGT[Self] | SupportsDunderGT[Self] # type: ignore[misc
33
33
  ### LIST-SLOT ###
34
34
 
35
35
 
36
- class MutableListSlot[Item]:
36
+ class MutableListSlot[Item](abc.Sequence[Item]):
37
37
  """Provide easily customized, slotted, mutable list-like."""
38
38
 
39
39
  __slots__ = ("_slot",)
@@ -140,15 +140,16 @@ class MutableListSlot[Item]:
140
140
  def __iter__(
141
141
  self: MutableListSlot[Item], /
142
142
  ) -> abc.Generator[Item, None, None]:
143
+ frozen: tuple[Item, ...]
143
144
  i: int
144
145
  i = 0
145
146
  while True:
146
- try:
147
- v = self[i]
148
- except IndexError:
149
- return
150
- yield v
151
- i += 1
147
+ frozen = self.__frozen__()
148
+ if i < len(frozen):
149
+ yield frozen[i]
150
+ i += 1
151
+ else:
152
+ break
152
153
 
153
154
  def __le__(
154
155
  self: MutableListSlot[Item],
@@ -189,9 +190,16 @@ class MutableListSlot[Item]:
189
190
  def __reversed__(
190
191
  self: MutableListSlot[Item], /
191
192
  ) -> abc.Generator[Item, None, None]:
193
+ frozen: tuple[Item, ...]
192
194
  i: int
193
- for i in reversed(range(len(self))):
194
- yield self[i]
195
+ i = len(self.__frozen__())
196
+ while True:
197
+ frozen = self.__frozen__()
198
+ if 0 < i <= len(frozen):
199
+ i -= 1
200
+ yield frozen[i]
201
+ else:
202
+ break
195
203
 
196
204
  @overload
197
205
  def __setitem__(
@@ -301,4 +309,4 @@ class MutableListSlot[Item]:
301
309
 
302
310
  setdoc.Basics(
303
311
  excepts=(AttributeError, TypeError),
304
- )(*MutableListSlot.__dict__)
312
+ )(*MutableListSlot.__dict__.values())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datahold
3
- Version: 4.0.0.dev40
3
+ Version: 4.0.0.dev41
4
4
  Summary: This project wraps common mutable datastructures for inheritance with modification.
5
5
  Author-email: Johannes <johannes.programming@gmail.com>
6
6
  License-Expression: MIT
File without changes