datahold 4.0.0.dev5__tar.gz → 4.0.0.dev6__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.
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/PKG-INFO +1 -1
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/pyproject.toml +1 -1
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/src/datahold/__init__.py +10 -42
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/src/datahold.egg-info/PKG-INFO +1 -1
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/tests/test_testdata.py +35 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/tests/testdata.toml +50 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/LICENSE.txt +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/MANIFEST.in +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/README.rst +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/docs/v1.1.rst +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/docs/v1.2.rst +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/docs/v2.0.rst +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/docs/v2.1.rst +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/docs/v2.2.rst +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/docs/v2.3.rst +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/docs/v3.0.rst +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/docs/v4.0.rst +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/run_tests.py +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/setup.cfg +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/src/datahold/py.typed +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/src/datahold.egg-info/SOURCES.txt +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/src/datahold.egg-info/dependency_links.txt +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/src/datahold.egg-info/requires.txt +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/src/datahold.egg-info/top_level.txt +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/tests/test_FrozenHoldDict.py +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/tests/test_FrozenHoldList.py +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/tests/test_FrozenHoldSet.py +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/tests/test_HoldDict.py +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/tests/test_HoldList.py +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/tests/test_HoldSet.py +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/tests/test_datahold_TestCopy.py +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/tests/test_datahold_TestDataAttribute.py +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/tests/test_datahold_TestFrozenMutability.py +0 -0
- {datahold-4.0.0.dev5 → datahold-4.0.0.dev6}/tests/test_datahold_TestMutableBehavior.py +0 -0
|
@@ -134,7 +134,7 @@ class BaseDataSet[Item: abc.Hashable](BaseDataAbstractSet[Item]):
|
|
|
134
134
|
|
|
135
135
|
@abstractmethod
|
|
136
136
|
@setdoc.basic
|
|
137
|
-
def __fget__(self: Self) ->
|
|
137
|
+
def __fget__(self: Self) -> Data[Item]: ...
|
|
138
138
|
|
|
139
139
|
@abstractmethod
|
|
140
140
|
@setdoc.basic
|
|
@@ -214,18 +214,6 @@ class DataSet[Item: abc.Hashable](
|
|
|
214
214
|
|
|
215
215
|
__slots__ = ()
|
|
216
216
|
|
|
217
|
-
@abstractmethod
|
|
218
|
-
@setdoc.basic
|
|
219
|
-
def __fget__(self: Self) -> DataSet.Data[Item]: ...
|
|
220
|
-
|
|
221
|
-
@abstractmethod
|
|
222
|
-
@setdoc.basic
|
|
223
|
-
def __fset__(
|
|
224
|
-
self: Self,
|
|
225
|
-
value: DataSet.Data[Item],
|
|
226
|
-
/,
|
|
227
|
-
) -> None: ...
|
|
228
|
-
|
|
229
217
|
@setdoc.basic
|
|
230
218
|
def add(self: Self, item: Item, /) -> None:
|
|
231
219
|
self.__fset__(self.__fget__() | {item})
|
|
@@ -337,6 +325,10 @@ class BaseDataDict[Key: abc.Hashable, Value](
|
|
|
337
325
|
| abc.Iterable[tuple[DataKey | str, Optional[DataValue]]]
|
|
338
326
|
)
|
|
339
327
|
|
|
328
|
+
@abstractmethod
|
|
329
|
+
@setdoc.basic
|
|
330
|
+
def __fget__(self: Self) -> Data[Key, Value]: ...
|
|
331
|
+
|
|
340
332
|
@abstractmethod
|
|
341
333
|
@setdoc.basic
|
|
342
334
|
def __fset__(self: Self, data: Data[Key, Value], /) -> None: ...
|
|
@@ -369,10 +361,6 @@ class BaseDataDict[Key: abc.Hashable, Value](
|
|
|
369
361
|
|
|
370
362
|
# __ror__ is unnecessary because of how __or__ is defined
|
|
371
363
|
|
|
372
|
-
@abstractmethod
|
|
373
|
-
@setdoc.basic
|
|
374
|
-
def __fget__(self: Self) -> Data[Key, Value]: ...
|
|
375
|
-
|
|
376
364
|
@classmethod
|
|
377
365
|
@setdoc.basic
|
|
378
366
|
def fromkeys(
|
|
@@ -429,14 +417,6 @@ class DataDict[Key: abc.Hashable, Value](
|
|
|
429
417
|
del data[key]
|
|
430
418
|
self.__fset__(data)
|
|
431
419
|
|
|
432
|
-
@abstractmethod
|
|
433
|
-
@setdoc.basic
|
|
434
|
-
def __fget__(self: Self) -> DataDict.Data[Key, Value]: ...
|
|
435
|
-
|
|
436
|
-
@abstractmethod
|
|
437
|
-
@setdoc.basic
|
|
438
|
-
def __fset__(self: Self, data: DataDict.Data[Key, Value], /) -> None: ...
|
|
439
|
-
|
|
440
420
|
@setdoc.basic
|
|
441
421
|
def __ior__(
|
|
442
422
|
self: Self,
|
|
@@ -568,7 +548,11 @@ class BaseDataList[Item](BaseDataSequence[Item]):
|
|
|
568
548
|
|
|
569
549
|
@abstractmethod
|
|
570
550
|
@setdoc.basic
|
|
571
|
-
def
|
|
551
|
+
def __fget__(self: Self) -> Data[Item]: ...
|
|
552
|
+
|
|
553
|
+
@abstractmethod
|
|
554
|
+
@setdoc.basic
|
|
555
|
+
def __fset__(self: Self, data: Data[Item], /) -> None: ...
|
|
572
556
|
|
|
573
557
|
@setdoc.basic
|
|
574
558
|
def __ge__(self: Self, other: object, /) -> NotImplementedType | bool:
|
|
@@ -629,10 +613,6 @@ class BaseDataList[Item](BaseDataSequence[Item]):
|
|
|
629
613
|
|
|
630
614
|
__rmul__ = __mul__
|
|
631
615
|
|
|
632
|
-
@abstractmethod
|
|
633
|
-
@setdoc.basic
|
|
634
|
-
def __fget__(self: Self) -> Data[Item]: ...
|
|
635
|
-
|
|
636
616
|
|
|
637
617
|
class FrozenDataList[Item](
|
|
638
618
|
BaseDataList[Item],
|
|
@@ -681,18 +661,6 @@ class DataList[Item](
|
|
|
681
661
|
del data[other]
|
|
682
662
|
self.__fset__(data)
|
|
683
663
|
|
|
684
|
-
@abstractmethod
|
|
685
|
-
@setdoc.basic
|
|
686
|
-
def __fget__(self: Self) -> DataList.Data[Item]: ...
|
|
687
|
-
|
|
688
|
-
@abstractmethod
|
|
689
|
-
@setdoc.basic
|
|
690
|
-
def __fset__(
|
|
691
|
-
self: Self,
|
|
692
|
-
value: DataList.Data[Item],
|
|
693
|
-
/,
|
|
694
|
-
) -> None: ...
|
|
695
|
-
|
|
696
664
|
@setdoc.basic
|
|
697
665
|
def __imul__(self: Self, other: SupportsIndex, /) -> Self:
|
|
698
666
|
self.__fset__(self.__fget__() * other)
|
|
@@ -3,6 +3,7 @@ __all__: list[str] = [
|
|
|
3
3
|
"TestCollection",
|
|
4
4
|
"TestConstructor",
|
|
5
5
|
"TestData",
|
|
6
|
+
"TestDirData",
|
|
6
7
|
"TestGeneric",
|
|
7
8
|
"TestHasCopy",
|
|
8
9
|
"TestParents",
|
|
@@ -169,6 +170,40 @@ class TestData(unittest.TestCase):
|
|
|
169
170
|
obj.foo = 42
|
|
170
171
|
|
|
171
172
|
|
|
173
|
+
class TestDirData(unittest.TestCase):
|
|
174
|
+
def go_dirData(self: Self, x: Any, /, **y: Any) -> None:
|
|
175
|
+
cls = getattr(datahold, x)
|
|
176
|
+
dirData = y.get("dirData")
|
|
177
|
+
if dirData is None:
|
|
178
|
+
return
|
|
179
|
+
for z in dirData:
|
|
180
|
+
self.assertTrue(hasattr(cls.Data, z))
|
|
181
|
+
|
|
182
|
+
def go_init(self: Self, x: str, /) -> None:
|
|
183
|
+
cls: Any
|
|
184
|
+
cls = getattr(datahold, x)
|
|
185
|
+
self.assertEqual(
|
|
186
|
+
"__fget__" in cls.__dict__,
|
|
187
|
+
"Data" in cls.__dict__ or not ins.isabstract(cls),
|
|
188
|
+
)
|
|
189
|
+
if "__fset__" in cls.__dict__:
|
|
190
|
+
self.assertIn("__fget__", cls.__dict__)
|
|
191
|
+
self.assertEqual(
|
|
192
|
+
"Init" in cls.__dict__,
|
|
193
|
+
"__init__" in cls.__dict__,
|
|
194
|
+
)
|
|
195
|
+
self.assertNotEqual(
|
|
196
|
+
hasattr(cls, "Init"),
|
|
197
|
+
cls.__init__ is object.__init__,
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
def test_types(self: Self) -> None:
|
|
201
|
+
for x, y in Lazy.lazy.types.items():
|
|
202
|
+
with self.subTest(type=x):
|
|
203
|
+
self.go_dirData(x, **y)
|
|
204
|
+
self.go_init(x)
|
|
205
|
+
|
|
206
|
+
|
|
172
207
|
class TestGeneric(unittest.TestCase):
|
|
173
208
|
def go_assert_is_generic(
|
|
174
209
|
self: Self,
|
|
@@ -4,40 +4,73 @@ METHODS = [
|
|
|
4
4
|
"__str__",
|
|
5
5
|
]
|
|
6
6
|
|
|
7
|
+
[types.BaseDataAbstractSet]
|
|
8
|
+
dirData = [
|
|
9
|
+
"__contains__",
|
|
10
|
+
"__iter__",
|
|
11
|
+
"__len__",
|
|
12
|
+
]
|
|
13
|
+
|
|
7
14
|
[types.BaseDataAbstractSet.parents]
|
|
8
15
|
BaseDataCollection = true
|
|
9
16
|
Hashable = false
|
|
10
17
|
|
|
18
|
+
[types.BaseDataCollection]
|
|
19
|
+
dirData = [
|
|
20
|
+
"__contains__",
|
|
21
|
+
"__iter__",
|
|
22
|
+
"__len__",
|
|
23
|
+
]
|
|
24
|
+
|
|
11
25
|
[types.BaseDataCollection.parents]
|
|
12
26
|
Collection = true
|
|
13
27
|
Hashable = true
|
|
14
28
|
|
|
29
|
+
[types.BaseDataDict]
|
|
30
|
+
dirData = []
|
|
31
|
+
|
|
15
32
|
[types.BaseDataDict.parents]
|
|
16
33
|
Hashable = false
|
|
17
34
|
Mapping = true
|
|
18
35
|
|
|
36
|
+
[types.BaseDataList]
|
|
37
|
+
dirData = []
|
|
38
|
+
|
|
19
39
|
[types.BaseDataList.parents]
|
|
20
40
|
Hashable = false
|
|
21
41
|
Sequence = true
|
|
22
42
|
|
|
43
|
+
[types.BaseDataMapping]
|
|
44
|
+
dirData = []
|
|
45
|
+
|
|
23
46
|
[types.BaseDataMapping.parents]
|
|
24
47
|
BaseDataCollection = true
|
|
25
48
|
Hashable = false
|
|
26
49
|
|
|
50
|
+
[types.BaseDataSequence]
|
|
51
|
+
dirData = []
|
|
52
|
+
|
|
27
53
|
[types.BaseDataSequence.parents]
|
|
28
54
|
BaseDataCollection = true
|
|
29
55
|
Hashable = true
|
|
30
56
|
|
|
57
|
+
[types.BaseDataSet]
|
|
58
|
+
dirData = []
|
|
59
|
+
|
|
31
60
|
[types.BaseDataSet.parents]
|
|
32
61
|
Hashable = false
|
|
33
62
|
Set = true
|
|
34
63
|
|
|
64
|
+
[types.BaseHoldCollection]
|
|
65
|
+
dirData = []
|
|
66
|
+
|
|
35
67
|
[types.BaseHoldCollection.parents]
|
|
36
68
|
BaseDataCollection = true
|
|
37
69
|
Hashable = true
|
|
38
70
|
|
|
39
71
|
[types.DataDict]
|
|
40
72
|
Data = "frozendict"
|
|
73
|
+
dirData = []
|
|
41
74
|
isabstract = true
|
|
42
75
|
n_type_params = 2
|
|
43
76
|
|
|
@@ -50,6 +83,7 @@ MutableMapping = true
|
|
|
50
83
|
|
|
51
84
|
[types.DataList]
|
|
52
85
|
Data = "tuple"
|
|
86
|
+
dirData = []
|
|
53
87
|
isabstract = true
|
|
54
88
|
n_type_params = 1
|
|
55
89
|
|
|
@@ -63,6 +97,7 @@ Sequence = true
|
|
|
63
97
|
|
|
64
98
|
[types.DataSet]
|
|
65
99
|
Data = "frozenset"
|
|
100
|
+
dirData = []
|
|
66
101
|
isabstract = true
|
|
67
102
|
n_type_params = 1
|
|
68
103
|
|
|
@@ -76,22 +111,28 @@ Set = true
|
|
|
76
111
|
|
|
77
112
|
[types.FrozenDataDict]
|
|
78
113
|
Data = "frozendict"
|
|
114
|
+
dirData = []
|
|
79
115
|
isabstract = true
|
|
80
116
|
|
|
81
117
|
[types.FrozenDataDict.parents]
|
|
82
118
|
|
|
83
119
|
[types.FrozenDataList]
|
|
84
120
|
Data = "tuple"
|
|
121
|
+
dirData = []
|
|
85
122
|
isabstract = true
|
|
86
123
|
|
|
87
124
|
[types.FrozenDataList.parents]
|
|
88
125
|
|
|
89
126
|
[types.FrozenDataSet]
|
|
90
127
|
Data = "frozenset"
|
|
128
|
+
dirData = []
|
|
91
129
|
isabstract = true
|
|
92
130
|
|
|
93
131
|
[types.FrozenDataSet.parents]
|
|
94
132
|
|
|
133
|
+
[types.FrozenHoldDict]
|
|
134
|
+
dirData = []
|
|
135
|
+
|
|
95
136
|
[types.FrozenHoldDict.constructor.concrete]
|
|
96
137
|
args = [
|
|
97
138
|
{ a = 1 },
|
|
@@ -104,6 +145,9 @@ a = 1
|
|
|
104
145
|
Mapping = true
|
|
105
146
|
MutableMapping = false
|
|
106
147
|
|
|
148
|
+
[types.FrozenHoldList]
|
|
149
|
+
dirData = []
|
|
150
|
+
|
|
107
151
|
[types.FrozenHoldList.constructor.concrete]
|
|
108
152
|
args = [
|
|
109
153
|
[
|
|
@@ -118,6 +162,9 @@ FrozenDataList = true
|
|
|
118
162
|
MutableSequence = false
|
|
119
163
|
Sequence = true
|
|
120
164
|
|
|
165
|
+
[types.FrozenHoldSet]
|
|
166
|
+
dirData = []
|
|
167
|
+
|
|
121
168
|
[types.FrozenHoldSet.constructor.concrete]
|
|
122
169
|
args = [
|
|
123
170
|
[
|
|
@@ -133,6 +180,7 @@ Set = true
|
|
|
133
180
|
|
|
134
181
|
[types.HoldDict]
|
|
135
182
|
Data = "frozendict"
|
|
183
|
+
dirData = []
|
|
136
184
|
n_type_params = 2
|
|
137
185
|
|
|
138
186
|
[types.HoldDict.constructor.concrete.kwargs]
|
|
@@ -149,6 +197,7 @@ MutableMapping = true
|
|
|
149
197
|
|
|
150
198
|
[types.HoldList]
|
|
151
199
|
Data = "tuple"
|
|
200
|
+
dirData = []
|
|
152
201
|
n_type_params = 1
|
|
153
202
|
|
|
154
203
|
[types.HoldList.constructor.empty]
|
|
@@ -178,6 +227,7 @@ Sequence = true
|
|
|
178
227
|
|
|
179
228
|
[types.HoldSet]
|
|
180
229
|
Date = "frozenset"
|
|
230
|
+
dirData = []
|
|
181
231
|
n_type_params = 1
|
|
182
232
|
|
|
183
233
|
[types.HoldSet.constructor.empty]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|