python-datamodel 0.10.17__tar.gz → 0.10.19__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 (104) hide show
  1. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/PKG-INFO +1 -1
  2. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/models.py +16 -4
  3. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/parsers/json.cpp +715 -585
  4. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/parsers/json.html +625 -565
  5. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/parsers/json.pyx +5 -2
  6. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/version.py +1 -1
  7. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/python_datamodel.egg-info/PKG-INFO +1 -1
  8. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/CHANGELOG.md +0 -0
  9. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/CONTRIBUTING.md +0 -0
  10. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/LICENSE +0 -0
  11. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/MANIFEST.in +0 -0
  12. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/Makefile +0 -0
  13. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/README.md +0 -0
  14. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/SECURITY.md +0 -0
  15. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/__init__.py +0 -0
  16. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/abstract.py +0 -0
  17. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/adaptive/__init__.py +0 -0
  18. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/adaptive/models.py +0 -0
  19. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/aliases/__init__.py +0 -0
  20. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/base.py +0 -0
  21. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/converters.c +0 -0
  22. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/converters.html +0 -0
  23. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/converters.pyx +0 -0
  24. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/exceptions.c +0 -0
  25. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/exceptions.html +0 -0
  26. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/exceptions.pxd +0 -0
  27. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/exceptions.pyx +0 -0
  28. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/fields.cpp +0 -0
  29. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/fields.html +0 -0
  30. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/fields.pyx +0 -0
  31. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/functions.cpp +0 -0
  32. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/functions.html +0 -0
  33. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/functions.pxd +0 -0
  34. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/functions.pyx +0 -0
  35. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/jsonld/__init__.py +0 -0
  36. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/jsonld/models.py +0 -0
  37. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/libs/__init__.py +0 -0
  38. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/libs/mapping.c +0 -0
  39. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/libs/mapping.html +0 -0
  40. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/libs/mapping.pxd +0 -0
  41. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/libs/mapping.pyx +0 -0
  42. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/libs/mutables.py +0 -0
  43. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/parsers/__init__.py +0 -0
  44. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/parsers/encoders.py +0 -0
  45. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/profiler.py +0 -0
  46. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/py.typed +0 -0
  47. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/rs_core/Cargo.toml +0 -0
  48. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/rs_core/src/lib.rs +0 -0
  49. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/rs_parsers/Cargo.toml +0 -0
  50. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/rs_parsers/src/lib.rs +0 -0
  51. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/rs_validators/Cargo.toml +0 -0
  52. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/rs_validators/src/lib.rs +0 -0
  53. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/typedefs/__init__.py +0 -0
  54. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/typedefs/singleton.c +0 -0
  55. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/typedefs/singleton.html +0 -0
  56. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/typedefs/singleton.pxd +0 -0
  57. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/typedefs/singleton.pyx +0 -0
  58. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/typedefs/types.c +0 -0
  59. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/typedefs/types.html +0 -0
  60. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/typedefs/types.pxd +0 -0
  61. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/typedefs/types.pyx +0 -0
  62. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/types.c +0 -0
  63. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/types.html +0 -0
  64. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/types.pyx +0 -0
  65. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/validation.c +0 -0
  66. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/validation.html +0 -0
  67. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/validation.pxd +0 -0
  68. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/datamodel/validation.pyx +0 -0
  69. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/pyproject.toml +0 -0
  70. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/python_datamodel.egg-info/SOURCES.txt +0 -0
  71. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/python_datamodel.egg-info/dependency_links.txt +0 -0
  72. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/python_datamodel.egg-info/not-zip-safe +0 -0
  73. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/python_datamodel.egg-info/requires.txt +0 -0
  74. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/python_datamodel.egg-info/top_level.txt +0 -0
  75. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/setup.cfg +0 -0
  76. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/setup.py +0 -0
  77. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/__init__.py +0 -0
  78. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_aliases.py +0 -0
  79. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_classdict.py +0 -0
  80. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_container.py +0 -0
  81. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_converter.py +0 -0
  82. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_dashboards.py +0 -0
  83. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_data.py +0 -0
  84. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_descriptors.py +0 -0
  85. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_dict.py +0 -0
  86. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_field.py +0 -0
  87. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_generic.py +0 -0
  88. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_inherit.py +0 -0
  89. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_json.py +0 -0
  90. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_method.py +0 -0
  91. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_model.py +0 -0
  92. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_notify.py +0 -0
  93. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_primitives.py +0 -0
  94. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_qsdriver.py +0 -0
  95. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_qsmodel.py +0 -0
  96. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_qsobject.py +0 -0
  97. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_ticket.py +0 -0
  98. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_tickets.py +0 -0
  99. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_tuples.py +0 -0
  100. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_type_user.py +0 -0
  101. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_types.py +0 -0
  102. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_unions.py +0 -0
  103. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_valid_callables.py +0 -0
  104. {python_datamodel-0.10.17 → python_datamodel-0.10.19}/tests/test_validations.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-datamodel
3
- Version: 0.10.17
3
+ Version: 0.10.19
4
4
  Summary: simple library based on python +3.8 to use Dataclass-syntaxfor interacting with Data
5
5
  Home-page: https://github.com/phenobarbital/python-datamodel
6
6
  Author: Jesus Lara
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
  import contextlib
3
- from typing import Any, Dict, get_args
3
+ from typing import Any, Dict, Optional, get_args
4
4
  from enum import Enum, EnumMeta
5
5
  # Dataclass
6
6
  import inspect
@@ -210,10 +210,13 @@ class ModelMixin:
210
210
  self,
211
211
  remove_nulls: bool = False,
212
212
  convert_enums: bool = False,
213
- as_values: bool = False
213
+ as_values: bool = False,
214
+ exclude: Optional[set] = None
214
215
  ) -> dict[str, Any]:
216
+ exclude = exclude or set()
217
+ exclude.add('_pgoutput') # Always exclude _pgoutput
215
218
  if as_values:
216
- return self.__collapse_as_values__(remove_nulls, convert_enums, as_values)
219
+ return self.__collapse_as_values__(remove_nulls, convert_enums, as_values, exclude)
217
220
  d = as_dict(self, dict_factory=dict)
218
221
  if convert_enums:
219
222
  d = self.__convert_enums__(d)
@@ -226,12 +229,21 @@ class ModelMixin:
226
229
  self,
227
230
  remove_nulls: bool = False,
228
231
  convert_enums: bool = False,
229
- as_values: bool = False
232
+ as_values: bool = False,
233
+ exclude: Optional[set] = None
230
234
  ) -> dict[str, Any]:
231
235
  """Recursively converts any BaseModel instances to their primary key value."""
232
236
  out = {}
233
237
  _fields = self.columns()
234
238
  for name, field in _fields.items():
239
+ if name in exclude:
240
+ continue
241
+ # Skip internal or error fields
242
+ if name.startswith('__') or name == '__errors__':
243
+ continue
244
+ # Skip fields marked for exclusion
245
+ if field.metadata.get('exclude', False):
246
+ continue
235
247
  # datatype = field.type
236
248
  value = getattr(self, name)
237
249
  if value is None and remove_nulls: