python-datamodel 0.10.15__tar.gz → 0.10.16__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.15 → python_datamodel-0.10.16}/PKG-INFO +1 -1
  2. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/validation.c +10 -10
  3. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/validation.html +4 -4
  4. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/validation.pyx +2 -2
  5. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/version.py +1 -1
  6. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/python_datamodel.egg-info/PKG-INFO +1 -1
  7. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/CHANGELOG.md +0 -0
  8. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/CONTRIBUTING.md +0 -0
  9. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/LICENSE +0 -0
  10. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/MANIFEST.in +0 -0
  11. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/Makefile +0 -0
  12. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/README.md +0 -0
  13. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/SECURITY.md +0 -0
  14. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/__init__.py +0 -0
  15. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/abstract.py +0 -0
  16. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/adaptive/__init__.py +0 -0
  17. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/adaptive/models.py +0 -0
  18. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/aliases/__init__.py +0 -0
  19. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/base.py +0 -0
  20. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/converters.c +0 -0
  21. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/converters.html +0 -0
  22. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/converters.pyx +0 -0
  23. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/exceptions.c +0 -0
  24. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/exceptions.html +0 -0
  25. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/exceptions.pxd +0 -0
  26. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/exceptions.pyx +0 -0
  27. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/fields.cpp +0 -0
  28. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/fields.html +0 -0
  29. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/fields.pyx +0 -0
  30. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/functions.cpp +0 -0
  31. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/functions.html +0 -0
  32. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/functions.pxd +0 -0
  33. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/functions.pyx +0 -0
  34. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/jsonld/__init__.py +0 -0
  35. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/jsonld/models.py +0 -0
  36. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/libs/__init__.py +0 -0
  37. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/libs/mapping.c +0 -0
  38. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/libs/mapping.html +0 -0
  39. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/libs/mapping.pxd +0 -0
  40. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/libs/mapping.pyx +0 -0
  41. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/libs/mutables.py +0 -0
  42. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/models.py +0 -0
  43. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/parsers/__init__.py +0 -0
  44. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/parsers/encoders.py +0 -0
  45. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/parsers/json.cpp +0 -0
  46. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/parsers/json.html +0 -0
  47. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/parsers/json.pyx +0 -0
  48. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/profiler.py +0 -0
  49. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/py.typed +0 -0
  50. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/rs_core/Cargo.toml +0 -0
  51. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/rs_core/src/lib.rs +0 -0
  52. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/rs_parsers/Cargo.toml +0 -0
  53. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/rs_parsers/src/lib.rs +0 -0
  54. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/rs_validators/Cargo.toml +0 -0
  55. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/rs_validators/src/lib.rs +0 -0
  56. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/typedefs/__init__.py +0 -0
  57. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/typedefs/singleton.c +0 -0
  58. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/typedefs/singleton.html +0 -0
  59. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/typedefs/singleton.pxd +0 -0
  60. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/typedefs/singleton.pyx +0 -0
  61. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/typedefs/types.c +0 -0
  62. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/typedefs/types.html +0 -0
  63. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/typedefs/types.pxd +0 -0
  64. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/typedefs/types.pyx +0 -0
  65. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/types.c +0 -0
  66. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/types.html +0 -0
  67. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/types.pyx +0 -0
  68. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/datamodel/validation.pxd +0 -0
  69. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/pyproject.toml +0 -0
  70. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/python_datamodel.egg-info/SOURCES.txt +0 -0
  71. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/python_datamodel.egg-info/dependency_links.txt +0 -0
  72. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/python_datamodel.egg-info/not-zip-safe +0 -0
  73. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/python_datamodel.egg-info/requires.txt +0 -0
  74. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/python_datamodel.egg-info/top_level.txt +0 -0
  75. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/setup.cfg +0 -0
  76. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/setup.py +0 -0
  77. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/__init__.py +0 -0
  78. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_aliases.py +0 -0
  79. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_classdict.py +0 -0
  80. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_container.py +0 -0
  81. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_converter.py +0 -0
  82. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_dashboards.py +0 -0
  83. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_data.py +0 -0
  84. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_descriptors.py +0 -0
  85. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_dict.py +0 -0
  86. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_field.py +0 -0
  87. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_generic.py +0 -0
  88. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_inherit.py +0 -0
  89. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_json.py +0 -0
  90. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_method.py +0 -0
  91. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_model.py +0 -0
  92. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_notify.py +0 -0
  93. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_primitives.py +0 -0
  94. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_qsdriver.py +0 -0
  95. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_qsmodel.py +0 -0
  96. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_qsobject.py +0 -0
  97. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_ticket.py +0 -0
  98. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_tickets.py +0 -0
  99. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_tuples.py +0 -0
  100. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_type_user.py +0 -0
  101. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_types.py +0 -0
  102. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_unions.py +0 -0
  103. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/tests/test_valid_callables.py +0 -0
  104. {python_datamodel-0.10.15 → python_datamodel-0.10.16}/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.15
3
+ Version: 0.10.16
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
@@ -9675,7 +9675,7 @@ static PyObject *__pyx_f_9datamodel_10validation__validate_constraints(PyObject
9675
9675
  /* "datamodel/validation.pyx":427
9676
9676
  *
9677
9677
  * # Minimum value validation (greater than)
9678
- * if min_val is not None and value <= min_val: # <<<<<<<<<<<<<<
9678
+ * if min_val is not None and value < min_val: # inclusive # <<<<<<<<<<<<<<
9679
9679
  * return _create_error(
9680
9680
  * name,
9681
9681
  */
@@ -9685,7 +9685,7 @@ static PyObject *__pyx_f_9datamodel_10validation__validate_constraints(PyObject
9685
9685
  __pyx_t_1 = __pyx_t_7;
9686
9686
  goto __pyx_L26_bool_binop_done;
9687
9687
  }
9688
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_value, __pyx_v_min_val, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 427, __pyx_L1_error)
9688
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_value, __pyx_v_min_val, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 427, __pyx_L1_error)
9689
9689
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 427, __pyx_L1_error)
9690
9690
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9691
9691
  __pyx_t_1 = __pyx_t_7;
@@ -9694,7 +9694,7 @@ static PyObject *__pyx_f_9datamodel_10validation__validate_constraints(PyObject
9694
9694
 
9695
9695
  /* "datamodel/validation.pyx":428
9696
9696
  * # Minimum value validation (greater than)
9697
- * if min_val is not None and value <= min_val:
9697
+ * if min_val is not None and value < min_val: # inclusive
9698
9698
  * return _create_error( # <<<<<<<<<<<<<<
9699
9699
  * name,
9700
9700
  * value,
@@ -9716,7 +9716,7 @@ static PyObject *__pyx_f_9datamodel_10validation__validate_constraints(PyObject
9716
9716
 
9717
9717
  /* "datamodel/validation.pyx":428
9718
9718
  * # Minimum value validation (greater than)
9719
- * if min_val is not None and value <= min_val:
9719
+ * if min_val is not None and value < min_val: # inclusive
9720
9720
  * return _create_error( # <<<<<<<<<<<<<<
9721
9721
  * name,
9722
9722
  * value,
@@ -9731,7 +9731,7 @@ static PyObject *__pyx_f_9datamodel_10validation__validate_constraints(PyObject
9731
9731
  /* "datamodel/validation.pyx":427
9732
9732
  *
9733
9733
  * # Minimum value validation (greater than)
9734
- * if min_val is not None and value <= min_val: # <<<<<<<<<<<<<<
9734
+ * if min_val is not None and value < min_val: # inclusive # <<<<<<<<<<<<<<
9735
9735
  * return _create_error(
9736
9736
  * name,
9737
9737
  */
@@ -9740,7 +9740,7 @@ static PyObject *__pyx_f_9datamodel_10validation__validate_constraints(PyObject
9740
9740
  /* "datamodel/validation.pyx":437
9741
9741
  *
9742
9742
  * # Maximum value validation (less than)
9743
- * if max_val is not None and value >= max_val: # <<<<<<<<<<<<<<
9743
+ * if max_val is not None and value > max_val: # inclusive # <<<<<<<<<<<<<<
9744
9744
  * return _create_error(
9745
9745
  * name,
9746
9746
  */
@@ -9750,7 +9750,7 @@ static PyObject *__pyx_f_9datamodel_10validation__validate_constraints(PyObject
9750
9750
  __pyx_t_1 = __pyx_t_7;
9751
9751
  goto __pyx_L29_bool_binop_done;
9752
9752
  }
9753
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_value, __pyx_v_max_val, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 437, __pyx_L1_error)
9753
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_value, __pyx_v_max_val, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 437, __pyx_L1_error)
9754
9754
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 437, __pyx_L1_error)
9755
9755
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9756
9756
  __pyx_t_1 = __pyx_t_7;
@@ -9759,7 +9759,7 @@ static PyObject *__pyx_f_9datamodel_10validation__validate_constraints(PyObject
9759
9759
 
9760
9760
  /* "datamodel/validation.pyx":438
9761
9761
  * # Maximum value validation (less than)
9762
- * if max_val is not None and value >= max_val:
9762
+ * if max_val is not None and value > max_val: # inclusive
9763
9763
  * return _create_error( # <<<<<<<<<<<<<<
9764
9764
  * name,
9765
9765
  * value,
@@ -9781,7 +9781,7 @@ static PyObject *__pyx_f_9datamodel_10validation__validate_constraints(PyObject
9781
9781
 
9782
9782
  /* "datamodel/validation.pyx":438
9783
9783
  * # Maximum value validation (less than)
9784
- * if max_val is not None and value >= max_val:
9784
+ * if max_val is not None and value > max_val: # inclusive
9785
9785
  * return _create_error( # <<<<<<<<<<<<<<
9786
9786
  * name,
9787
9787
  * value,
@@ -9796,7 +9796,7 @@ static PyObject *__pyx_f_9datamodel_10validation__validate_constraints(PyObject
9796
9796
  /* "datamodel/validation.pyx":437
9797
9797
  *
9798
9798
  * # Maximum value validation (less than)
9799
- * if max_val is not None and value >= max_val: # <<<<<<<<<<<<<<
9799
+ * if max_val is not None and value > max_val: # inclusive # <<<<<<<<<<<<<<
9800
9800
  * return _create_error(
9801
9801
  * name,
9802
9802
  */
@@ -4172,14 +4172,14 @@ static PyObject *__pyx_pf_9datamodel_10validation_is_optional_type(CYTHON_UNUSED
4172
4172
  <pre class="cython line score-0">&#xA0;<span class="">424</span>: )</pre>
4173
4173
  <pre class="cython line score-0">&#xA0;<span class="">425</span>: </pre>
4174
4174
  <pre class="cython line score-0">&#xA0;<span class="">426</span>: # Minimum value validation (greater than)</pre>
4175
- <pre class="cython line score-8" onclick="(function(s){s.display=s.display==='block'?'none':'block'})(this.nextElementSibling.style)">+<span class="">427</span>: if min_val is not None and value &lt;= min_val:</pre>
4175
+ <pre class="cython line score-8" onclick="(function(s){s.display=s.display==='block'?'none':'block'})(this.nextElementSibling.style)">+<span class="">427</span>: if min_val is not None and value &lt; min_val: # inclusive</pre>
4176
4176
  <pre class='cython code score-8 '> __pyx_t_7 = (__pyx_v_min_val != Py_None);
4177
4177
  if (__pyx_t_7) {
4178
4178
  } else {
4179
4179
  __pyx_t_1 = __pyx_t_7;
4180
4180
  goto __pyx_L26_bool_binop_done;
4181
4181
  }
4182
- __pyx_t_2 = <span class='py_c_api'>PyObject_RichCompare</span>(__pyx_v_value, __pyx_v_min_val, Py_LE); <span class='refnanny'>__Pyx_XGOTREF</span>(__pyx_t_2);<span class='error_goto'> if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 427, __pyx_L1_error)</span>
4182
+ __pyx_t_2 = <span class='py_c_api'>PyObject_RichCompare</span>(__pyx_v_value, __pyx_v_min_val, Py_LT); <span class='refnanny'>__Pyx_XGOTREF</span>(__pyx_t_2);<span class='error_goto'> if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 427, __pyx_L1_error)</span>
4183
4183
  __pyx_t_7 = <span class='pyx_c_api'>__Pyx_PyObject_IsTrue</span>(__pyx_t_2); if (unlikely((__pyx_t_7 &lt; 0))) <span class='error_goto'>__PYX_ERR(0, 427, __pyx_L1_error)</span>
4184
4184
  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_2); __pyx_t_2 = 0;
4185
4185
  __pyx_t_1 = __pyx_t_7;
@@ -4209,14 +4209,14 @@ static PyObject *__pyx_pf_9datamodel_10validation_is_optional_type(CYTHON_UNUSED
4209
4209
  <pre class="cython line score-0">&#xA0;<span class="">434</span>: )</pre>
4210
4210
  <pre class="cython line score-0">&#xA0;<span class="">435</span>: </pre>
4211
4211
  <pre class="cython line score-0">&#xA0;<span class="">436</span>: # Maximum value validation (less than)</pre>
4212
- <pre class="cython line score-8" onclick="(function(s){s.display=s.display==='block'?'none':'block'})(this.nextElementSibling.style)">+<span class="">437</span>: if max_val is not None and value &gt;= max_val:</pre>
4212
+ <pre class="cython line score-8" onclick="(function(s){s.display=s.display==='block'?'none':'block'})(this.nextElementSibling.style)">+<span class="">437</span>: if max_val is not None and value &gt; max_val: # inclusive</pre>
4213
4213
  <pre class='cython code score-8 '> __pyx_t_7 = (__pyx_v_max_val != Py_None);
4214
4214
  if (__pyx_t_7) {
4215
4215
  } else {
4216
4216
  __pyx_t_1 = __pyx_t_7;
4217
4217
  goto __pyx_L29_bool_binop_done;
4218
4218
  }
4219
- __pyx_t_2 = <span class='py_c_api'>PyObject_RichCompare</span>(__pyx_v_value, __pyx_v_max_val, Py_GE); <span class='refnanny'>__Pyx_XGOTREF</span>(__pyx_t_2);<span class='error_goto'> if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 437, __pyx_L1_error)</span>
4219
+ __pyx_t_2 = <span class='py_c_api'>PyObject_RichCompare</span>(__pyx_v_value, __pyx_v_max_val, Py_GT); <span class='refnanny'>__Pyx_XGOTREF</span>(__pyx_t_2);<span class='error_goto'> if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 437, __pyx_L1_error)</span>
4220
4220
  __pyx_t_7 = <span class='pyx_c_api'>__Pyx_PyObject_IsTrue</span>(__pyx_t_2); if (unlikely((__pyx_t_7 &lt; 0))) <span class='error_goto'>__PYX_ERR(0, 437, __pyx_L1_error)</span>
4221
4221
  <span class='pyx_macro_api'>__Pyx_DECREF</span>(__pyx_t_2); __pyx_t_2 = 0;
4222
4222
  __pyx_t_1 = __pyx_t_7;
@@ -424,7 +424,7 @@ cdef dict _validate_constraints(
424
424
  )
425
425
 
426
426
  # Minimum value validation (greater than)
427
- if min_val is not None and value <= min_val:
427
+ if min_val is not None and value < min_val: # inclusive
428
428
  return _create_error(
429
429
  name,
430
430
  value,
@@ -434,7 +434,7 @@ cdef dict _validate_constraints(
434
434
  )
435
435
 
436
436
  # Maximum value validation (less than)
437
- if max_val is not None and value >= max_val:
437
+ if max_val is not None and value > max_val: # inclusive
438
438
  return _create_error(
439
439
  name,
440
440
  value,
@@ -6,7 +6,7 @@ __description__ = (
6
6
  'simple library based on python +3.8 to use Dataclass-syntax'
7
7
  'for interacting with Data'
8
8
  )
9
- __version__ = '0.10.15'
9
+ __version__ = '0.10.16'
10
10
  __copyright__ = 'Copyright (c) 2020-2024 Jesus Lara'
11
11
  __author__ = 'Jesus Lara'
12
12
  __author_email__ = 'jesuslarag@gmail.com'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-datamodel
3
- Version: 0.10.15
3
+ Version: 0.10.16
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