sqlmodel 0.0.40__tar.gz → 0.0.42__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 (341) hide show
  1. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/PKG-INFO +1 -1
  2. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/pyproject.toml +1 -1
  3. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/__init__.py +5 -1
  4. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/main.py +56 -15
  5. sqlmodel-0.0.42/tests/test_pydantic/test_field.py +122 -0
  6. sqlmodel-0.0.40/tests/test_pydantic/test_field.py +0 -56
  7. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/LICENSE +0 -0
  8. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/README.md +0 -0
  9. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/__init__.py +0 -0
  10. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/advanced/__init__.py +0 -0
  11. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/advanced/decimal/__init__.py +0 -0
  12. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/advanced/decimal/tutorial001_py310.py +0 -0
  13. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/advanced/uuid/__init__.py +0 -0
  14. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/advanced/uuid/tutorial001_py310.py +0 -0
  15. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/advanced/uuid/tutorial002_py310.py +0 -0
  16. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/__init__.py +0 -0
  17. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/automatic_id_none_refresh/__init__.py +0 -0
  18. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/automatic_id_none_refresh/annotations/en/tutorial002.md +0 -0
  19. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/automatic_id_none_refresh/tutorial001_py310.py +0 -0
  20. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/automatic_id_none_refresh/tutorial002_py310.py +0 -0
  21. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/code_structure/__init__.py +0 -0
  22. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/code_structure/tutorial001_py310/__init__.py +0 -0
  23. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/code_structure/tutorial001_py310/app.py +0 -0
  24. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/code_structure/tutorial001_py310/database.py +0 -0
  25. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/code_structure/tutorial001_py310/models.py +0 -0
  26. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/code_structure/tutorial002_py310/__init__.py +0 -0
  27. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/code_structure/tutorial002_py310/app.py +0 -0
  28. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/code_structure/tutorial002_py310/database.py +0 -0
  29. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/code_structure/tutorial002_py310/hero_model.py +0 -0
  30. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/code_structure/tutorial002_py310/team_model.py +0 -0
  31. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/__init__.py +0 -0
  32. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/create_tables/__init__.py +0 -0
  33. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/create_tables/tutorial001_py310.py +0 -0
  34. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/delete/__init__.py +0 -0
  35. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/delete/tutorial001_py310.py +0 -0
  36. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/insert/__init__.py +0 -0
  37. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/insert/tutorial001_py310.py +0 -0
  38. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/select/__init__.py +0 -0
  39. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/select/tutorial001_py310.py +0 -0
  40. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/select/tutorial002_py310.py +0 -0
  41. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/select/tutorial003_py310.py +0 -0
  42. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/select/tutorial004_py310.py +0 -0
  43. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/select/tutorial005_py310.py +0 -0
  44. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/update/__init__.py +0 -0
  45. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/connect/update/tutorial001_py310.py +0 -0
  46. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/create_db_and_table/__init__.py +0 -0
  47. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/create_db_and_table/annotations/en/tutorial003.md +0 -0
  48. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/create_db_and_table/tutorial001_py310.py +0 -0
  49. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/create_db_and_table/tutorial002_py310.py +0 -0
  50. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/create_db_and_table/tutorial003_py310.py +0 -0
  51. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/delete/__init__.py +0 -0
  52. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/delete/annotations/en/tutorial002.md +0 -0
  53. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/delete/tutorial001_py310.py +0 -0
  54. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/delete/tutorial002_py310.py +0 -0
  55. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/__init__.py +0 -0
  56. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/__init__.py +0 -0
  57. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/__init__.py +0 -0
  58. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_001.md +0 -0
  59. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_002.md +0 -0
  60. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_003.md +0 -0
  61. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_004.md +0 -0
  62. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_005.md +0 -0
  63. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_006.md +0 -0
  64. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/main.py +0 -0
  65. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_extra_coverage.py +0 -0
  66. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main.py +0 -0
  67. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_001.py +0 -0
  68. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_002.py +0 -0
  69. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_003.py +0 -0
  70. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_004.py +0 -0
  71. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_005.py +0 -0
  72. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_006.py +0 -0
  73. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/delete/__init__.py +0 -0
  74. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/delete/tutorial001_py310.py +0 -0
  75. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/limit_and_offset/__init__.py +0 -0
  76. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/limit_and_offset/tutorial001_py310.py +0 -0
  77. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/multiple_models/__init__.py +0 -0
  78. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/multiple_models/tutorial001_py310.py +0 -0
  79. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/multiple_models/tutorial002_py310.py +0 -0
  80. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/read_one/__init__.py +0 -0
  81. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/read_one/tutorial001_py310.py +0 -0
  82. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/relationships/__init__.py +0 -0
  83. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/relationships/tutorial001_py310.py +0 -0
  84. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/response_model/__init__.py +0 -0
  85. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/response_model/tutorial001_py310.py +0 -0
  86. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/session_with_dependency/__init__.py +0 -0
  87. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py310.py +0 -0
  88. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/simple_hero_api/__init__.py +0 -0
  89. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/simple_hero_api/tutorial001_py310.py +0 -0
  90. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/teams/__init__.py +0 -0
  91. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/teams/tutorial001_py310.py +0 -0
  92. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/update/__init__.py +0 -0
  93. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/update/tutorial001_py310.py +0 -0
  94. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/fastapi/update/tutorial002_py310.py +0 -0
  95. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/indexes/__init__.py +0 -0
  96. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/indexes/tutorial001_py310.py +0 -0
  97. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/indexes/tutorial002_py310.py +0 -0
  98. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/insert/__init__.py +0 -0
  99. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/insert/annotations/en/tutorial003.md +0 -0
  100. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/insert/tutorial001_py310.py +0 -0
  101. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/insert/tutorial002_py310.py +0 -0
  102. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/insert/tutorial003_py310.py +0 -0
  103. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/many_to_many/__init__.py +0 -0
  104. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/many_to_many/tutorial001_py310.py +0 -0
  105. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/many_to_many/tutorial002_py310.py +0 -0
  106. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/many_to_many/tutorial003_py310.py +0 -0
  107. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/offset_and_limit/__init__.py +0 -0
  108. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/offset_and_limit/tutorial001_py310.py +0 -0
  109. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/offset_and_limit/tutorial002_py310.py +0 -0
  110. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/offset_and_limit/tutorial003_py310.py +0 -0
  111. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/offset_and_limit/tutorial004_py310.py +0 -0
  112. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/one/__init__.py +0 -0
  113. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/one/tutorial001_py310.py +0 -0
  114. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/one/tutorial002_py310.py +0 -0
  115. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/one/tutorial003_py310.py +0 -0
  116. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/one/tutorial004_py310.py +0 -0
  117. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/one/tutorial005_py310.py +0 -0
  118. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/one/tutorial006_py310.py +0 -0
  119. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/one/tutorial007_py310.py +0 -0
  120. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/one/tutorial008_py310.py +0 -0
  121. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/one/tutorial009_py310.py +0 -0
  122. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/__init__.py +0 -0
  123. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/back_populates/__init__.py +0 -0
  124. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/back_populates/tutorial001_py310.py +0 -0
  125. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/back_populates/tutorial002_py310.py +0 -0
  126. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/back_populates/tutorial003_py310.py +0 -0
  127. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/__init__.py +0 -0
  128. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial001_py310.py +0 -0
  129. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial002_py310.py +0 -0
  130. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial003_py310.py +0 -0
  131. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial004_py310.py +0 -0
  132. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial005_py310.py +0 -0
  133. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/create_and_update_relationships/__init__.py +0 -0
  134. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/create_and_update_relationships/tutorial001_py310.py +0 -0
  135. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/define_relationship_attributes/__init__.py +0 -0
  136. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/define_relationship_attributes/tutorial001_py310.py +0 -0
  137. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/read_relationships/__init__.py +0 -0
  138. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/read_relationships/tutorial001_py310.py +0 -0
  139. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/relationship_attributes/read_relationships/tutorial002_py310.py +0 -0
  140. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/select/__init__.py +0 -0
  141. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/select/annotations/en/tutorial002.md +0 -0
  142. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/select/tutorial001_py310.py +0 -0
  143. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/select/tutorial002_py310.py +0 -0
  144. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/select/tutorial003_py310.py +0 -0
  145. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/select/tutorial004_py310.py +0 -0
  146. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/update/__init__.py +0 -0
  147. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/update/annotations/en/tutorial002.md +0 -0
  148. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/update/annotations/en/tutorial004.md +0 -0
  149. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/update/tutorial001_py310.py +0 -0
  150. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/update/tutorial002_py310.py +0 -0
  151. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/update/tutorial003_py310.py +0 -0
  152. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/update/tutorial004_py310.py +0 -0
  153. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/where/__init__.py +0 -0
  154. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/where/tutorial001_py310.py +0 -0
  155. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/where/tutorial002_py310.py +0 -0
  156. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/where/tutorial003_py310.py +0 -0
  157. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/where/tutorial004_py310.py +0 -0
  158. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/where/tutorial005_py310.py +0 -0
  159. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/where/tutorial006_py310.py +0 -0
  160. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/where/tutorial006b_py310.py +0 -0
  161. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/where/tutorial007_py310.py +0 -0
  162. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/where/tutorial008_py310.py +0 -0
  163. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/where/tutorial009_py310.py +0 -0
  164. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/docs_src/tutorial/where/tutorial011_py310.py +0 -0
  165. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/scripts/add_latest_release_date.py +0 -0
  166. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/scripts/deploy_docs_status.py +0 -0
  167. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/scripts/docs.py +0 -0
  168. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/scripts/format.sh +0 -0
  169. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/scripts/generate_select.py +0 -0
  170. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/scripts/lint.sh +0 -0
  171. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/scripts/prepare_release.py +0 -0
  172. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/scripts/test.sh +0 -0
  173. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/.agents/skills/sqlmodel/SKILL.md +0 -0
  174. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/_compat.py +0 -0
  175. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/default.py +0 -0
  176. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/ext/__init__.py +0 -0
  177. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/ext/asyncio/__init__.py +0 -0
  178. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/ext/asyncio/session.py +0 -0
  179. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/orm/__init__.py +0 -0
  180. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/orm/session.py +0 -0
  181. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/pool/__init__.py +0 -0
  182. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/py.typed +0 -0
  183. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/sql/__init__.py +0 -0
  184. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/sql/_expression_select_cls.py +0 -0
  185. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/sql/_expression_select_gen.py +0 -0
  186. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/sql/_expression_select_gen.py.jinja2 +0 -0
  187. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/sql/base.py +0 -0
  188. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/sql/expression.py +0 -0
  189. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/sqlmodel/sql/sqltypes.py +0 -0
  190. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/__init__.py +0 -0
  191. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/conftest.py +0 -0
  192. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_advanced/__init__.py +0 -0
  193. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_advanced/test_decimal/__init__.py +0 -0
  194. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_advanced/test_decimal/test_tutorial001.py +0 -0
  195. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_advanced/test_uuid/__init__.py +0 -0
  196. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_advanced/test_uuid/test_tutorial001.py +0 -0
  197. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_advanced/test_uuid/test_tutorial002.py +0 -0
  198. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_aliases.py +0 -0
  199. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_annotated_uuid.py +0 -0
  200. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_default.py +0 -0
  201. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_deprecations.py +0 -0
  202. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_enums.py +0 -0
  203. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_enums_models.py +0 -0
  204. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_field_sa_args_kwargs.py +0 -0
  205. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_field_sa_column.py +0 -0
  206. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_field_sa_relationship.py +0 -0
  207. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_fields_set.py +0 -0
  208. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_future_annotations.py +0 -0
  209. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_instance_no_args.py +0 -0
  210. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_main.py +0 -0
  211. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_missing_type.py +0 -0
  212. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_nullable.py +0 -0
  213. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_ondelete_raises.py +0 -0
  214. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_prepare_release.py +0 -0
  215. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_pydantic/__init__.py +0 -0
  216. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_pydantic/test_model_dump.py +0 -0
  217. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_query.py +0 -0
  218. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_select_gen.py +0 -0
  219. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_select_typing.py +0 -0
  220. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_sqlalchemy_type_errors.py +0 -0
  221. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/__init__.py +0 -0
  222. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_automatic_id_none_refresh/__init__.py +0 -0
  223. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_tutorial002.py +0 -0
  224. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_code_structure/__init__.py +0 -0
  225. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_code_structure/test_tutorial001.py +0 -0
  226. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_code_structure/test_tutorial002.py +0 -0
  227. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/__init__.py +0 -0
  228. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_create_connected_tables/__init__.py +0 -0
  229. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001.py +0 -0
  230. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_delete/__init__.py +0 -0
  231. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_delete/test_tutorial001.py +0 -0
  232. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_insert/__init__.py +0 -0
  233. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_insert/test_tutorial001.py +0 -0
  234. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_select/__init__.py +0 -0
  235. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_select/test_tutorial001_tutorial002.py +0 -0
  236. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_select/test_tutorial003.py +0 -0
  237. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_select/test_tutorial004.py +0 -0
  238. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_select/test_tutorial005.py +0 -0
  239. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_update/__init__.py +0 -0
  240. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_connect/test_update/test_tutorial001.py +0 -0
  241. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_create_db_and_table/__init__.py +0 -0
  242. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_create_db_and_table/test_tutorial001.py +0 -0
  243. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_create_db_and_table/test_tutorial002.py +0 -0
  244. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_create_db_and_table/test_tutorial003.py +0 -0
  245. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_delete/__init__.py +0 -0
  246. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_delete/test_tutorial001_tutorial002.py +0 -0
  247. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/__init__.py +0 -0
  248. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_app_testing/__init__.py +0 -0
  249. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests001.py +0 -0
  250. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests002.py +0 -0
  251. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests003.py +0 -0
  252. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests004.py +0 -0
  253. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests005.py +0 -0
  254. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests006.py +0 -0
  255. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests_main.py +0 -0
  256. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_delete/__init__.py +0 -0
  257. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_delete/test_tutorial001.py +0 -0
  258. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_limit_and_offset/__init__.py +0 -0
  259. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_limit_and_offset/test_tutorial001.py +0 -0
  260. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_multiple_models/__init__.py +0 -0
  261. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial001.py +0 -0
  262. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial002.py +0 -0
  263. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_read_one/__init__.py +0 -0
  264. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_read_one/test_tutorial001.py +0 -0
  265. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_relationships/__init__.py +0 -0
  266. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_relationships/test_tutorial001.py +0 -0
  267. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_response_model/__init__.py +0 -0
  268. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_response_model/test_tutorial001.py +0 -0
  269. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_session_with_dependency/__init__.py +0 -0
  270. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_session_with_dependency/test_tutorial001.py +0 -0
  271. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_simple_hero_api/__init__.py +0 -0
  272. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_simple_hero_api/test_tutorial001.py +0 -0
  273. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_teams/__init__.py +0 -0
  274. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_teams/test_tutorial001.py +0 -0
  275. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_update/__init__.py +0 -0
  276. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_update/test_tutorial001.py +0 -0
  277. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_fastapi/test_update/test_tutorial002.py +0 -0
  278. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_indexes/__init__.py +0 -0
  279. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_indexes/test_tutorial001.py +0 -0
  280. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_indexes/test_tutorial002.py +0 -0
  281. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_insert/__init__.py +0 -0
  282. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_insert/test_tutorial001.py +0 -0
  283. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_insert/test_tutorial002.py +0 -0
  284. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_insert/test_tutorial003.py +0 -0
  285. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_limit_and_offset/__init__.py +0 -0
  286. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_limit_and_offset/test_tutorial001.py +0 -0
  287. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_limit_and_offset/test_tutorial002.py +0 -0
  288. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_limit_and_offset/test_tutorial003.py +0 -0
  289. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_limit_and_offset/test_tutorial004.py +0 -0
  290. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_many_to_many/__init__.py +0 -0
  291. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_many_to_many/test_tutorial001.py +0 -0
  292. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_many_to_many/test_tutorial002.py +0 -0
  293. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_many_to_many/test_tutorial003.py +0 -0
  294. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_one/__init__.py +0 -0
  295. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_one/test_tutorial001.py +0 -0
  296. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_one/test_tutorial002.py +0 -0
  297. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_one/test_tutorial003.py +0 -0
  298. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_one/test_tutorial004.py +0 -0
  299. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_one/test_tutorial005.py +0 -0
  300. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_one/test_tutorial006.py +0 -0
  301. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_one/test_tutorial007.py +0 -0
  302. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_one/test_tutorial008.py +0 -0
  303. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_one/test_tutorial009.py +0 -0
  304. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/__init__.py +0 -0
  305. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_back_populates/__init__.py +0 -0
  306. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial001.py +0 -0
  307. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial002.py +0 -0
  308. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial003.py +0 -0
  309. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships/__init__.py +0 -0
  310. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships/test_tutorial001.py +0 -0
  311. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes/__init__.py +0 -0
  312. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes/test_tutorial001.py +0 -0
  313. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/__init__.py +0 -0
  314. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial001.py +0 -0
  315. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial002.py +0 -0
  316. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial003.py +0 -0
  317. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial004.py +0 -0
  318. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial005.py +0 -0
  319. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/__init__.py +0 -0
  320. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial001.py +0 -0
  321. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial002.py +0 -0
  322. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_select/__init__.py +0 -0
  323. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_select/test_tutorial001_tutorial002.py +0 -0
  324. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_select/test_tutorial003_tutorial004.py +0 -0
  325. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_update/__init__.py +0 -0
  326. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_update/test_tutorial001_tutorial002.py +0 -0
  327. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_update/test_tutorial003_tutorial004.py +0 -0
  328. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_where/__init__.py +0 -0
  329. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_where/test_tutorial001.py +0 -0
  330. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_where/test_tutorial002.py +0 -0
  331. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_where/test_tutorial003.py +0 -0
  332. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_where/test_tutorial004.py +0 -0
  333. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_where/test_tutorial005.py +0 -0
  334. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_where/test_tutorial006.py +0 -0
  335. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_where/test_tutorial006b.py +0 -0
  336. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_where/test_tutorial007.py +0 -0
  337. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_where/test_tutorial008.py +0 -0
  338. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_where/test_tutorial009.py +0 -0
  339. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_tutorial/test_where/test_tutorial011.py +0 -0
  340. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_update.py +0 -0
  341. {sqlmodel-0.0.40 → sqlmodel-0.0.42}/tests/test_validation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmodel
3
- Version: 0.0.40
3
+ Version: 0.0.42
4
4
  Summary: SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.
5
5
  Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <tiangolo@gmail.com>
6
6
  License-Expression: MIT
@@ -41,7 +41,7 @@ dependencies = [
41
41
  "pydantic>=2.11.0",
42
42
  "typing-extensions>=4.5.0",
43
43
  ]
44
- version = "0.0.40"
44
+ version = "0.0.42"
45
45
 
46
46
  [project.urls]
47
47
  Homepage = "https://github.com/fastapi/sqlmodel"
@@ -1,4 +1,8 @@
1
- __version__ = "0.0.40"
1
+ __version__ = "0.0.42"
2
+
3
+ # Re-export from Pydantic
4
+ from pydantic import Discriminator as Discriminator
5
+ from pydantic import Tag as Tag
2
6
 
3
7
  # Re-export from SQLAlchemy
4
8
  from sqlalchemy.engine import create_engine as create_engine
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  import builtins
4
4
  import ipaddress
5
5
  import uuid
6
+ import warnings
6
7
  from collections.abc import Callable, Mapping, Sequence, Set
7
8
  from dataclasses import dataclass
8
9
  from datetime import date, datetime, time, timedelta
@@ -11,6 +12,7 @@ from enum import Enum
11
12
  from pathlib import Path
12
13
  from typing import (
13
14
  TYPE_CHECKING,
15
+ Annotated,
14
16
  Any,
15
17
  ClassVar,
16
18
  Literal,
@@ -22,7 +24,7 @@ from typing import (
22
24
  overload,
23
25
  )
24
26
 
25
- from pydantic import BaseModel, EmailStr
27
+ from pydantic import BaseModel, Discriminator, EmailStr
26
28
  from pydantic.fields import FieldInfo as PydanticFieldInfo
27
29
  from sqlalchemy import (
28
30
  Boolean,
@@ -89,6 +91,13 @@ IncEx: TypeAlias = (
89
91
  )
90
92
  OnDeleteType = Literal["CASCADE", "SET NULL", "RESTRICT"]
91
93
 
94
+ MIN_ITEMS_DEPRECATION_MSG = (
95
+ "`min_items` is deprecated and will be removed, use `min_length` instead"
96
+ )
97
+ MAX_ITEMS_DEPRECATION_MSG = (
98
+ "`max_items` is deprecated and will be removed, use `max_length` instead"
99
+ )
100
+
92
101
 
93
102
  def __dataclass_transform__(
94
103
  *,
@@ -253,14 +262,20 @@ def Field(
253
262
  multiple_of: float | None = None,
254
263
  max_digits: int | None = None,
255
264
  decimal_places: int | None = None,
256
- min_items: int | None = None,
257
- max_items: int | None = None,
265
+ min_items: Annotated[
266
+ int | None,
267
+ deprecated(MIN_ITEMS_DEPRECATION_MSG),
268
+ ] = None,
269
+ max_items: Annotated[
270
+ int | None,
271
+ deprecated(MAX_ITEMS_DEPRECATION_MSG),
272
+ ] = None,
258
273
  unique_items: bool | None = None,
259
274
  min_length: int | None = None,
260
275
  max_length: int | None = None,
261
276
  allow_mutation: bool = True,
262
277
  regex: str | None = None,
263
- discriminator: str | None = None,
278
+ discriminator: str | Discriminator | None = None,
264
279
  repr: bool = True,
265
280
  primary_key: bool | UndefinedType = Undefined,
266
281
  foreign_key: Any = Undefined,
@@ -296,14 +311,20 @@ def Field(
296
311
  multiple_of: float | None = None,
297
312
  max_digits: int | None = None,
298
313
  decimal_places: int | None = None,
299
- min_items: int | None = None,
300
- max_items: int | None = None,
314
+ min_items: Annotated[
315
+ int | None,
316
+ deprecated(MIN_ITEMS_DEPRECATION_MSG),
317
+ ] = None,
318
+ max_items: Annotated[
319
+ int | None,
320
+ deprecated(MAX_ITEMS_DEPRECATION_MSG),
321
+ ] = None,
301
322
  unique_items: bool | None = None,
302
323
  min_length: int | None = None,
303
324
  max_length: int | None = None,
304
325
  allow_mutation: bool = True,
305
326
  regex: str | None = None,
306
- discriminator: str | None = None,
327
+ discriminator: str | Discriminator | None = None,
307
328
  repr: bool = True,
308
329
  primary_key: bool | UndefinedType = Undefined,
309
330
  foreign_key: str,
@@ -348,14 +369,20 @@ def Field(
348
369
  multiple_of: float | None = None,
349
370
  max_digits: int | None = None,
350
371
  decimal_places: int | None = None,
351
- min_items: int | None = None,
352
- max_items: int | None = None,
372
+ min_items: Annotated[
373
+ int | None,
374
+ deprecated(MIN_ITEMS_DEPRECATION_MSG),
375
+ ] = None,
376
+ max_items: Annotated[
377
+ int | None,
378
+ deprecated(MAX_ITEMS_DEPRECATION_MSG),
379
+ ] = None,
353
380
  unique_items: bool | None = None,
354
381
  min_length: int | None = None,
355
382
  max_length: int | None = None,
356
383
  allow_mutation: bool = True,
357
384
  regex: str | None = None,
358
- discriminator: str | None = None,
385
+ discriminator: str | Discriminator | None = None,
359
386
  repr: bool = True,
360
387
  sa_column: Column[Any] | UndefinedType = Undefined,
361
388
  schema_extra: dict[str, Any] | None = None,
@@ -381,14 +408,20 @@ def Field(
381
408
  multiple_of: float | None = None,
382
409
  max_digits: int | None = None,
383
410
  decimal_places: int | None = None,
384
- min_items: int | None = None,
385
- max_items: int | None = None,
411
+ min_items: Annotated[
412
+ int | None,
413
+ deprecated(MIN_ITEMS_DEPRECATION_MSG),
414
+ ] = None,
415
+ max_items: Annotated[
416
+ int | None,
417
+ deprecated(MAX_ITEMS_DEPRECATION_MSG),
418
+ ] = None,
386
419
  unique_items: bool | None = None,
387
420
  min_length: int | None = None,
388
421
  max_length: int | None = None,
389
422
  allow_mutation: bool = True,
390
423
  regex: str | None = None,
391
- discriminator: str | None = None,
424
+ discriminator: str | Discriminator | None = None,
392
425
  repr: bool = True,
393
426
  primary_key: bool | UndefinedType = Undefined,
394
427
  foreign_key: Any = Undefined,
@@ -403,6 +436,16 @@ def Field(
403
436
  schema_extra: dict[str, Any] | None = None,
404
437
  ) -> Any:
405
438
  current_schema_extra = schema_extra or {}
439
+
440
+ if min_items is not None:
441
+ warnings.warn(MIN_ITEMS_DEPRECATION_MSG, DeprecationWarning, stacklevel=2)
442
+ if min_length is None:
443
+ min_length = min_items
444
+ if max_items is not None:
445
+ warnings.warn(MAX_ITEMS_DEPRECATION_MSG, DeprecationWarning, stacklevel=2)
446
+ if max_length is None:
447
+ max_length = max_items
448
+
406
449
  # Extract possible alias settings from schema_extra so we can control precedence
407
450
  schema_validation_alias = current_schema_extra.pop("validation_alias", None)
408
451
  schema_serialization_alias = current_schema_extra.pop("serialization_alias", None)
@@ -420,8 +463,6 @@ def Field(
420
463
  "multiple_of": multiple_of,
421
464
  "max_digits": max_digits,
422
465
  "decimal_places": decimal_places,
423
- "min_items": min_items,
424
- "max_items": max_items,
425
466
  "unique_items": unique_items,
426
467
  "min_length": min_length,
427
468
  "max_length": max_length,
@@ -0,0 +1,122 @@
1
+ from decimal import Decimal
2
+ from typing import Annotated, Any, Literal
3
+
4
+ import pytest
5
+ from pydantic import ValidationError
6
+ from sqlmodel import Discriminator, Field, SQLModel, Tag
7
+
8
+
9
+ def test_decimal():
10
+ class Model(SQLModel):
11
+ dec: Decimal = Field(max_digits=4, decimal_places=2)
12
+
13
+ Model(dec=Decimal("3.14"))
14
+ Model(dec=Decimal("69.42"))
15
+
16
+ with pytest.raises(ValidationError):
17
+ Model(dec=Decimal("3.142"))
18
+ with pytest.raises(ValidationError):
19
+ Model(dec=Decimal("0.069"))
20
+ with pytest.raises(ValidationError):
21
+ Model(dec=Decimal("420"))
22
+
23
+
24
+ def test_discriminator():
25
+ # Example adapted from
26
+ # [Pydantic docs](https://pydantic-docs.helpmanual.io/usage/types/#discriminated-unions-aka-tagged-unions):
27
+
28
+ class Cat(SQLModel):
29
+ pet_type: Literal["cat"]
30
+ meows: int
31
+
32
+ class Dog(SQLModel):
33
+ pet_type: Literal["dog"]
34
+ barks: float
35
+
36
+ class Lizard(SQLModel):
37
+ pet_type: Literal["reptile", "lizard"]
38
+ scales: bool
39
+
40
+ class Model(SQLModel):
41
+ pet: Cat | Dog | Lizard = Field(..., discriminator="pet_type")
42
+ n: int
43
+
44
+ Model(pet={"pet_type": "dog", "barks": 3.14}, n=1) # type: ignore[arg-type]
45
+
46
+ with pytest.raises(ValidationError):
47
+ Model(pet={"pet_type": "dog"}, n=1) # type: ignore[arg-type]
48
+
49
+
50
+ def test_discriminator_callable():
51
+ # Example adapted from
52
+ # [Pydantic docs](https://docs.pydantic.dev/latest/concepts/unions/#discriminated-unions-with-callable-discriminator):
53
+
54
+ class Pie(SQLModel):
55
+ pass
56
+
57
+ class ApplePie(Pie):
58
+ fruit: Literal["apple"] = "apple"
59
+
60
+ class PumpkinPie(Pie):
61
+ filling: Literal["pumpkin"] = "pumpkin"
62
+
63
+ def get_discriminator_value(v: Any) -> str:
64
+ if isinstance(v, dict):
65
+ return v.get("fruit", v.get("filling"))
66
+ return getattr(v, "fruit", getattr(v, "filling", None))
67
+
68
+ class ThanksgivingDinner(SQLModel):
69
+ dessert: (
70
+ Annotated[ApplePie, Tag("apple")] | Annotated[PumpkinPie, Tag("pumpkin")]
71
+ ) = Field(
72
+ discriminator=Discriminator(get_discriminator_value),
73
+ )
74
+
75
+ apple_pie = ThanksgivingDinner.model_validate({"dessert": {"fruit": "apple"}})
76
+ assert isinstance(apple_pie.dessert, ApplePie)
77
+
78
+ pumpkin_pie = ThanksgivingDinner.model_validate({"dessert": {"filling": "pumpkin"}})
79
+ assert isinstance(pumpkin_pie.dessert, PumpkinPie)
80
+
81
+
82
+ def test_repr():
83
+ class Model(SQLModel):
84
+ id: int | None = Field(primary_key=True)
85
+ foo: str = Field(repr=False)
86
+
87
+ instance = Model(id=123, foo="bar")
88
+ assert "foo=" not in repr(instance)
89
+
90
+
91
+ def test_min_items():
92
+ with pytest.warns(
93
+ DeprecationWarning,
94
+ match="`min_items` is deprecated and will be removed, use `min_length` instead",
95
+ ):
96
+
97
+ class Model(SQLModel):
98
+ items: list[int] = Field(min_items=2)
99
+
100
+ Model(items=[1, 2])
101
+
102
+ with pytest.raises(ValidationError) as exc_info:
103
+ Model(items=[1])
104
+ assert len(exc_info.value.errors()) == 1
105
+ assert exc_info.value.errors()[0]["type"] == "too_short"
106
+
107
+
108
+ def test_max_items():
109
+ with pytest.warns(
110
+ DeprecationWarning,
111
+ match="`max_items` is deprecated and will be removed, use `max_length` instead",
112
+ ):
113
+
114
+ class Model(SQLModel):
115
+ items: list[int] = Field(max_items=2)
116
+
117
+ Model(items=[1, 2])
118
+
119
+ with pytest.raises(ValidationError) as exc_info:
120
+ Model(items=[1, 2, 3])
121
+ assert len(exc_info.value.errors()) == 1
122
+ assert exc_info.value.errors()[0]["type"] == "too_long"
@@ -1,56 +0,0 @@
1
- from decimal import Decimal
2
- from typing import Literal
3
-
4
- import pytest
5
- from pydantic import ValidationError
6
- from sqlmodel import Field, SQLModel
7
-
8
-
9
- def test_decimal():
10
- class Model(SQLModel):
11
- dec: Decimal = Field(max_digits=4, decimal_places=2)
12
-
13
- Model(dec=Decimal("3.14"))
14
- Model(dec=Decimal("69.42"))
15
-
16
- with pytest.raises(ValidationError):
17
- Model(dec=Decimal("3.142"))
18
- with pytest.raises(ValidationError):
19
- Model(dec=Decimal("0.069"))
20
- with pytest.raises(ValidationError):
21
- Model(dec=Decimal("420"))
22
-
23
-
24
- def test_discriminator():
25
- # Example adapted from
26
- # [Pydantic docs](https://pydantic-docs.helpmanual.io/usage/types/#discriminated-unions-aka-tagged-unions):
27
-
28
- class Cat(SQLModel):
29
- pet_type: Literal["cat"]
30
- meows: int
31
-
32
- class Dog(SQLModel):
33
- pet_type: Literal["dog"]
34
- barks: float
35
-
36
- class Lizard(SQLModel):
37
- pet_type: Literal["reptile", "lizard"]
38
- scales: bool
39
-
40
- class Model(SQLModel):
41
- pet: Cat | Dog | Lizard = Field(..., discriminator="pet_type")
42
- n: int
43
-
44
- Model(pet={"pet_type": "dog", "barks": 3.14}, n=1) # type: ignore[arg-type]
45
-
46
- with pytest.raises(ValidationError):
47
- Model(pet={"pet_type": "dog"}, n=1) # type: ignore[arg-type]
48
-
49
-
50
- def test_repr():
51
- class Model(SQLModel):
52
- id: int | None = Field(primary_key=True)
53
- foo: str = Field(repr=False)
54
-
55
- instance = Model(id=123, foo="bar")
56
- assert "foo=" not in repr(instance)
File without changes
File without changes