datahold 4.0.0.dev30__tar.gz → 4.0.0.dev31__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 (41) hide show
  1. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/PKG-INFO +1 -1
  2. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/pyproject.toml +1 -1
  3. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/src/datahold/__init__.py +24 -10
  4. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/src/datahold.egg-info/PKG-INFO +1 -1
  5. datahold-4.0.0.dev31/tests/test_FrozenDictSlot.py +626 -0
  6. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_FrozenListSlot.py +160 -133
  7. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_FrozenSetSlot.py +136 -108
  8. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_MutableDictSlot.py +46 -44
  9. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_MutableListSlot.py +139 -137
  10. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_MutableSetSlot.py +74 -60
  11. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_all.py +10 -0
  12. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_nested.py +1 -1
  13. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/testdata.toml +5 -0
  14. datahold-4.0.0.dev30/tests/test_FrozenDictSlot.py +0 -271
  15. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/LICENSE.txt +0 -0
  16. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/MANIFEST.in +0 -0
  17. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/README.rst +0 -0
  18. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/docs/v1.1.rst +0 -0
  19. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/docs/v1.2.rst +0 -0
  20. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/docs/v2.0.rst +0 -0
  21. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/docs/v2.1.rst +0 -0
  22. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/docs/v2.2.rst +0 -0
  23. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/docs/v2.3.rst +0 -0
  24. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/docs/v3.0.rst +0 -0
  25. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/docs/v4.0.rst +0 -0
  26. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/run_tests.py +0 -0
  27. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/setup.cfg +0 -0
  28. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/src/datahold/py.typed +0 -0
  29. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/src/datahold.egg-info/SOURCES.txt +0 -0
  30. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/src/datahold.egg-info/dependency_links.txt +0 -0
  31. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/src/datahold.egg-info/requires.txt +0 -0
  32. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/src/datahold.egg-info/top_level.txt +0 -0
  33. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_abstractmethods.py +0 -0
  34. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_attributes.py +0 -0
  35. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_docs.py +0 -0
  36. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_generic.py +0 -0
  37. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_issubclass.py +0 -0
  38. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_metaclass.py +0 -0
  39. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_name.py +0 -0
  40. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_sorted.py +0 -0
  41. {datahold-4.0.0.dev30 → datahold-4.0.0.dev31}/tests/test_variance.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datahold
3
- Version: 4.0.0.dev30
3
+ Version: 4.0.0.dev31
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
@@ -31,7 +31,7 @@ license-files = [
31
31
  name = "datahold"
32
32
  readme = "README.rst"
33
33
  requires-python = ">=3.11"
34
- version = "4.0.0.dev30"
34
+ version = "4.0.0.dev31"
35
35
 
36
36
  [project.urls]
37
37
  Download = "https://pypi.org/project/datahold/#files"
@@ -165,7 +165,8 @@ class MutableSequence_Mutable[Item](Protocol):
165
165
  type Dict[Key, Value] = dict[Key | str, Value | None]
166
166
 
167
167
  type Dict_Init[Key, Value] = (
168
- SupportsKeysAndGetitem[Key | str, Value | None]
168
+ SupportsKeysAndGetitem[Key, Value | None]
169
+ | SupportsKeysAndGetitem[Key | str, Value | None]
169
170
  | abc.Iterable[tuple[Key | str, Value | None]]
170
171
  )
171
172
 
@@ -462,9 +463,11 @@ class Mapping[Key: abc.Hashable, Value](
462
463
  raise KeyError(key) from None
463
464
 
464
465
  @overload
465
- def get(self, key: object) -> Value | None: ...
466
+ def get(self, key: object, /) -> Value | None: ...
466
467
  @overload
467
- def get[Value_](self, key: object, default: Value_) -> Value | Value_: ...
468
+ def get[Value_](
469
+ self, key: object, default: Value_, /
470
+ ) -> Value | Value_: ...
468
471
  @setdoc.basic
469
472
  def get[Value_](
470
473
  self: Self, key: object, default: Value_ | None = None
@@ -507,6 +510,7 @@ class MutableMapping[Key: abc.Hashable, Value](
507
510
 
508
511
  class DictLike[Key: abc.Hashable, Value](
509
512
  Mapping[Key | str, Value | None],
513
+ abc.Reversible[Key | str],
510
514
  ):
511
515
  """Provide abc for custom dict-like."""
512
516
 
@@ -525,20 +529,24 @@ class DictLike[Key: abc.Hashable, Value](
525
529
  **kwargs: Value,
526
530
  ): ...
527
531
  @setdoc.basic
528
- def __or__[Key_, Value_](
532
+ def __or__[Key_: abc.Hashable, Value_](
529
533
  self: Self,
530
534
  other: Dict_Init[Key_, Value_],
531
535
  /,
532
536
  ) -> DictLike[Key | Key_, Value | Value_]:
533
- data: FrozenDict[Key, Value]
537
+ other_: FrozenDict[Key, Value]
534
538
  try:
535
- data = frozendict(other) # type: ignore[arg-type]
539
+ other_ = frozendict(other) # type: ignore[arg-type]
536
540
  except TypeError:
537
541
  return NotImplemented
538
542
  return type(self)( # type: ignore[return-value]
539
- self.__frozen__() | data
543
+ self.__frozen__() | other_
540
544
  )
541
545
 
546
+ @setdoc.basic
547
+ def __reversed__(self: Self, /) -> abc.Iterator[Key | str]:
548
+ yield from reversed(self.__frozen__())
549
+
542
550
  @classmethod
543
551
  @setdoc.basic
544
552
  def fromkeys(
@@ -583,7 +591,10 @@ class MutableDictLike[Key: abc.Hashable, Value](
583
591
  /,
584
592
  **kwargs: Value | None,
585
593
  ):
586
- self.update(other, **kwargs)
594
+ self.update(
595
+ other, # type: ignore[arg-type]
596
+ **kwargs,
597
+ )
587
598
 
588
599
  @setdoc.basic
589
600
  def __ior__( # type: ignore[override]
@@ -592,7 +603,7 @@ class MutableDictLike[Key: abc.Hashable, Value](
592
603
  /,
593
604
  ) -> Self:
594
605
  with self.__mutate__() as mutable:
595
- mutable |= other
606
+ mutable |= other # type: ignore[arg-type]
596
607
  return self
597
608
 
598
609
  @setdoc.basic
@@ -622,7 +633,10 @@ class FrozenDictSlot[Key: abc.Hashable, Value](
622
633
  /,
623
634
  **kwargs: Value | None,
624
635
  ) -> None:
625
- self._slot = frozendict(other, **kwargs) # type: ignore[arg-type]
636
+ self._slot = frozendict(
637
+ other, # type: ignore[arg-type]
638
+ **kwargs,
639
+ )
626
640
 
627
641
 
628
642
  class MutableDictSlot[Key: abc.Hashable, Value](
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datahold
3
- Version: 4.0.0.dev30
3
+ Version: 4.0.0.dev31
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