PySerials 0.0.0.dev41__tar.gz → 0.0.0.dev43__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 (24) hide show
  1. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/PKG-INFO +3 -3
  2. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/pyproject.toml +3 -3
  3. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/PySerials.egg-info/PKG-INFO +3 -3
  4. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/PySerials.egg-info/requires.txt +2 -2
  5. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/property_dict.py +32 -7
  6. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/README.md +0 -0
  7. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/setup.cfg +0 -0
  8. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/PySerials.egg-info/SOURCES.txt +0 -0
  9. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/PySerials.egg-info/dependency_links.txt +0 -0
  10. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/PySerials.egg-info/not-zip-safe +0 -0
  11. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/PySerials.egg-info/top_level.txt +0 -0
  12. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/__init__.py +0 -0
  13. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/compare.py +0 -0
  14. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/exception/__init__.py +0 -0
  15. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/exception/_base.py +0 -0
  16. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/exception/read.py +0 -0
  17. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/exception/update.py +0 -0
  18. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/exception/validate.py +0 -0
  19. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/format.py +0 -0
  20. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/nested_dict.py +0 -0
  21. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/read.py +0 -0
  22. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/update.py +0 -0
  23. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/validate.py +0 -0
  24. {pyserials-0.0.0.dev41 → pyserials-0.0.0.dev43}/src/pyserials/write.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySerials
3
- Version: 0.0.0.dev41
3
+ Version: 0.0.0.dev43
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: jsonschema<5,>=4.21.0
6
6
  Requires-Dist: referencing>=0.35.1
@@ -8,6 +8,6 @@ Requires-Dist: jsonpath-ng<2,>=1.6.1
8
8
  Requires-Dist: ruamel.yaml<0.18,>=0.17.32
9
9
  Requires-Dist: ruamel.yaml.string<1,>=0.1.1
10
10
  Requires-Dist: tomlkit<0.12,>=0.11.8
11
- Requires-Dist: MDit==0.0.0.dev38
12
- Requires-Dist: ExceptionMan==0.0.0.dev38
11
+ Requires-Dist: MDit==0.0.0.dev40
12
+ Requires-Dist: ExceptionMan==0.0.0.dev40
13
13
  Requires-Dist: ProtocolMan==0.0.0.dev2
@@ -17,7 +17,7 @@ namespaces = true
17
17
  # ----------------------------------------- Project Metadata -------------------------------------
18
18
  #
19
19
  [project]
20
- version = "0.0.0.dev41"
20
+ version = "0.0.0.dev43"
21
21
  name = "PySerials"
22
22
  dependencies = [
23
23
  "jsonschema >= 4.21.0, < 5",
@@ -26,8 +26,8 @@ dependencies = [
26
26
  "ruamel.yaml >= 0.17.32, < 0.18", # https://yaml.readthedocs.io/en/stable/
27
27
  "ruamel.yaml.string >= 0.1.1, < 1",
28
28
  "tomlkit >= 0.11.8, < 0.12", # https://tomlkit.readthedocs.io/en/stable/,
29
- "MDit == 0.0.0.dev38",
30
- "ExceptionMan == 0.0.0.dev38",
29
+ "MDit == 0.0.0.dev40",
30
+ "ExceptionMan == 0.0.0.dev40",
31
31
  "ProtocolMan == 0.0.0.dev2",
32
32
  ]
33
33
  requires-python = ">=3.10"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySerials
3
- Version: 0.0.0.dev41
3
+ Version: 0.0.0.dev43
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: jsonschema<5,>=4.21.0
6
6
  Requires-Dist: referencing>=0.35.1
@@ -8,6 +8,6 @@ Requires-Dist: jsonpath-ng<2,>=1.6.1
8
8
  Requires-Dist: ruamel.yaml<0.18,>=0.17.32
9
9
  Requires-Dist: ruamel.yaml.string<1,>=0.1.1
10
10
  Requires-Dist: tomlkit<0.12,>=0.11.8
11
- Requires-Dist: MDit==0.0.0.dev38
12
- Requires-Dist: ExceptionMan==0.0.0.dev38
11
+ Requires-Dist: MDit==0.0.0.dev40
12
+ Requires-Dist: ExceptionMan==0.0.0.dev40
13
13
  Requires-Dist: ProtocolMan==0.0.0.dev2
@@ -4,6 +4,6 @@ jsonpath-ng<2,>=1.6.1
4
4
  ruamel.yaml<0.18,>=0.17.32
5
5
  ruamel.yaml.string<1,>=0.1.1
6
6
  tomlkit<0.12,>=0.11.8
7
- MDit==0.0.0.dev38
8
- ExceptionMan==0.0.0.dev38
7
+ MDit==0.0.0.dev40
8
+ ExceptionMan==0.0.0.dev40
9
9
  ProtocolMan==0.0.0.dev2
@@ -12,29 +12,41 @@ class PropertyDict:
12
12
  """The data as a dictionary."""
13
13
  return self._data
14
14
 
15
+ def items(self):
16
+ return self._data.items()
17
+
18
+ def keys(self):
19
+ return self._data.keys()
20
+
21
+ def values(self):
22
+ return self._data.values()
23
+
15
24
  def get(self, key, default=None):
16
25
  return self._data.get(key, default)
17
26
 
18
27
  def pop(self, key, default=None):
19
28
  return self._data.pop(key, default)
29
+
30
+ def update(self, *args, **kwargs):
31
+ return self._data.update(*args, **kwargs)
20
32
 
21
33
  def setdefault(self, key, default):
22
34
  return self._data.setdefault(key, default)
23
35
 
24
- def __getattr__(self, name: str):
36
+ def __getattr__(self, name):
25
37
  try:
26
38
  return self._data[name]
27
39
  except KeyError:
28
40
  raise AttributeError(f"'{type(self).__name__}' object has no attribute '{name}'")
29
41
 
30
- def __getitem__(self, name: str):
31
- return self._data[name]
42
+ def __getitem__(self, key):
43
+ return self._data[key]
32
44
 
33
45
  def __setitem__(self, key, value):
34
46
  self._data[key] = value
35
47
 
36
- def __contains__(self, name: str):
37
- return name in self._data
48
+ def __contains__(self, key):
49
+ return key in self._data
38
50
 
39
51
  def __iter__(self):
40
52
  return iter(self._data)
@@ -55,6 +67,19 @@ class PropertyDict:
55
67
  return self._data != other._data
56
68
 
57
69
  def __deepcopy__(self, memo):
58
- # Use `deepcopy` on the internal dictionary to copy its contents
70
+ # Dynamically handle subclass instantiation with additional arguments
71
+ cls = type(self)
72
+ # Deepcopy the data dictionary
59
73
  copied_data = _copy.deepcopy(self._data, memo)
60
- return PropertyDict(copied_data)
74
+ # Capture extra attributes (everything except `_data`)
75
+ extra_attrs = {
76
+ key: _copy.deepcopy(value, memo)
77
+ for key, value in self.__dict__.items()
78
+ if key != "_data"
79
+ }
80
+ # Create a new instance
81
+ obj = cls.__new__(cls) # Avoid calling __init__ directly
82
+ obj._data = copied_data # Set _data directly
83
+ # Restore extra attributes
84
+ obj.__dict__.update(extra_attrs)
85
+ return obj