datahold 3.1.0.dev2__tar.gz → 3.1.0.dev3__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 (57) hide show
  1. datahold-3.1.0.dev3/PKG-INFO +33 -0
  2. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/pyproject.toml +8 -9
  3. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/BaseDataNaming.py +2 -8
  4. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/DataNaming.py +2 -12
  5. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/FrozenDataNaming.py +6 -1
  6. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/tests/test_datahold_TestAbstractness.py +0 -2
  7. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/tests/test_datahold_TestProtocols.py +20 -5
  8. datahold-3.1.0.dev3/src/datahold.egg-info/PKG-INFO +33 -0
  9. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold.egg-info/requires.txt +2 -2
  10. datahold-3.1.0.dev2/PKG-INFO +0 -55
  11. datahold-3.1.0.dev2/src/datahold.egg-info/PKG-INFO +0 -55
  12. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/LICENSE.txt +0 -0
  13. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/MANIFEST.in +0 -0
  14. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/README.rst +0 -0
  15. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/setup.cfg +0 -0
  16. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/__init__.py +0 -0
  17. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/_utils/__init__.py +0 -0
  18. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/_utils/wrapping.py +0 -0
  19. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/BaseDataDict.py +0 -0
  20. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/BaseDataList.py +0 -0
  21. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/BaseDataObject.py +0 -0
  22. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/BaseDataSet.py +0 -0
  23. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/BaseHoldDict.py +0 -0
  24. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/BaseHoldList.py +0 -0
  25. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/BaseHoldNaming.py +0 -0
  26. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/BaseHoldObject.py +0 -0
  27. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/BaseHoldSet.py +0 -0
  28. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/DataDict.py +0 -0
  29. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/DataList.py +0 -0
  30. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/DataObject.py +0 -0
  31. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/DataSet.py +0 -0
  32. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/FrozenDataDict.py +0 -0
  33. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/FrozenDataList.py +0 -0
  34. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/FrozenDataObject.py +0 -0
  35. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/FrozenDataSet.py +0 -0
  36. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/FrozenHoldDict.py +0 -0
  37. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/FrozenHoldList.py +0 -0
  38. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/FrozenHoldNaming.py +0 -0
  39. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/FrozenHoldObject.py +0 -0
  40. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/FrozenHoldSet.py +0 -0
  41. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/HoldDict.py +0 -0
  42. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/HoldList.py +0 -0
  43. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/HoldNaming.py +0 -0
  44. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/HoldObject.py +0 -0
  45. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/HoldSet.py +0 -0
  46. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/core/__init__.py +0 -0
  47. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/tests/__init__.py +0 -0
  48. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/tests/test_0.py +0 -0
  49. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/tests/test_datahold_TestCopy.py +0 -0
  50. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/tests/test_datahold_TestDataAttribute.py +0 -0
  51. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/tests/test_datahold_TestFrozenMutability.py +0 -0
  52. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/tests/test_datahold_TestInheritance.py +0 -0
  53. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/tests/test_datahold_TestMutableBehavior.py +0 -0
  54. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold/tests/test_generic.py +0 -0
  55. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold.egg-info/SOURCES.txt +0 -0
  56. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold.egg-info/dependency_links.txt +0 -0
  57. {datahold-3.1.0.dev2 → datahold-3.1.0.dev3}/src/datahold.egg-info/top_level.txt +0 -0
@@ -0,0 +1,33 @@
1
+ Metadata-Version: 2.4
2
+ Name: datahold
3
+ Version: 3.1.0.dev3
4
+ Summary: This project wraps common mutable datastructures for inheritance with modification.
5
+ Author-email: Johannes <johannes.programming@gmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Download, https://pypi.org/project/datahold/#files
8
+ Project-URL: Index, https://pypi.org/project/datahold/
9
+ Project-URL: Source, https://github.com/johannes-programming/datahold/
10
+ Project-URL: Website, http://datahold.johannes-programming.online/
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Natural Language :: English
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Requires-Python: >=3.11
19
+ Description-Content-Type: text/x-rst
20
+ License-File: LICENSE.txt
21
+ Requires-Dist: cmp3<2,>=1.0
22
+ Requires-Dist: copyable<2,>=1.0
23
+ Requires-Dist: datarepr<2,>=1.0
24
+ Requires-Dist: frozendict<3,>=2.4.6
25
+ Requires-Dist: namings<2,>=1.0
26
+ Requires-Dist: setdoc<2,>=1.2.20
27
+ Dynamic: license-file
28
+
29
+ ========
30
+ datahold
31
+ ========
32
+
33
+ Visit the website `https://datahold.johannes-programming.online/ <https://datahold.johannes-programming.online/>`_ for more information.
@@ -1,7 +1,7 @@
1
1
  [build-system]
2
2
  build-backend = "setuptools.build_meta"
3
3
  requires = [
4
- "setuptools>=64.0",
4
+ "setuptools>=77.0",
5
5
  ]
6
6
 
7
7
  [project]
@@ -11,31 +11,30 @@ authors = [
11
11
  classifiers = [
12
12
  "Development Status :: 3 - Alpha",
13
13
  "Intended Audience :: Developers",
14
- "License :: OSI Approved :: MIT License",
15
14
  "Natural Language :: English",
16
15
  "Operating System :: OS Independent",
17
16
  "Programming Language :: Python",
18
17
  "Programming Language :: Python :: 3",
19
18
  "Programming Language :: Python :: 3 :: Only",
20
- "Typing :: Typed",
21
19
  ]
22
20
  dependencies = [
23
21
  "cmp3>=1.0,<2",
24
22
  "copyable>=1.0,<2",
25
23
  "datarepr>=1.0,<2",
26
24
  "frozendict>=2.4.6,<3",
27
- "namings>=1.1,<2",
28
- "setdoc>=1.2.8,<2",
25
+ "namings>=1.0,<2",
26
+ "setdoc>=1.2.20,<2",
29
27
  ]
30
28
  description = "This project wraps common mutable datastructures for inheritance with modification."
31
29
  keywords = []
30
+ license = "MIT"
31
+ license-files = [
32
+ "LICENSE.txt",
33
+ ]
32
34
  name = "datahold"
33
35
  readme = "README.rst"
34
36
  requires-python = ">=3.11"
35
- version = "3.1.0.dev2"
36
-
37
- [project.license]
38
- file = "LICENSE.txt"
37
+ version = "3.1.0.dev3"
39
38
 
40
39
  [project.urls]
41
40
  Download = "https://pypi.org/project/datahold/#files"
@@ -1,7 +1,7 @@
1
- import collections
2
1
  from abc import abstractmethod
3
2
  from typing import *
4
3
 
4
+ import namings
5
5
  from namings import FrozenNaming, Naming
6
6
 
7
7
  from datahold._utils.wrapping import wraps
@@ -15,7 +15,7 @@ Value = TypeVar("Value")
15
15
 
16
16
  class BaseDataNaming(
17
17
  BaseDataObject,
18
- collections.abc.Mapping[str, Value],
18
+ namings.abc.BaseNamingABC.BaseNamingABC[Value],
19
19
  ):
20
20
  data: FrozenNaming[Value]
21
21
  __slots__ = ()
@@ -96,12 +96,6 @@ class BaseDataNaming(
96
96
  "This doc string is overwritten together with the signature to match the original as closely as possible."
97
97
  return Naming[Value](self.data).__str__(*args, **kwargs)
98
98
 
99
- @classmethod
100
- @wraps(Naming[Value])
101
- def fromkeys(cls: type[Self], *args: Any, **kwargs: Any) -> Any:
102
- "This doc string is overwritten together with the signature to match the original as closely as possible."
103
- return cls[Value](Naming[Value].fromkeys(*args, **kwargs))
104
-
105
99
  @wraps(Naming[Value])
106
100
  def get(self: Self, *args: Any, **kwargs: Any) -> Any:
107
101
  "This doc string is overwritten together with the signature to match the original as closely as possible."
@@ -1,6 +1,6 @@
1
- import collections
2
1
  from typing import *
3
2
 
3
+ import namings
4
4
  import setdoc
5
5
  from namings import FrozenNaming, Naming
6
6
 
@@ -15,7 +15,7 @@ Value = TypeVar("Value")
15
15
 
16
16
 
17
17
  class DataNaming(
18
- DataObject, BaseDataNaming[Value], collections.abc.MutableMapping[str, Value]
18
+ DataObject, BaseDataNaming[Value], namings.abc.NamingABC.NamingABC[Value]
19
19
  ):
20
20
  data: FrozenNaming[Value]
21
21
  __slots__ = ()
@@ -74,16 +74,6 @@ class DataNaming(
74
74
  self.data = FrozenNaming[Value](data)
75
75
  return ans
76
76
 
77
- @wraps(Naming[Value])
78
- def popitem(self: Self, *args: Any, **kwargs: Any) -> Any:
79
- "This doc string is overwritten together with the signature to match the original as closely as possible."
80
- ans: Any
81
- data: Naming[Value]
82
- data = Naming[Value](self.data)
83
- ans = data.popitem(*args, **kwargs)
84
- self.data = FrozenNaming[Value](data)
85
- return ans
86
-
87
77
  @wraps(Naming[Value])
88
78
  def setdefault(self: Self, *args: Any, **kwargs: Any) -> Any:
89
79
  "This doc string is overwritten together with the signature to match the original as closely as possible."
@@ -1,5 +1,6 @@
1
1
  from typing import *
2
2
 
3
+ import namings
3
4
  from namings import FrozenNaming
4
5
 
5
6
  from .BaseDataNaming import BaseDataNaming
@@ -10,6 +11,10 @@ __all__ = ["FrozenDataNaming"]
10
11
  Value = TypeVar("Value")
11
12
 
12
13
 
13
- class FrozenDataNaming(FrozenDataObject, BaseDataNaming[Value]):
14
+ class FrozenDataNaming(
15
+ FrozenDataObject,
16
+ BaseDataNaming[Value],
17
+ namings.abc.FrozenNamingABC.FrozenNamingABC[Value],
18
+ ):
14
19
  data: FrozenNaming[Value]
15
20
  __slots__ = ()
@@ -2,8 +2,6 @@ import unittest
2
2
  from inspect import isabstract
3
3
  from typing import Self
4
4
 
5
- from frozendict import frozendict
6
-
7
5
  from datahold.core.DataDict import DataDict
8
6
  from datahold.core.DataList import DataList
9
7
  from datahold.core.DataNaming import DataNaming
@@ -1,3 +1,4 @@
1
+ import collections.abc
1
2
  import unittest
2
3
  from collections.abc import (
3
4
  Mapping,
@@ -9,6 +10,8 @@ from collections.abc import (
9
10
  from collections.abc import Set as AbstractSet
10
11
  from typing import Self
11
12
 
13
+ import namings
14
+
12
15
  from datahold.core.FrozenHoldDict import FrozenHoldDict
13
16
  from datahold.core.FrozenHoldList import FrozenHoldList
14
17
  from datahold.core.FrozenHoldNaming import FrozenHoldNaming
@@ -51,17 +54,29 @@ class TestProtocols(unittest.TestCase):
51
54
 
52
55
  def test_naming_protocols_x(self: Self) -> None:
53
56
  x: FrozenHoldNaming
54
- x = FrozenHoldNaming({"a": 1}.items())
57
+ x = FrozenHoldNaming({"a": 1})
55
58
 
56
- self.assertIsInstance(x, Mapping)
59
+ self.assertIsInstance(x, collections.abc.Collection)
60
+
61
+ self.assertIsInstance(x, namings.abc.BaseNamingABC.BaseNamingABC)
62
+ self.assertIsInstance(x, namings.abc.FrozenNamingABC.FrozenNamingABC)
63
+ self.assertNotIsInstance(x, namings.abc.NamingABC.NamingABC)
64
+
65
+ self.assertNotIsInstance(x, Mapping)
57
66
  self.assertNotIsInstance(x, MutableMapping)
58
67
 
59
68
  def test_naming_protocols_y(self: Self) -> None:
60
69
  y: HoldNaming
61
- y = HoldNaming({"a": 1}.items())
70
+ y = HoldNaming({"a": 1})
62
71
 
63
- self.assertIsInstance(y, Mapping)
64
- self.assertIsInstance(y, MutableMapping)
72
+ self.assertIsInstance(y, collections.abc.Collection)
73
+
74
+ self.assertIsInstance(y, namings.abc.BaseNamingABC.BaseNamingABC)
75
+ self.assertNotIsInstance(y, namings.abc.FrozenNamingABC.FrozenNamingABC)
76
+ self.assertIsInstance(y, namings.abc.NamingABC.NamingABC)
77
+
78
+ self.assertNotIsInstance(y, Mapping)
79
+ self.assertNotIsInstance(y, MutableMapping)
65
80
 
66
81
  def test_set_protocols(self: Self) -> None:
67
82
  f: FrozenHoldSet
@@ -0,0 +1,33 @@
1
+ Metadata-Version: 2.4
2
+ Name: datahold
3
+ Version: 3.1.0.dev3
4
+ Summary: This project wraps common mutable datastructures for inheritance with modification.
5
+ Author-email: Johannes <johannes.programming@gmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Download, https://pypi.org/project/datahold/#files
8
+ Project-URL: Index, https://pypi.org/project/datahold/
9
+ Project-URL: Source, https://github.com/johannes-programming/datahold/
10
+ Project-URL: Website, http://datahold.johannes-programming.online/
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Natural Language :: English
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Requires-Python: >=3.11
19
+ Description-Content-Type: text/x-rst
20
+ License-File: LICENSE.txt
21
+ Requires-Dist: cmp3<2,>=1.0
22
+ Requires-Dist: copyable<2,>=1.0
23
+ Requires-Dist: datarepr<2,>=1.0
24
+ Requires-Dist: frozendict<3,>=2.4.6
25
+ Requires-Dist: namings<2,>=1.0
26
+ Requires-Dist: setdoc<2,>=1.2.20
27
+ Dynamic: license-file
28
+
29
+ ========
30
+ datahold
31
+ ========
32
+
33
+ Visit the website `https://datahold.johannes-programming.online/ <https://datahold.johannes-programming.online/>`_ for more information.
@@ -2,5 +2,5 @@ cmp3<2,>=1.0
2
2
  copyable<2,>=1.0
3
3
  datarepr<2,>=1.0
4
4
  frozendict<3,>=2.4.6
5
- namings<2,>=1.1
6
- setdoc<2,>=1.2.8
5
+ namings<2,>=1.0
6
+ setdoc<2,>=1.2.20
@@ -1,55 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: datahold
3
- Version: 3.1.0.dev2
4
- Summary: This project wraps common mutable datastructures for inheritance with modification.
5
- Author-email: Johannes <johannes.programming@gmail.com>
6
- License: The MIT License (MIT)
7
-
8
- Copyright (c) 2024 Johannes
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining a copy
11
- of this software and associated documentation files (the "Software"), to deal
12
- in the Software without restriction, including without limitation the rights
13
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
- copies of the Software, and to permit persons to whom the Software is
15
- furnished to do so, subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all
18
- copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
- SOFTWARE.
27
- Project-URL: Download, https://pypi.org/project/datahold/#files
28
- Project-URL: Index, https://pypi.org/project/datahold/
29
- Project-URL: Source, https://github.com/johannes-programming/datahold/
30
- Project-URL: Website, http://datahold.johannes-programming.online/
31
- Classifier: Development Status :: 3 - Alpha
32
- Classifier: Intended Audience :: Developers
33
- Classifier: License :: OSI Approved :: MIT License
34
- Classifier: Natural Language :: English
35
- Classifier: Operating System :: OS Independent
36
- Classifier: Programming Language :: Python
37
- Classifier: Programming Language :: Python :: 3
38
- Classifier: Programming Language :: Python :: 3 :: Only
39
- Classifier: Typing :: Typed
40
- Requires-Python: >=3.11
41
- Description-Content-Type: text/x-rst
42
- License-File: LICENSE.txt
43
- Requires-Dist: cmp3<2,>=1.0
44
- Requires-Dist: copyable<2,>=1.0
45
- Requires-Dist: datarepr<2,>=1.0
46
- Requires-Dist: frozendict<3,>=2.4.6
47
- Requires-Dist: namings<2,>=1.1
48
- Requires-Dist: setdoc<2,>=1.2.8
49
- Dynamic: license-file
50
-
51
- ========
52
- datahold
53
- ========
54
-
55
- Visit the website `https://datahold.johannes-programming.online/ <https://datahold.johannes-programming.online/>`_ for more information.
@@ -1,55 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: datahold
3
- Version: 3.1.0.dev2
4
- Summary: This project wraps common mutable datastructures for inheritance with modification.
5
- Author-email: Johannes <johannes.programming@gmail.com>
6
- License: The MIT License (MIT)
7
-
8
- Copyright (c) 2024 Johannes
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining a copy
11
- of this software and associated documentation files (the "Software"), to deal
12
- in the Software without restriction, including without limitation the rights
13
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
- copies of the Software, and to permit persons to whom the Software is
15
- furnished to do so, subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all
18
- copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
- SOFTWARE.
27
- Project-URL: Download, https://pypi.org/project/datahold/#files
28
- Project-URL: Index, https://pypi.org/project/datahold/
29
- Project-URL: Source, https://github.com/johannes-programming/datahold/
30
- Project-URL: Website, http://datahold.johannes-programming.online/
31
- Classifier: Development Status :: 3 - Alpha
32
- Classifier: Intended Audience :: Developers
33
- Classifier: License :: OSI Approved :: MIT License
34
- Classifier: Natural Language :: English
35
- Classifier: Operating System :: OS Independent
36
- Classifier: Programming Language :: Python
37
- Classifier: Programming Language :: Python :: 3
38
- Classifier: Programming Language :: Python :: 3 :: Only
39
- Classifier: Typing :: Typed
40
- Requires-Python: >=3.11
41
- Description-Content-Type: text/x-rst
42
- License-File: LICENSE.txt
43
- Requires-Dist: cmp3<2,>=1.0
44
- Requires-Dist: copyable<2,>=1.0
45
- Requires-Dist: datarepr<2,>=1.0
46
- Requires-Dist: frozendict<3,>=2.4.6
47
- Requires-Dist: namings<2,>=1.1
48
- Requires-Dist: setdoc<2,>=1.2.8
49
- Dynamic: license-file
50
-
51
- ========
52
- datahold
53
- ========
54
-
55
- Visit the website `https://datahold.johannes-programming.online/ <https://datahold.johannes-programming.online/>`_ for more information.
File without changes
File without changes
File without changes
File without changes