python-datamodel 0.10.1__cp313-cp313-win32.whl

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 (78) hide show
  1. datamodel/__init__.py +13 -0
  2. datamodel/abstract.py +383 -0
  3. datamodel/adaptive/__init__.py +0 -0
  4. datamodel/adaptive/models.py +598 -0
  5. datamodel/aliases/__init__.py +26 -0
  6. datamodel/base.py +180 -0
  7. datamodel/converters.c +43471 -0
  8. datamodel/converters.cp313-win32.pyd +0 -0
  9. datamodel/converters.html +17387 -0
  10. datamodel/converters.pyx +1489 -0
  11. datamodel/exceptions.c +13455 -0
  12. datamodel/exceptions.cp313-win32.pyd +0 -0
  13. datamodel/exceptions.html +1261 -0
  14. datamodel/exceptions.pxd +13 -0
  15. datamodel/exceptions.pyx +50 -0
  16. datamodel/fields.cp313-win32.pyd +0 -0
  17. datamodel/fields.cpp +17401 -0
  18. datamodel/fields.html +3912 -0
  19. datamodel/fields.pyx +309 -0
  20. datamodel/functions.cp313-win32.pyd +0 -0
  21. datamodel/functions.cpp +9068 -0
  22. datamodel/functions.html +1766 -0
  23. datamodel/functions.pxd +9 -0
  24. datamodel/functions.pyx +82 -0
  25. datamodel/jsonld/__init__.py +45 -0
  26. datamodel/jsonld/models.py +500 -0
  27. datamodel/libs/__init__.py +1 -0
  28. datamodel/libs/mapping.c +15067 -0
  29. datamodel/libs/mapping.cp313-win32.pyd +0 -0
  30. datamodel/libs/mapping.html +2618 -0
  31. datamodel/libs/mapping.pxd +11 -0
  32. datamodel/libs/mapping.pyx +135 -0
  33. datamodel/libs/mutables.py +127 -0
  34. datamodel/models.py +814 -0
  35. datamodel/parsers/__init__.py +0 -0
  36. datamodel/parsers/encoders.py +15 -0
  37. datamodel/parsers/json.cp313-win32.pyd +0 -0
  38. datamodel/parsers/json.cpp +17004 -0
  39. datamodel/parsers/json.html +3365 -0
  40. datamodel/parsers/json.pyx +250 -0
  41. datamodel/profiler.py +21 -0
  42. datamodel/py.typed +0 -0
  43. datamodel/rs_core/Cargo.toml +17 -0
  44. datamodel/rs_core/src/lib.rs +294 -0
  45. datamodel/rs_parsers/Cargo.toml +22 -0
  46. datamodel/rs_parsers/src/lib.rs +571 -0
  47. datamodel/rs_parsers.cp313-win32.pyd +0 -0
  48. datamodel/rs_validators/Cargo.toml +17 -0
  49. datamodel/rs_validators/src/lib.rs +0 -0
  50. datamodel/typedefs/__init__.py +9 -0
  51. datamodel/typedefs/singleton.c +9169 -0
  52. datamodel/typedefs/singleton.cp313-win32.pyd +0 -0
  53. datamodel/typedefs/singleton.html +629 -0
  54. datamodel/typedefs/singleton.pxd +9 -0
  55. datamodel/typedefs/singleton.pyx +24 -0
  56. datamodel/typedefs/types.c +11716 -0
  57. datamodel/typedefs/types.cp313-win32.pyd +0 -0
  58. datamodel/typedefs/types.html +732 -0
  59. datamodel/typedefs/types.pxd +11 -0
  60. datamodel/typedefs/types.pyx +39 -0
  61. datamodel/types.c +7165 -0
  62. datamodel/types.cp313-win32.pyd +0 -0
  63. datamodel/types.html +716 -0
  64. datamodel/types.pyx +100 -0
  65. datamodel/validation.cp313-win32.pyd +0 -0
  66. datamodel/validation.cpp +17085 -0
  67. datamodel/validation.html +4769 -0
  68. datamodel/validation.pyx +315 -0
  69. datamodel/version.py +13 -0
  70. examples/nn/examples.py +311 -0
  71. examples/nn/stores.py +151 -0
  72. examples/tests/sp_types.py +294 -0
  73. examples/tests/speed_dates.py +26 -0
  74. python_datamodel-0.10.1.dist-info/LICENSE +29 -0
  75. python_datamodel-0.10.1.dist-info/METADATA +320 -0
  76. python_datamodel-0.10.1.dist-info/RECORD +78 -0
  77. python_datamodel-0.10.1.dist-info/WHEEL +5 -0
  78. python_datamodel-0.10.1.dist-info/top_level.txt +7 -0
datamodel/types.pyx ADDED
@@ -0,0 +1,100 @@
1
+ # cython: language_level=3, embedsignature=True, boundscheck=False, wraparound=False, initializedcheck=False
2
+ # Copyright (C) 2018-present Jesus Lara
3
+ #
4
+ from typing import NewType
5
+ from datetime import (
6
+ datetime,
7
+ time,
8
+ date,
9
+ timedelta
10
+ )
11
+ from uuid import UUID
12
+ from decimal import Decimal
13
+
14
+
15
+ uint64 = NewType('uint64', int) # uint64
16
+ uint64_min = 0
17
+ uint64_max = (1 << 64) - 1
18
+
19
+
20
+ DB_TYPES: dict = {
21
+ bool: "boolean",
22
+ int: "integer",
23
+ # int64: "bigint",
24
+ uint64: "bigint",
25
+ float: "float",
26
+ str: "character varying",
27
+ bytes: "byte",
28
+ list: "Array",
29
+ tuple: "Array",
30
+ Decimal: "numeric",
31
+ date: "date",
32
+ datetime: "timestamp without time zone",
33
+ time: "time",
34
+ timedelta: "timestamp without time zone",
35
+ UUID: "uuid",
36
+ dict: "jsonb",
37
+ type(None): None
38
+ }
39
+
40
+
41
+ MODEL_TYPES: dict = {
42
+ "boolean": bool,
43
+ "integer": int,
44
+ "bigint": uint64,
45
+ "float": float,
46
+ "character varying": str,
47
+ "string": str,
48
+ "varchar": str,
49
+ "byte": bytes,
50
+ "bytea": bytes,
51
+ "Array": list,
52
+ "hstore": dict,
53
+ "character varying[]": list,
54
+ "numeric": Decimal,
55
+ "date": date,
56
+ "timestamp with time zone": datetime,
57
+ "time": time,
58
+ "timestamp without time zone": datetime,
59
+ "uuid": UUID,
60
+ "json": dict,
61
+ "jsonb": dict,
62
+ "text": str,
63
+ "serial": int,
64
+ "bigserial": int,
65
+ "inet": str
66
+ }
67
+
68
+
69
+ JSON_TYPES: dict = {
70
+ bool: "boolean",
71
+ int: "integer",
72
+ uint64: "long",
73
+ float: "number",
74
+ str: "string",
75
+ bytes: "byte",
76
+ list: "array",
77
+ dict: "object",
78
+ Decimal: "number",
79
+ date: "date",
80
+ datetime: "datetime",
81
+ time: "time",
82
+ timedelta: "timedelta",
83
+ UUID: "uuid"
84
+ }
85
+
86
+
87
+ ### Declaration of New Types:
88
+ Text: str = NewType('Text', str)
89
+
90
+
91
+ def default_dict():
92
+ """Return a default empty string usable into Dataclasses.
93
+ """
94
+ return {}
95
+
96
+
97
+ def default_string():
98
+ """Return a default string.
99
+ """
100
+ return ''
Binary file