sqlmodel 0.0.39__tar.gz → 0.0.41__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 (340) hide show
  1. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/PKG-INFO +5 -4
  2. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/README.md +4 -3
  3. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_005.md +1 -1
  4. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/pyproject.toml +3 -3
  5. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/scripts/docs.py +1 -7
  6. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/__init__.py +1 -1
  7. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/_compat.py +1 -1
  8. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/ext/asyncio/session.py +4 -4
  9. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/main.py +52 -11
  10. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/orm/session.py +8 -8
  11. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_pydantic/test_field.py +34 -0
  12. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/LICENSE +0 -0
  13. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/__init__.py +0 -0
  14. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/advanced/__init__.py +0 -0
  15. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/advanced/decimal/__init__.py +0 -0
  16. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/advanced/decimal/tutorial001_py310.py +0 -0
  17. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/advanced/uuid/__init__.py +0 -0
  18. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/advanced/uuid/tutorial001_py310.py +0 -0
  19. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/advanced/uuid/tutorial002_py310.py +0 -0
  20. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/__init__.py +0 -0
  21. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/automatic_id_none_refresh/__init__.py +0 -0
  22. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/automatic_id_none_refresh/annotations/en/tutorial002.md +0 -0
  23. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/automatic_id_none_refresh/tutorial001_py310.py +0 -0
  24. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/automatic_id_none_refresh/tutorial002_py310.py +0 -0
  25. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/code_structure/__init__.py +0 -0
  26. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/code_structure/tutorial001_py310/__init__.py +0 -0
  27. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/code_structure/tutorial001_py310/app.py +0 -0
  28. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/code_structure/tutorial001_py310/database.py +0 -0
  29. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/code_structure/tutorial001_py310/models.py +0 -0
  30. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/code_structure/tutorial002_py310/__init__.py +0 -0
  31. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/code_structure/tutorial002_py310/app.py +0 -0
  32. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/code_structure/tutorial002_py310/database.py +0 -0
  33. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/code_structure/tutorial002_py310/hero_model.py +0 -0
  34. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/code_structure/tutorial002_py310/team_model.py +0 -0
  35. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/__init__.py +0 -0
  36. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/create_tables/__init__.py +0 -0
  37. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/create_tables/tutorial001_py310.py +0 -0
  38. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/delete/__init__.py +0 -0
  39. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/delete/tutorial001_py310.py +0 -0
  40. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/insert/__init__.py +0 -0
  41. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/insert/tutorial001_py310.py +0 -0
  42. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/select/__init__.py +0 -0
  43. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/select/tutorial001_py310.py +0 -0
  44. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/select/tutorial002_py310.py +0 -0
  45. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/select/tutorial003_py310.py +0 -0
  46. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/select/tutorial004_py310.py +0 -0
  47. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/select/tutorial005_py310.py +0 -0
  48. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/update/__init__.py +0 -0
  49. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/connect/update/tutorial001_py310.py +0 -0
  50. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/create_db_and_table/__init__.py +0 -0
  51. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/create_db_and_table/annotations/en/tutorial003.md +0 -0
  52. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/create_db_and_table/tutorial001_py310.py +0 -0
  53. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/create_db_and_table/tutorial002_py310.py +0 -0
  54. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/create_db_and_table/tutorial003_py310.py +0 -0
  55. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/delete/__init__.py +0 -0
  56. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/delete/annotations/en/tutorial002.md +0 -0
  57. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/delete/tutorial001_py310.py +0 -0
  58. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/delete/tutorial002_py310.py +0 -0
  59. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/__init__.py +0 -0
  60. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/__init__.py +0 -0
  61. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/__init__.py +0 -0
  62. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_001.md +0 -0
  63. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_002.md +0 -0
  64. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_003.md +0 -0
  65. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_004.md +0 -0
  66. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_006.md +0 -0
  67. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/main.py +0 -0
  68. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_extra_coverage.py +0 -0
  69. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main.py +0 -0
  70. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_001.py +0 -0
  71. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_002.py +0 -0
  72. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_003.py +0 -0
  73. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_004.py +0 -0
  74. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_005.py +0 -0
  75. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_006.py +0 -0
  76. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/delete/__init__.py +0 -0
  77. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/delete/tutorial001_py310.py +0 -0
  78. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/limit_and_offset/__init__.py +0 -0
  79. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/limit_and_offset/tutorial001_py310.py +0 -0
  80. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/multiple_models/__init__.py +0 -0
  81. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/multiple_models/tutorial001_py310.py +0 -0
  82. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/multiple_models/tutorial002_py310.py +0 -0
  83. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/read_one/__init__.py +0 -0
  84. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/read_one/tutorial001_py310.py +0 -0
  85. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/relationships/__init__.py +0 -0
  86. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/relationships/tutorial001_py310.py +0 -0
  87. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/response_model/__init__.py +0 -0
  88. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/response_model/tutorial001_py310.py +0 -0
  89. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/session_with_dependency/__init__.py +0 -0
  90. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py310.py +0 -0
  91. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/simple_hero_api/__init__.py +0 -0
  92. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/simple_hero_api/tutorial001_py310.py +0 -0
  93. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/teams/__init__.py +0 -0
  94. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/teams/tutorial001_py310.py +0 -0
  95. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/update/__init__.py +0 -0
  96. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/update/tutorial001_py310.py +0 -0
  97. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/fastapi/update/tutorial002_py310.py +0 -0
  98. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/indexes/__init__.py +0 -0
  99. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/indexes/tutorial001_py310.py +0 -0
  100. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/indexes/tutorial002_py310.py +0 -0
  101. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/insert/__init__.py +0 -0
  102. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/insert/annotations/en/tutorial003.md +0 -0
  103. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/insert/tutorial001_py310.py +0 -0
  104. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/insert/tutorial002_py310.py +0 -0
  105. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/insert/tutorial003_py310.py +0 -0
  106. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/many_to_many/__init__.py +0 -0
  107. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/many_to_many/tutorial001_py310.py +0 -0
  108. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/many_to_many/tutorial002_py310.py +0 -0
  109. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/many_to_many/tutorial003_py310.py +0 -0
  110. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/offset_and_limit/__init__.py +0 -0
  111. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/offset_and_limit/tutorial001_py310.py +0 -0
  112. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/offset_and_limit/tutorial002_py310.py +0 -0
  113. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/offset_and_limit/tutorial003_py310.py +0 -0
  114. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/offset_and_limit/tutorial004_py310.py +0 -0
  115. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/one/__init__.py +0 -0
  116. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/one/tutorial001_py310.py +0 -0
  117. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/one/tutorial002_py310.py +0 -0
  118. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/one/tutorial003_py310.py +0 -0
  119. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/one/tutorial004_py310.py +0 -0
  120. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/one/tutorial005_py310.py +0 -0
  121. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/one/tutorial006_py310.py +0 -0
  122. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/one/tutorial007_py310.py +0 -0
  123. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/one/tutorial008_py310.py +0 -0
  124. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/one/tutorial009_py310.py +0 -0
  125. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/__init__.py +0 -0
  126. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/back_populates/__init__.py +0 -0
  127. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/back_populates/tutorial001_py310.py +0 -0
  128. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/back_populates/tutorial002_py310.py +0 -0
  129. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/back_populates/tutorial003_py310.py +0 -0
  130. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/__init__.py +0 -0
  131. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial001_py310.py +0 -0
  132. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial002_py310.py +0 -0
  133. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial003_py310.py +0 -0
  134. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial004_py310.py +0 -0
  135. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial005_py310.py +0 -0
  136. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/create_and_update_relationships/__init__.py +0 -0
  137. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/create_and_update_relationships/tutorial001_py310.py +0 -0
  138. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/define_relationship_attributes/__init__.py +0 -0
  139. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/define_relationship_attributes/tutorial001_py310.py +0 -0
  140. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/read_relationships/__init__.py +0 -0
  141. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/read_relationships/tutorial001_py310.py +0 -0
  142. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/relationship_attributes/read_relationships/tutorial002_py310.py +0 -0
  143. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/select/__init__.py +0 -0
  144. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/select/annotations/en/tutorial002.md +0 -0
  145. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/select/tutorial001_py310.py +0 -0
  146. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/select/tutorial002_py310.py +0 -0
  147. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/select/tutorial003_py310.py +0 -0
  148. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/select/tutorial004_py310.py +0 -0
  149. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/update/__init__.py +0 -0
  150. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/update/annotations/en/tutorial002.md +0 -0
  151. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/update/annotations/en/tutorial004.md +0 -0
  152. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/update/tutorial001_py310.py +0 -0
  153. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/update/tutorial002_py310.py +0 -0
  154. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/update/tutorial003_py310.py +0 -0
  155. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/update/tutorial004_py310.py +0 -0
  156. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/where/__init__.py +0 -0
  157. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/where/tutorial001_py310.py +0 -0
  158. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/where/tutorial002_py310.py +0 -0
  159. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/where/tutorial003_py310.py +0 -0
  160. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/where/tutorial004_py310.py +0 -0
  161. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/where/tutorial005_py310.py +0 -0
  162. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/where/tutorial006_py310.py +0 -0
  163. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/where/tutorial006b_py310.py +0 -0
  164. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/where/tutorial007_py310.py +0 -0
  165. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/where/tutorial008_py310.py +0 -0
  166. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/where/tutorial009_py310.py +0 -0
  167. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/docs_src/tutorial/where/tutorial011_py310.py +0 -0
  168. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/scripts/add_latest_release_date.py +0 -0
  169. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/scripts/deploy_docs_status.py +0 -0
  170. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/scripts/format.sh +0 -0
  171. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/scripts/generate_select.py +0 -0
  172. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/scripts/lint.sh +0 -0
  173. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/scripts/prepare_release.py +0 -0
  174. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/scripts/test.sh +0 -0
  175. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/.agents/skills/sqlmodel/SKILL.md +0 -0
  176. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/default.py +0 -0
  177. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/ext/__init__.py +0 -0
  178. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/ext/asyncio/__init__.py +0 -0
  179. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/orm/__init__.py +0 -0
  180. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/pool/__init__.py +0 -0
  181. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/py.typed +0 -0
  182. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/sql/__init__.py +0 -0
  183. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/sql/_expression_select_cls.py +0 -0
  184. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/sql/_expression_select_gen.py +0 -0
  185. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/sql/_expression_select_gen.py.jinja2 +0 -0
  186. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/sql/base.py +0 -0
  187. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/sql/expression.py +0 -0
  188. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/sqlmodel/sql/sqltypes.py +0 -0
  189. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/__init__.py +0 -0
  190. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/conftest.py +0 -0
  191. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_advanced/__init__.py +0 -0
  192. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_advanced/test_decimal/__init__.py +0 -0
  193. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_advanced/test_decimal/test_tutorial001.py +0 -0
  194. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_advanced/test_uuid/__init__.py +0 -0
  195. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_advanced/test_uuid/test_tutorial001.py +0 -0
  196. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_advanced/test_uuid/test_tutorial002.py +0 -0
  197. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_aliases.py +0 -0
  198. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_annotated_uuid.py +0 -0
  199. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_default.py +0 -0
  200. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_deprecations.py +0 -0
  201. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_enums.py +0 -0
  202. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_enums_models.py +0 -0
  203. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_field_sa_args_kwargs.py +0 -0
  204. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_field_sa_column.py +0 -0
  205. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_field_sa_relationship.py +0 -0
  206. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_fields_set.py +0 -0
  207. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_future_annotations.py +0 -0
  208. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_instance_no_args.py +0 -0
  209. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_main.py +0 -0
  210. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_missing_type.py +0 -0
  211. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_nullable.py +0 -0
  212. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_ondelete_raises.py +0 -0
  213. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_prepare_release.py +0 -0
  214. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_pydantic/__init__.py +0 -0
  215. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_pydantic/test_model_dump.py +0 -0
  216. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_query.py +0 -0
  217. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_select_gen.py +0 -0
  218. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_select_typing.py +0 -0
  219. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_sqlalchemy_type_errors.py +0 -0
  220. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/__init__.py +0 -0
  221. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_automatic_id_none_refresh/__init__.py +0 -0
  222. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_tutorial002.py +0 -0
  223. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_code_structure/__init__.py +0 -0
  224. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_code_structure/test_tutorial001.py +0 -0
  225. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_code_structure/test_tutorial002.py +0 -0
  226. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/__init__.py +0 -0
  227. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_create_connected_tables/__init__.py +0 -0
  228. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001.py +0 -0
  229. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_delete/__init__.py +0 -0
  230. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_delete/test_tutorial001.py +0 -0
  231. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_insert/__init__.py +0 -0
  232. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_insert/test_tutorial001.py +0 -0
  233. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_select/__init__.py +0 -0
  234. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_select/test_tutorial001_tutorial002.py +0 -0
  235. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_select/test_tutorial003.py +0 -0
  236. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_select/test_tutorial004.py +0 -0
  237. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_select/test_tutorial005.py +0 -0
  238. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_update/__init__.py +0 -0
  239. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_connect/test_update/test_tutorial001.py +0 -0
  240. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_create_db_and_table/__init__.py +0 -0
  241. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_create_db_and_table/test_tutorial001.py +0 -0
  242. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_create_db_and_table/test_tutorial002.py +0 -0
  243. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_create_db_and_table/test_tutorial003.py +0 -0
  244. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_delete/__init__.py +0 -0
  245. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_delete/test_tutorial001_tutorial002.py +0 -0
  246. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/__init__.py +0 -0
  247. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_app_testing/__init__.py +0 -0
  248. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests001.py +0 -0
  249. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests002.py +0 -0
  250. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests003.py +0 -0
  251. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests004.py +0 -0
  252. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests005.py +0 -0
  253. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests006.py +0 -0
  254. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests_main.py +0 -0
  255. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_delete/__init__.py +0 -0
  256. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_delete/test_tutorial001.py +0 -0
  257. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_limit_and_offset/__init__.py +0 -0
  258. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_limit_and_offset/test_tutorial001.py +0 -0
  259. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_multiple_models/__init__.py +0 -0
  260. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial001.py +0 -0
  261. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial002.py +0 -0
  262. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_read_one/__init__.py +0 -0
  263. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_read_one/test_tutorial001.py +0 -0
  264. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_relationships/__init__.py +0 -0
  265. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_relationships/test_tutorial001.py +0 -0
  266. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_response_model/__init__.py +0 -0
  267. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_response_model/test_tutorial001.py +0 -0
  268. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_session_with_dependency/__init__.py +0 -0
  269. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_session_with_dependency/test_tutorial001.py +0 -0
  270. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_simple_hero_api/__init__.py +0 -0
  271. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_simple_hero_api/test_tutorial001.py +0 -0
  272. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_teams/__init__.py +0 -0
  273. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_teams/test_tutorial001.py +0 -0
  274. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_update/__init__.py +0 -0
  275. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_update/test_tutorial001.py +0 -0
  276. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_fastapi/test_update/test_tutorial002.py +0 -0
  277. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_indexes/__init__.py +0 -0
  278. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_indexes/test_tutorial001.py +0 -0
  279. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_indexes/test_tutorial002.py +0 -0
  280. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_insert/__init__.py +0 -0
  281. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_insert/test_tutorial001.py +0 -0
  282. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_insert/test_tutorial002.py +0 -0
  283. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_insert/test_tutorial003.py +0 -0
  284. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_limit_and_offset/__init__.py +0 -0
  285. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_limit_and_offset/test_tutorial001.py +0 -0
  286. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_limit_and_offset/test_tutorial002.py +0 -0
  287. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_limit_and_offset/test_tutorial003.py +0 -0
  288. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_limit_and_offset/test_tutorial004.py +0 -0
  289. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_many_to_many/__init__.py +0 -0
  290. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_many_to_many/test_tutorial001.py +0 -0
  291. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_many_to_many/test_tutorial002.py +0 -0
  292. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_many_to_many/test_tutorial003.py +0 -0
  293. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_one/__init__.py +0 -0
  294. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_one/test_tutorial001.py +0 -0
  295. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_one/test_tutorial002.py +0 -0
  296. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_one/test_tutorial003.py +0 -0
  297. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_one/test_tutorial004.py +0 -0
  298. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_one/test_tutorial005.py +0 -0
  299. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_one/test_tutorial006.py +0 -0
  300. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_one/test_tutorial007.py +0 -0
  301. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_one/test_tutorial008.py +0 -0
  302. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_one/test_tutorial009.py +0 -0
  303. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/__init__.py +0 -0
  304. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_back_populates/__init__.py +0 -0
  305. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial001.py +0 -0
  306. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial002.py +0 -0
  307. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial003.py +0 -0
  308. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships/__init__.py +0 -0
  309. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships/test_tutorial001.py +0 -0
  310. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes/__init__.py +0 -0
  311. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes/test_tutorial001.py +0 -0
  312. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/__init__.py +0 -0
  313. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial001.py +0 -0
  314. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial002.py +0 -0
  315. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial003.py +0 -0
  316. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial004.py +0 -0
  317. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial005.py +0 -0
  318. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/__init__.py +0 -0
  319. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial001.py +0 -0
  320. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial002.py +0 -0
  321. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_select/__init__.py +0 -0
  322. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_select/test_tutorial001_tutorial002.py +0 -0
  323. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_select/test_tutorial003_tutorial004.py +0 -0
  324. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_update/__init__.py +0 -0
  325. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_update/test_tutorial001_tutorial002.py +0 -0
  326. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_update/test_tutorial003_tutorial004.py +0 -0
  327. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_where/__init__.py +0 -0
  328. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_where/test_tutorial001.py +0 -0
  329. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_where/test_tutorial002.py +0 -0
  330. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_where/test_tutorial003.py +0 -0
  331. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_where/test_tutorial004.py +0 -0
  332. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_where/test_tutorial005.py +0 -0
  333. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_where/test_tutorial006.py +0 -0
  334. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_where/test_tutorial006b.py +0 -0
  335. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_where/test_tutorial007.py +0 -0
  336. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_where/test_tutorial008.py +0 -0
  337. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_where/test_tutorial009.py +0 -0
  338. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_tutorial/test_where/test_tutorial011.py +0 -0
  339. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_update.py +0 -0
  340. {sqlmodel-0.0.39 → sqlmodel-0.0.41}/tests/test_validation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmodel
3
- Version: 0.0.39
3
+ Version: 0.0.41
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
@@ -97,18 +97,19 @@ As **SQLModel** is based on **Pydantic** and **SQLAlchemy**, it requires them. T
97
97
 
98
98
  ## Installation
99
99
 
100
- Make sure you create a [virtual environment](https://sqlmodel.tiangolo.com/virtual-environments/), activate it, and then install SQLModel, for example with:
100
+ First, [install `uv`](https://docs.astral.sh/uv/getting-started/installation/), and then add SQLModel to your project:
101
101
 
102
102
  <div class="termy">
103
103
 
104
104
  ```console
105
- $ pip install sqlmodel
105
+ $ uv add sqlmodel
106
106
  ---> 100%
107
- Successfully installed sqlmodel
108
107
  ```
109
108
 
110
109
  </div>
111
110
 
111
+ If you prefer to use `pip`, install `sqlmodel` inside a virtual environment. See the [installation guide](install.md) for the alternative steps.
112
+
112
113
  ## Example
113
114
 
114
115
  For an introduction to databases, SQL, and everything else, see the [SQLModel documentation](https://sqlmodel.tiangolo.com/databases/).
@@ -62,18 +62,19 @@ As **SQLModel** is based on **Pydantic** and **SQLAlchemy**, it requires them. T
62
62
 
63
63
  ## Installation
64
64
 
65
- Make sure you create a [virtual environment](https://sqlmodel.tiangolo.com/virtual-environments/), activate it, and then install SQLModel, for example with:
65
+ First, [install `uv`](https://docs.astral.sh/uv/getting-started/installation/), and then add SQLModel to your project:
66
66
 
67
67
  <div class="termy">
68
68
 
69
69
  ```console
70
- $ pip install sqlmodel
70
+ $ uv add sqlmodel
71
71
  ---> 100%
72
- Successfully installed sqlmodel
73
72
  ```
74
73
 
75
74
  </div>
76
75
 
76
+ If you prefer to use `pip`, install `sqlmodel` inside a virtual environment. See the [installation guide](install.md) for the alternative steps.
77
+
77
78
  ## Example
78
79
 
79
80
  For an introduction to databases, SQL, and everything else, see the [SQLModel documentation](https://sqlmodel.tiangolo.com/databases/).
@@ -38,4 +38,4 @@
38
38
 
39
39
  6. Now in the dependency override function, we just return the same `session` object that came from outside it.
40
40
 
41
- The `session` object comes from the parameter passed to the test function, and we just re-use it and return it here in the dependency override.
41
+ The `session` object comes from the parameter passed to the test function, and we just reuse it and return it here in the dependency override.
@@ -41,7 +41,7 @@ dependencies = [
41
41
  "pydantic>=2.11.0",
42
42
  "typing-extensions>=4.5.0",
43
43
  ]
44
- version = "0.0.39"
44
+ version = "0.0.41"
45
45
 
46
46
  [project.urls]
47
47
  Homepage = "https://github.com/fastapi/sqlmodel"
@@ -67,7 +67,7 @@ docs = [
67
67
  "mkdocstrings[python] >=1.0.3",
68
68
  "pillow >=12.1.1",
69
69
  "pyyaml >=5.3.1",
70
- "typer >=0.24.1",
70
+ "typer >=0.26.1",
71
71
  "zensical>=0.0.42",
72
72
  ]
73
73
  github-actions = [
@@ -87,7 +87,7 @@ tests = [
87
87
  "pytest >=7.0.1",
88
88
  "ruff >=0.15.6",
89
89
  "ty>=0.0.25",
90
- "typer >=0.24.1",
90
+ "typer >=0.26.1",
91
91
  "typing-extensions >=4.15.0",
92
92
  ]
93
93
 
@@ -99,13 +99,7 @@ def verify_readme() -> None:
99
99
  @app.command()
100
100
  def live(dirty: bool = False) -> None:
101
101
  """
102
- Serve with livereload a docs site for a specific language.
103
-
104
- This only shows the actual translated files, not the placeholders created with
105
- build-all.
106
-
107
- Takes an optional LANG argument with the name of the language to serve, by default
108
- en.
102
+ Serve the docs site with livereload, at http://127.0.0.1:8008.
109
103
  """
110
104
  # Enable line numbers during local development to make it easier to highlight
111
105
  args = ["zensical", "serve", "--dev-addr", "127.0.0.1:8008"]
@@ -1,4 +1,4 @@
1
- __version__ = "0.0.39"
1
+ __version__ = "0.0.41"
2
2
 
3
3
  # Re-export from SQLAlchemy
4
4
  from sqlalchemy.engine import create_engine as create_engine
@@ -184,7 +184,7 @@ def get_sa_type_from_type_annotation(annotation: Any) -> Any:
184
184
  bases = get_args(annotation)
185
185
  if len(bases) > 2:
186
186
  raise ValueError("Cannot have a (non-optional) union as a SQLAlchemy field")
187
- # Non optional unions are not allowed
187
+ # Non-optional unions are not allowed
188
188
  if bases[0] is not NoneType and bases[1] is not NoneType:
189
189
  raise ValueError("Cannot have a (non-optional) union as a SQLAlchemy field")
190
190
  # Optional unions are allowed
@@ -105,7 +105,7 @@ class AsyncSession(_AsyncSession):
105
105
  🚨 You probably want to use `session.exec()` instead of `session.execute()`.
106
106
 
107
107
  This is the original SQLAlchemy `session.execute()` method that returns objects
108
- of type `Row`, and that you have to call `scalars()` to get the model objects.
108
+ of type `Row`, on which you have to call `scalars()` to get the model objects.
109
109
 
110
110
  For example:
111
111
 
@@ -114,7 +114,7 @@ class AsyncSession(_AsyncSession):
114
114
  heroes = result.scalars().all()
115
115
  ```
116
116
 
117
- instead you could use `exec()`:
117
+ Instead, you could use `exec()`:
118
118
 
119
119
  ```Python
120
120
  result = await session.exec(select(Hero))
@@ -136,7 +136,7 @@ class AsyncSession(_AsyncSession):
136
136
  🚨 You probably want to use `session.exec()` instead of `session.execute()`.
137
137
 
138
138
  This is the original SQLAlchemy `session.execute()` method that returns objects
139
- of type `Row`, and that you have to call `scalars()` to get the model objects.
139
+ of type `Row`, on which you have to call `scalars()` to get the model objects.
140
140
 
141
141
  For example:
142
142
 
@@ -145,7 +145,7 @@ class AsyncSession(_AsyncSession):
145
145
  heroes = result.scalars().all()
146
146
  ```
147
147
 
148
- instead you could use `exec()`:
148
+ Instead, you could use `exec()`:
149
149
 
150
150
  ```Python
151
151
  result = await session.exec(select(Hero))
@@ -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,
@@ -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,8 +262,14 @@ 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,
@@ -296,8 +311,14 @@ 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,
@@ -348,8 +369,14 @@ 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,
@@ -381,8 +408,14 @@ 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,
@@ -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,
@@ -1006,6 +1047,6 @@ class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry
1006
1047
  else:
1007
1048
  raise ValueError(
1008
1049
  "Can't use sqlmodel_update() with something that "
1009
- f"is not a dict or SQLModel or Pydantic model: {obj}"
1050
+ f"is not a dict, SQLModel, or Pydantic model: {obj}"
1010
1051
  )
1011
1052
  return self
@@ -89,7 +89,7 @@ class Session(_Session):
89
89
  🚨 You probably want to use `session.exec()` instead of `session.execute()`.
90
90
 
91
91
  This is the original SQLAlchemy `session.execute()` method that returns objects
92
- of type `Row`, and that you have to call `scalars()` to get the model objects.
92
+ of type `Row`, on which you have to call `scalars()` to get the model objects.
93
93
 
94
94
  For example:
95
95
 
@@ -97,7 +97,7 @@ class Session(_Session):
97
97
  heroes = session.execute(select(Hero)).scalars().all()
98
98
  ```
99
99
 
100
- instead you could use `exec()`:
100
+ Instead, you could use `exec()`:
101
101
 
102
102
  ```Python
103
103
  heroes = session.exec(select(Hero)).all()
@@ -119,7 +119,7 @@ class Session(_Session):
119
119
  🚨 You probably want to use `session.exec()` instead of `session.execute()`.
120
120
 
121
121
  This is the original SQLAlchemy `session.execute()` method that returns objects
122
- of type `Row`, and that you have to call `scalars()` to get the model objects.
122
+ of type `Row`, on which you have to call `scalars()` to get the model objects.
123
123
 
124
124
  For example:
125
125
 
@@ -127,7 +127,7 @@ class Session(_Session):
127
127
  heroes = session.execute(select(Hero)).scalars().all()
128
128
  ```
129
129
 
130
- instead you could use `exec()`:
130
+ Instead, you could use `exec()`:
131
131
 
132
132
  ```Python
133
133
  heroes = session.exec(select(Hero)).all()
@@ -146,10 +146,10 @@ class Session(_Session):
146
146
  """
147
147
  🚨 You probably want to use `session.exec()` instead of `session.query()`.
148
148
 
149
- `session.exec()` is SQLModel's own short version with increased type
149
+ `session.exec()` is SQLModel's own short version with improved type
150
150
  annotations.
151
151
 
152
- Or otherwise you might want to use `session.execute()` instead of
152
+ Otherwise, you might want to use `session.execute()` instead of
153
153
  `session.query()`.
154
154
  """
155
155
  )
@@ -159,10 +159,10 @@ class Session(_Session):
159
159
  """
160
160
  🚨 You probably want to use `session.exec()` instead of `session.query()`.
161
161
 
162
- `session.exec()` is SQLModel's own short version with increased type
162
+ `session.exec()` is SQLModel's own short version with improved type
163
163
  annotations.
164
164
 
165
- Or otherwise you might want to use `session.execute()` instead of
165
+ Otherwise, you might want to use `session.execute()` instead of
166
166
  `session.query()`.
167
167
  """
168
168
  return super().query(*entities, **kwargs)
@@ -54,3 +54,37 @@ def test_repr():
54
54
 
55
55
  instance = Model(id=123, foo="bar")
56
56
  assert "foo=" not in repr(instance)
57
+
58
+
59
+ def test_min_items():
60
+ with pytest.warns(
61
+ DeprecationWarning,
62
+ match="`min_items` is deprecated and will be removed, use `min_length` instead",
63
+ ):
64
+
65
+ class Model(SQLModel):
66
+ items: list[int] = Field(min_items=2)
67
+
68
+ Model(items=[1, 2])
69
+
70
+ with pytest.raises(ValidationError) as exc_info:
71
+ Model(items=[1])
72
+ assert len(exc_info.value.errors()) == 1
73
+ assert exc_info.value.errors()[0]["type"] == "too_short"
74
+
75
+
76
+ def test_max_items():
77
+ with pytest.warns(
78
+ DeprecationWarning,
79
+ match="`max_items` is deprecated and will be removed, use `max_length` instead",
80
+ ):
81
+
82
+ class Model(SQLModel):
83
+ items: list[int] = Field(max_items=2)
84
+
85
+ Model(items=[1, 2])
86
+
87
+ with pytest.raises(ValidationError) as exc_info:
88
+ Model(items=[1, 2, 3])
89
+ assert len(exc_info.value.errors()) == 1
90
+ assert exc_info.value.errors()[0]["type"] == "too_long"
File without changes