sqlmodel 0.0.20__tar.gz → 0.0.22__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.
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/PKG-INFO +17 -12
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/README.md +12 -9
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/automatic_id_none_refresh/annotations/en/tutorial002.md +15 -6
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/delete/annotations/en/tutorial002.md +6 -3
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/annotations/en/test_main_004.md +5 -2
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_004.md +5 -2
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/annotations/en/test_main_004.md +5 -2
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial001.py +110 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial001_py310.py +106 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial001_py39.py +110 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial002.py +110 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial002_py310.py +108 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial002_py39.py +110 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial003.py +112 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial003_py310.py +110 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial003_py39.py +112 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial004.py +111 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial004_py310.py +109 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial004_py39.py +111 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial005.py +124 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial005_py310.py +122 -0
- sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial005_py39.py +124 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/select/annotations/en/tutorial002.md +6 -3
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/update/annotations/en/tutorial002.md +6 -3
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/update/annotations/en/tutorial004.md +23 -11
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/pyproject.toml +12 -3
- sqlmodel-0.0.22/requirements-docs-insiders.txt +3 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/requirements-docs.txt +6 -6
- sqlmodel-0.0.22/requirements-github-actions.txt +4 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/requirements-tests.txt +2 -2
- sqlmodel-0.0.22/scripts/deploy_docs_status.py +89 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/scripts/docs.py +12 -6
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/scripts/lint.sh +1 -1
- sqlmodel-0.0.22/scripts/mkdocs_hooks.py +38 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/scripts/test.sh +1 -1
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/__init__.py +1 -1
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/_compat.py +15 -9
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/main.py +95 -4
- sqlmodel-0.0.22/tests/test_annotated_uuid.py +26 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_enums.py +15 -34
- sqlmodel-0.0.22/tests/test_enums_models.py +28 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_field_sa_column.py +11 -0
- sqlmodel-0.0.22/tests/test_ondelete_raises.py +37 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial001.py +72 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial001_py310.py +73 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial001_py39.py +73 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial002.py +90 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial002_py310.py +91 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial002_py39.py +91 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial003.py +90 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial003_py310.py +91 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial003_py39.py +91 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial004.py +106 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial004_py310.py +107 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial004_py39.py +107 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial005.py +94 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial005_py310.py +95 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial005_py39.py +95 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_update/__init__.py +0 -0
- sqlmodel-0.0.22/tests/test_tutorial/test_where/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/LICENSE +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/advanced/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/advanced/decimal/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/advanced/decimal/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/advanced/decimal/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/advanced/uuid/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/advanced/uuid/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/advanced/uuid/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/advanced/uuid/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/advanced/uuid/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/automatic_id_none_refresh/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/automatic_id_none_refresh/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/automatic_id_none_refresh/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/automatic_id_none_refresh/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/automatic_id_none_refresh/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial001/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial001/app.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial001/database.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial001/models.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial001_py310/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial001_py310/app.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial001_py310/database.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial001_py310/models.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial001_py39/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial001_py39/app.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial001_py39/database.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial001_py39/models.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002/app.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002/database.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002/hero_model.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002/team_model.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002_py310/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002_py310/app.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002_py310/database.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002_py310/hero_model.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002_py310/team_model.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002_py39/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002_py39/app.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002_py39/database.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002_py39/hero_model.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/code_structure/tutorial002_py39/team_model.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/create_tables/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/create_tables/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/create_tables/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/delete/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/delete/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/delete/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/insert/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/insert/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/insert/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/select/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/select/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/select/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/select/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/select/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/select/tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/select/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/select/tutorial004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/select/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/select/tutorial005.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/select/tutorial005_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/update/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/update/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/connect/update/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/create_db_and_table/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/create_db_and_table/annotations/en/tutorial003.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/create_db_and_table/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/create_db_and_table/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/create_db_and_table/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/create_db_and_table/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/create_db_and_table/tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/create_db_and_table/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/delete/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/delete/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/delete/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/delete/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/delete/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/annotations/en/test_main_001.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/annotations/en/test_main_002.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/annotations/en/test_main_003.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/annotations/en/test_main_005.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/annotations/en/test_main_006.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/main.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/test_extra_coverage.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/test_main.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/test_main_001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/test_main_002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/test_main_003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/test_main_004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/test_main_005.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001/test_main_006.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_001.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_002.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_003.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_005.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_006.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/main.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_extra_coverage.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_005.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_006.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/annotations/en/test_main_001.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/annotations/en/test_main_002.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/annotations/en/test_main_003.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/annotations/en/test_main_005.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/annotations/en/test_main_006.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/main.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_extra_coverage.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main_001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main_002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main_003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main_004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main_005.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main_006.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/delete/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/delete/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/delete/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/delete/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/limit_and_offset/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/limit_and_offset/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/limit_and_offset/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/limit_and_offset/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/multiple_models/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/multiple_models/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/multiple_models/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/multiple_models/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/multiple_models/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/multiple_models/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/multiple_models/tutorial002_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/read_one/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/read_one/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/read_one/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/read_one/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/relationships/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/relationships/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/relationships/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/relationships/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/response_model/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/response_model/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/response_model/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/response_model/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/session_with_dependency/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/session_with_dependency/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/simple_hero_api/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/simple_hero_api/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/simple_hero_api/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/teams/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/teams/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/teams/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/teams/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/update/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/update/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/update/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/update/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/update/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/update/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/fastapi/update/tutorial002_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/indexes/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/indexes/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/indexes/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/indexes/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/indexes/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/insert/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/insert/annotations/en/tutorial003.md +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/insert/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/insert/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/insert/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/insert/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/insert/tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/insert/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/many_to_many/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/many_to_many/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/many_to_many/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/many_to_many/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/many_to_many/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/many_to_many/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/many_to_many/tutorial002_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/many_to_many/tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/many_to_many/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/many_to_many/tutorial003_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/offset_and_limit/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/offset_and_limit/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/offset_and_limit/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/offset_and_limit/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/offset_and_limit/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/offset_and_limit/tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/offset_and_limit/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/offset_and_limit/tutorial004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/offset_and_limit/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial005.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial005_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial006.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial006_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial007.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial007_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial008.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial008_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial009.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/one/tutorial009_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/back_populates/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/back_populates/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/back_populates/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/back_populates/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/back_populates/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/back_populates/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/back_populates/tutorial002_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/back_populates/tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/back_populates/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/back_populates/tutorial003_py39.py +0 -0
- {sqlmodel-0.0.20/docs_src/tutorial/relationship_attributes/create_and_update_relationships → sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/cascade_delete_relationships}/__init__.py +0 -0
- {sqlmodel-0.0.20/docs_src/tutorial/relationship_attributes/define_relationship_attributes → sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/create_and_update_relationships}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/create_and_update_relationships/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/create_and_update_relationships/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/create_and_update_relationships/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20/docs_src/tutorial/relationship_attributes/read_relationships → sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/define_relationship_attributes}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/define_relationship_attributes/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/define_relationship_attributes/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/define_relationship_attributes/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20/docs_src/tutorial/select → sqlmodel-0.0.22/docs_src/tutorial/relationship_attributes/read_relationships}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/read_relationships/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/read_relationships/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/read_relationships/tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/read_relationships/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/read_relationships/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/relationship_attributes/read_relationships/tutorial002_py39.py +0 -0
- {sqlmodel-0.0.20/docs_src/tutorial/update → sqlmodel-0.0.22/docs_src/tutorial/select}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/select/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/select/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/select/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/select/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/select/tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/select/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/select/tutorial004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/select/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.20/docs_src/tutorial/where → sqlmodel-0.0.22/docs_src/tutorial/update}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/update/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/update/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/update/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/update/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/update/tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/update/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/update/tutorial004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/update/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.20/sqlmodel/ext → sqlmodel-0.0.22/docs_src/tutorial/where}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial005.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial005_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial006.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial006_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial007.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial007_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial008.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial008_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial009.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial009_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial010.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial010_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial011.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/docs_src/tutorial/where/tutorial011_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/pdm_build.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/requirements-docs-tests.txt +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/requirements.txt +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/scripts/format.sh +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/scripts/generate_select.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/default.py +0 -0
- {sqlmodel-0.0.20/sqlmodel/ext/asyncio → sqlmodel-0.0.22/sqlmodel/ext}/__init__.py +0 -0
- {sqlmodel-0.0.20/sqlmodel/orm → sqlmodel-0.0.22/sqlmodel/ext/asyncio}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/ext/asyncio/session.py +0 -0
- {sqlmodel-0.0.20/sqlmodel/sql → sqlmodel-0.0.22/sqlmodel/orm}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/orm/session.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/pool/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/py.typed +0 -0
- {sqlmodel-0.0.20/tests → sqlmodel-0.0.22/sqlmodel/sql}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/sql/_expression_select_cls.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/sql/_expression_select_gen.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/sql/_expression_select_gen.py.jinja2 +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/sql/base.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/sql/expression.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/sqlmodel/sql/sqltypes.py +0 -0
- {sqlmodel-0.0.20/tests/test_advanced → sqlmodel-0.0.22/tests}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/conftest.py +0 -0
- {sqlmodel-0.0.20/tests/test_advanced/test_decimal → sqlmodel-0.0.22/tests/test_advanced}/__init__.py +0 -0
- {sqlmodel-0.0.20/tests/test_advanced/test_uuid → sqlmodel-0.0.22/tests/test_advanced/test_decimal}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_advanced/test_decimal/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_advanced/test_decimal/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20/tests/test_pydantic → sqlmodel-0.0.22/tests/test_advanced/test_uuid}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_advanced/test_uuid/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_advanced/test_uuid/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_advanced/test_uuid/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_advanced/test_uuid/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_default.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_deprecations.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_field_sa_args_kwargs.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_field_sa_relationship.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_fields_set.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_instance_no_args.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_main.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_missing_type.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_nullable.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial → sqlmodel-0.0.22/tests/test_pydantic}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_pydantic/test_field.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_query.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_select_gen.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_sqlalchemy_type_errors.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_automatic_id_none_refresh → sqlmodel-0.0.22/tests/test_tutorial}/__init__.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_code_structure → sqlmodel-0.0.22/tests/test_tutorial/test_automatic_id_none_refresh}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_py310_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_tutorial002.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_connect → sqlmodel-0.0.22/tests/test_tutorial/test_code_structure}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_code_structure/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_code_structure/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_code_structure/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_code_structure/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_code_structure/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_code_structure/test_tutorial002_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_connect/test_create_connected_tables → sqlmodel-0.0.22/tests/test_tutorial/test_connect}/__init__.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_connect/test_delete → sqlmodel-0.0.22/tests/test_tutorial/test_connect/test_create_connected_tables}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_connect/test_insert → sqlmodel-0.0.22/tests/test_tutorial/test_connect/test_delete}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_delete/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_delete/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_connect/test_select → sqlmodel-0.0.22/tests/test_tutorial/test_connect/test_insert}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_insert/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_insert/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_connect/test_update → sqlmodel-0.0.22/tests/test_tutorial/test_connect/test_select}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_select/test_tutorial001_py310_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_select/test_tutorial001_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_select/test_tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_select/test_tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_select/test_tutorial004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_select/test_tutorial004_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_select/test_tutorial005.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_select/test_tutorial005_py310.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_create_db_and_table → sqlmodel-0.0.22/tests/test_tutorial/test_connect/test_update}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_update/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_connect/test_update/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_delete → sqlmodel-0.0.22/tests/test_tutorial/test_create_db_and_table}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_create_db_and_table/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_create_db_and_table/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_create_db_and_table/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_create_db_and_table/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_create_db_and_table/test_tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_create_db_and_table/test_tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_fastapi → sqlmodel-0.0.22/tests/test_tutorial/test_delete}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_delete/test_tutorial001_py310_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_delete/test_tutorial001_tutorial002.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_fastapi/test_app_testing → sqlmodel-0.0.22/tests/test_tutorial/test_fastapi}/__init__.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_fastapi/test_delete → sqlmodel-0.0.22/tests/test_tutorial/test_fastapi/test_app_testing}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_py310_tests_main.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_py39_tests_main.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests005.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests006.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests_main.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_fastapi/test_limit_and_offset → sqlmodel-0.0.22/tests/test_tutorial/test_fastapi/test_delete}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_delete/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_delete/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_delete/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_fastapi/test_multiple_models → sqlmodel-0.0.22/tests/test_tutorial/test_fastapi/test_limit_and_offset}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_limit_and_offset/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_limit_and_offset/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_limit_and_offset/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_fastapi/test_read_one → sqlmodel-0.0.22/tests/test_tutorial/test_fastapi/test_multiple_models}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial002_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_fastapi/test_relationships → sqlmodel-0.0.22/tests/test_tutorial/test_fastapi/test_read_one}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_read_one/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_read_one/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_read_one/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_fastapi/test_response_model → sqlmodel-0.0.22/tests/test_tutorial/test_fastapi/test_relationships}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_relationships/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_relationships/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_relationships/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_fastapi/test_session_with_dependency → sqlmodel-0.0.22/tests/test_tutorial/test_fastapi/test_response_model}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_response_model/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_response_model/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_response_model/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_fastapi/test_simple_hero_api → sqlmodel-0.0.22/tests/test_tutorial/test_fastapi/test_session_with_dependency}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_session_with_dependency/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_session_with_dependency/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_session_with_dependency/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_fastapi/test_teams → sqlmodel-0.0.22/tests/test_tutorial/test_fastapi/test_simple_hero_api}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_simple_hero_api/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_simple_hero_api/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_fastapi/test_update → sqlmodel-0.0.22/tests/test_tutorial/test_fastapi/test_teams}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_teams/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_teams/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_teams/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_indexes → sqlmodel-0.0.22/tests/test_tutorial/test_fastapi/test_update}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_update/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_update/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_update/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_update/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_update/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_fastapi/test_update/test_tutorial002_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_insert → sqlmodel-0.0.22/tests/test_tutorial/test_indexes}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_indexes/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_indexes/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_indexes/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_indexes/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_limit_and_offset → sqlmodel-0.0.22/tests/test_tutorial/test_insert}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_insert/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_insert/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_insert/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_insert/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_insert/test_tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_insert/test_tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_many_to_many → sqlmodel-0.0.22/tests/test_tutorial/test_limit_and_offset}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_limit_and_offset/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_limit_and_offset/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_limit_and_offset/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_limit_and_offset/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_limit_and_offset/test_tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_limit_and_offset/test_tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_limit_and_offset/test_tutorial004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_limit_and_offset/test_tutorial004_py310.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_one → sqlmodel-0.0.22/tests/test_tutorial/test_many_to_many}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_many_to_many/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_many_to_many/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_many_to_many/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_many_to_many/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_many_to_many/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_many_to_many/test_tutorial002_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_many_to_many/test_tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_many_to_many/test_tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_many_to_many/test_tutorial003_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_relationship_attributes → sqlmodel-0.0.22/tests/test_tutorial/test_one}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial004_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial005.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial005_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial006.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial006_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial007.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial007_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial008.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial008_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial009.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_one/test_tutorial009_py310.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_relationship_attributes/test_back_populates → sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes}/__init__.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships → sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_back_populates}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial002_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial003_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes → sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_relationship_attributes/test_read_relationships → sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_select → sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship}/__init__.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_update → sqlmodel-0.0.22/tests/test_tutorial/test_relationship_attributes/test_read_relationships}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial001_py39.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial002_py39.py +0 -0
- {sqlmodel-0.0.20/tests/test_tutorial/test_where → sqlmodel-0.0.22/tests/test_tutorial/test_select}/__init__.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_select/test_tutorial001_py310_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_select/test_tutorial001_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_select/test_tutorial003_py310_tutorial004_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_select/test_tutorial003_tutorial004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_update/test_tutorial001_py310_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_update/test_tutorial001_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_update/test_tutorial003_py310_tutorial004_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_update/test_tutorial003_tutorial004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial001.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial001_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial002.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial002_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial003.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial003_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial004.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial004_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial005.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial005_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial006.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial006_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial007.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial007_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial008.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial008_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial009.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial009_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial010.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial010_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial011.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_tutorial/test_where/test_tutorial011_py310.py +0 -0
- {sqlmodel-0.0.20 → sqlmodel-0.0.22}/tests/test_validation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sqlmodel
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.22
|
|
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
|
Classifier: Development Status :: 4 - Beta
|
|
@@ -22,29 +22,32 @@ Classifier: Topic :: Internet
|
|
|
22
22
|
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
|
23
23
|
Classifier: Topic :: Internet :: WWW/HTTP
|
|
24
24
|
Classifier: Typing :: Typed
|
|
25
|
-
Project-URL: Homepage, https://github.com/
|
|
25
|
+
Project-URL: Homepage, https://github.com/fastapi/sqlmodel
|
|
26
26
|
Project-URL: Documentation, https://sqlmodel.tiangolo.com
|
|
27
|
-
Project-URL: Repository, https://github.com/
|
|
27
|
+
Project-URL: Repository, https://github.com/fastapi/sqlmodel
|
|
28
|
+
Project-URL: Issues, https://github.com/fastapi/sqlmodel/issues
|
|
29
|
+
Project-URL: Changelog, https://sqlmodel.tiangolo.com/release-notes/
|
|
28
30
|
Requires-Python: >=3.7
|
|
29
31
|
Requires-Dist: SQLAlchemy<2.1.0,>=2.0.14
|
|
30
32
|
Requires-Dist: pydantic<3.0.0,>=1.10.13
|
|
31
33
|
Description-Content-Type: text/markdown
|
|
32
34
|
|
|
33
35
|
<p align="center">
|
|
34
|
-
<a href="https://sqlmodel.tiangolo.com"><img src="https://sqlmodel.tiangolo.com/img/logo-margin/logo-margin-vector.svg" alt="SQLModel"></a>
|
|
36
|
+
<a href="https://sqlmodel.tiangolo.com"><img src="https://sqlmodel.tiangolo.com/img/logo-margin/logo-margin-vector.svg#only-light" alt="SQLModel"></a>
|
|
37
|
+
|
|
35
38
|
</p>
|
|
36
39
|
<p align="center">
|
|
37
40
|
<em>SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.</em>
|
|
38
41
|
</p>
|
|
39
42
|
<p align="center">
|
|
40
|
-
<a href="https://github.com/
|
|
41
|
-
<img src="https://github.com/
|
|
43
|
+
<a href="https://github.com/fastapi/sqlmodel/actions?query=workflow%3ATest" target="_blank">
|
|
44
|
+
<img src="https://github.com/fastapi/sqlmodel/workflows/Test/badge.svg" alt="Test">
|
|
42
45
|
</a>
|
|
43
|
-
<a href="https://github.com/
|
|
44
|
-
<img src="https://github.com/
|
|
46
|
+
<a href="https://github.com/fastapi/sqlmodel/actions?query=workflow%3APublish" target="_blank">
|
|
47
|
+
<img src="https://github.com/fastapi/sqlmodel/workflows/Publish/badge.svg" alt="Publish">
|
|
45
48
|
</a>
|
|
46
|
-
<a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/
|
|
47
|
-
<img src="https://coverage-badge.samuelcolvin.workers.dev/
|
|
49
|
+
<a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/sqlmodel" target="_blank">
|
|
50
|
+
<img src="https://coverage-badge.samuelcolvin.workers.dev/fastapi/sqlmodel.svg" alt="Coverage">
|
|
48
51
|
<a href="https://pypi.org/project/sqlmodel" target="_blank">
|
|
49
52
|
<img src="https://img.shields.io/pypi/v/sqlmodel?color=%2334D058&label=pypi%20package" alt="Package version">
|
|
50
53
|
</a>
|
|
@@ -54,7 +57,7 @@ Description-Content-Type: text/markdown
|
|
|
54
57
|
|
|
55
58
|
**Documentation**: <a href="https://sqlmodel.tiangolo.com" target="_blank">https://sqlmodel.tiangolo.com</a>
|
|
56
59
|
|
|
57
|
-
**Source Code**: <a href="https://github.com/
|
|
60
|
+
**Source Code**: <a href="https://github.com/fastapi/sqlmodel" target="_blank">https://github.com/fastapi/sqlmodel</a>
|
|
58
61
|
|
|
59
62
|
---
|
|
60
63
|
|
|
@@ -96,6 +99,8 @@ As **SQLModel** is based on **Pydantic** and **SQLAlchemy**, it requires them. T
|
|
|
96
99
|
|
|
97
100
|
## Installation
|
|
98
101
|
|
|
102
|
+
Make sure you create a <a href="https://sqlmodel.tiangolo.com/virtual-environments/" class="external-link" target="_blank">virtual environment</a>, activate it, and then install SQLModel, for example with:
|
|
103
|
+
|
|
99
104
|
<div class="termy">
|
|
100
105
|
|
|
101
106
|
```console
|
|
@@ -251,4 +256,4 @@ And at the same time, ✨ it is also a **Pydantic** model ✨. You can use inher
|
|
|
251
256
|
|
|
252
257
|
## License
|
|
253
258
|
|
|
254
|
-
This project is licensed under the terms of the [MIT license](https://github.com/
|
|
259
|
+
This project is licensed under the terms of the [MIT license](https://github.com/fastapi/sqlmodel/blob/main/LICENSE).
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://sqlmodel.tiangolo.com"><img src="https://sqlmodel.tiangolo.com/img/logo-margin/logo-margin-vector.svg" alt="SQLModel"></a>
|
|
2
|
+
<a href="https://sqlmodel.tiangolo.com"><img src="https://sqlmodel.tiangolo.com/img/logo-margin/logo-margin-vector.svg#only-light" alt="SQLModel"></a>
|
|
3
|
+
|
|
3
4
|
</p>
|
|
4
5
|
<p align="center">
|
|
5
6
|
<em>SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.</em>
|
|
6
7
|
</p>
|
|
7
8
|
<p align="center">
|
|
8
|
-
<a href="https://github.com/
|
|
9
|
-
<img src="https://github.com/
|
|
9
|
+
<a href="https://github.com/fastapi/sqlmodel/actions?query=workflow%3ATest" target="_blank">
|
|
10
|
+
<img src="https://github.com/fastapi/sqlmodel/workflows/Test/badge.svg" alt="Test">
|
|
10
11
|
</a>
|
|
11
|
-
<a href="https://github.com/
|
|
12
|
-
<img src="https://github.com/
|
|
12
|
+
<a href="https://github.com/fastapi/sqlmodel/actions?query=workflow%3APublish" target="_blank">
|
|
13
|
+
<img src="https://github.com/fastapi/sqlmodel/workflows/Publish/badge.svg" alt="Publish">
|
|
13
14
|
</a>
|
|
14
|
-
<a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/
|
|
15
|
-
<img src="https://coverage-badge.samuelcolvin.workers.dev/
|
|
15
|
+
<a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/sqlmodel" target="_blank">
|
|
16
|
+
<img src="https://coverage-badge.samuelcolvin.workers.dev/fastapi/sqlmodel.svg" alt="Coverage">
|
|
16
17
|
<a href="https://pypi.org/project/sqlmodel" target="_blank">
|
|
17
18
|
<img src="https://img.shields.io/pypi/v/sqlmodel?color=%2334D058&label=pypi%20package" alt="Package version">
|
|
18
19
|
</a>
|
|
@@ -22,7 +23,7 @@
|
|
|
22
23
|
|
|
23
24
|
**Documentation**: <a href="https://sqlmodel.tiangolo.com" target="_blank">https://sqlmodel.tiangolo.com</a>
|
|
24
25
|
|
|
25
|
-
**Source Code**: <a href="https://github.com/
|
|
26
|
+
**Source Code**: <a href="https://github.com/fastapi/sqlmodel" target="_blank">https://github.com/fastapi/sqlmodel</a>
|
|
26
27
|
|
|
27
28
|
---
|
|
28
29
|
|
|
@@ -64,6 +65,8 @@ As **SQLModel** is based on **Pydantic** and **SQLAlchemy**, it requires them. T
|
|
|
64
65
|
|
|
65
66
|
## Installation
|
|
66
67
|
|
|
68
|
+
Make sure you create a <a href="https://sqlmodel.tiangolo.com/virtual-environments/" class="external-link" target="_blank">virtual environment</a>, activate it, and then install SQLModel, for example with:
|
|
69
|
+
|
|
67
70
|
<div class="termy">
|
|
68
71
|
|
|
69
72
|
```console
|
|
@@ -219,4 +222,4 @@ And at the same time, ✨ it is also a **Pydantic** model ✨. You can use inher
|
|
|
219
222
|
|
|
220
223
|
## License
|
|
221
224
|
|
|
222
|
-
This project is licensed under the terms of the [MIT license](https://github.com/
|
|
225
|
+
This project is licensed under the terms of the [MIT license](https://github.com/fastapi/sqlmodel/blob/main/LICENSE).
|
|
@@ -307,8 +307,11 @@
|
|
|
307
307
|
|
|
308
308
|
33. Print the `hero_1`.
|
|
309
309
|
|
|
310
|
-
|
|
311
|
-
|
|
310
|
+
/// info
|
|
311
|
+
|
|
312
|
+
Even if the `hero_1` wasn't fresh, this would **not** trigger a `refresh` making the **session** use the **engine** to fetch data from the database because it is not accessing an attribute.
|
|
313
|
+
|
|
314
|
+
///
|
|
312
315
|
|
|
313
316
|
Because the `hero_1` is fresh it has all it's data available.
|
|
314
317
|
|
|
@@ -320,8 +323,11 @@
|
|
|
320
323
|
|
|
321
324
|
34. Print the `hero_2`.
|
|
322
325
|
|
|
323
|
-
|
|
324
|
-
|
|
326
|
+
/// info
|
|
327
|
+
|
|
328
|
+
Even if the `hero_2` wasn't fresh, this would **not** trigger a `refresh` making the **session** use the **engine** to fetch data from the database because it is not accessing an attribute.
|
|
329
|
+
|
|
330
|
+
///
|
|
325
331
|
|
|
326
332
|
Because the `hero_2` is fresh it has all it's data available.
|
|
327
333
|
|
|
@@ -333,8 +339,11 @@
|
|
|
333
339
|
|
|
334
340
|
35. Print the `hero_3`.
|
|
335
341
|
|
|
336
|
-
|
|
337
|
-
|
|
342
|
+
/// info
|
|
343
|
+
|
|
344
|
+
Even if the `hero_3` wasn't fresh, this would **not** trigger a `refresh` making the **session** use the **engine** to fetch data from the database because it is not accessing an attribute.
|
|
345
|
+
|
|
346
|
+
///
|
|
338
347
|
|
|
339
348
|
Because the `hero_3` is fresh it has all it's data available.
|
|
340
349
|
|
|
@@ -14,10 +14,13 @@
|
|
|
14
14
|
|
|
15
15
|
3. Get one hero object, expecting exactly one.
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
This ensures there's no more than one, and that there's exactly one, not `None`.
|
|
17
|
+
/// tip
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
This ensures there's no more than one, and that there's exactly one, not `None`.
|
|
20
|
+
|
|
21
|
+
This would never return `None`, instead it would raise an exception.
|
|
22
|
+
|
|
23
|
+
///
|
|
21
24
|
|
|
22
25
|
4. Print the hero object.
|
|
23
26
|
|
|
@@ -22,5 +22,8 @@
|
|
|
22
22
|
|
|
23
23
|
We tell it that with the `poolclass=StaticPool` parameter.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
/// info
|
|
26
|
+
|
|
27
|
+
You can read more details in the <a href="https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#using-a-memory-database-in-multiple-threads" class="external-link" target="_blank">SQLAlchemy documentation about Using a Memory Database in Multiple Threads</a>
|
|
28
|
+
|
|
29
|
+
///
|
|
@@ -22,5 +22,8 @@
|
|
|
22
22
|
|
|
23
23
|
We tell it that with the `poolclass=StaticPool` parameter.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
/// info
|
|
26
|
+
|
|
27
|
+
You can read more details in the <a href="https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#using-a-memory-database-in-multiple-threads" class="external-link" target="_blank">SQLAlchemy documentation about Using a Memory Database in Multiple Threads</a>
|
|
28
|
+
|
|
29
|
+
///
|
|
@@ -22,5 +22,8 @@
|
|
|
22
22
|
|
|
23
23
|
We tell it that with the `poolclass=StaticPool` parameter.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
/// info
|
|
26
|
+
|
|
27
|
+
You can read more details in the <a href="https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#using-a-memory-database-in-multiple-threads" class="external-link" target="_blank">SQLAlchemy documentation about Using a Memory Database in Multiple Threads</a>
|
|
28
|
+
|
|
29
|
+
///
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
|
|
3
|
+
from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Team(SQLModel, table=True):
|
|
7
|
+
id: Optional[int] = Field(default=None, primary_key=True)
|
|
8
|
+
name: str = Field(index=True)
|
|
9
|
+
headquarters: str
|
|
10
|
+
|
|
11
|
+
heroes: List["Hero"] = Relationship(back_populates="team", cascade_delete=True)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Hero(SQLModel, table=True):
|
|
15
|
+
id: Optional[int] = Field(default=None, primary_key=True)
|
|
16
|
+
name: str = Field(index=True)
|
|
17
|
+
secret_name: str
|
|
18
|
+
age: Optional[int] = Field(default=None, index=True)
|
|
19
|
+
|
|
20
|
+
team_id: Optional[int] = Field(
|
|
21
|
+
default=None, foreign_key="team.id", ondelete="CASCADE"
|
|
22
|
+
)
|
|
23
|
+
team: Optional[Team] = Relationship(back_populates="heroes")
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
sqlite_file_name = "database.db"
|
|
27
|
+
sqlite_url = f"sqlite:///{sqlite_file_name}"
|
|
28
|
+
|
|
29
|
+
engine = create_engine(sqlite_url, echo=True)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def create_db_and_tables():
|
|
33
|
+
SQLModel.metadata.create_all(engine)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def create_heroes():
|
|
37
|
+
with Session(engine) as session:
|
|
38
|
+
team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
|
|
39
|
+
team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
|
|
40
|
+
|
|
41
|
+
hero_deadpond = Hero(
|
|
42
|
+
name="Deadpond", secret_name="Dive Wilson", team=team_z_force
|
|
43
|
+
)
|
|
44
|
+
hero_rusty_man = Hero(
|
|
45
|
+
name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
|
|
46
|
+
)
|
|
47
|
+
hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
|
|
48
|
+
session.add(hero_deadpond)
|
|
49
|
+
session.add(hero_rusty_man)
|
|
50
|
+
session.add(hero_spider_boy)
|
|
51
|
+
session.commit()
|
|
52
|
+
|
|
53
|
+
session.refresh(hero_deadpond)
|
|
54
|
+
session.refresh(hero_rusty_man)
|
|
55
|
+
session.refresh(hero_spider_boy)
|
|
56
|
+
|
|
57
|
+
print("Created hero:", hero_deadpond)
|
|
58
|
+
print("Created hero:", hero_rusty_man)
|
|
59
|
+
print("Created hero:", hero_spider_boy)
|
|
60
|
+
|
|
61
|
+
hero_spider_boy.team = team_preventers
|
|
62
|
+
session.add(hero_spider_boy)
|
|
63
|
+
session.commit()
|
|
64
|
+
session.refresh(hero_spider_boy)
|
|
65
|
+
print("Updated hero:", hero_spider_boy)
|
|
66
|
+
|
|
67
|
+
hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
|
|
68
|
+
hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
|
|
69
|
+
team_wakaland = Team(
|
|
70
|
+
name="Wakaland",
|
|
71
|
+
headquarters="Wakaland Capital City",
|
|
72
|
+
heroes=[hero_black_lion, hero_sure_e],
|
|
73
|
+
)
|
|
74
|
+
session.add(team_wakaland)
|
|
75
|
+
session.commit()
|
|
76
|
+
session.refresh(team_wakaland)
|
|
77
|
+
print("Team Wakaland:", team_wakaland)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def delete_team():
|
|
81
|
+
with Session(engine) as session:
|
|
82
|
+
statement = select(Team).where(Team.name == "Wakaland")
|
|
83
|
+
team = session.exec(statement).one()
|
|
84
|
+
session.delete(team)
|
|
85
|
+
session.commit()
|
|
86
|
+
print("Deleted team:", team)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def select_deleted_heroes():
|
|
90
|
+
with Session(engine) as session:
|
|
91
|
+
statement = select(Hero).where(Hero.name == "Black Lion")
|
|
92
|
+
result = session.exec(statement)
|
|
93
|
+
hero = result.first()
|
|
94
|
+
print("Black Lion not found:", hero)
|
|
95
|
+
|
|
96
|
+
statement = select(Hero).where(Hero.name == "Princess Sure-E")
|
|
97
|
+
result = session.exec(statement)
|
|
98
|
+
hero = result.first()
|
|
99
|
+
print("Princess Sure-E not found:", hero)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def main():
|
|
103
|
+
create_db_and_tables()
|
|
104
|
+
create_heroes()
|
|
105
|
+
delete_team()
|
|
106
|
+
select_deleted_heroes()
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
if __name__ == "__main__":
|
|
110
|
+
main()
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Team(SQLModel, table=True):
|
|
5
|
+
id: int | None = Field(default=None, primary_key=True)
|
|
6
|
+
name: str = Field(index=True)
|
|
7
|
+
headquarters: str
|
|
8
|
+
|
|
9
|
+
heroes: list["Hero"] = Relationship(back_populates="team", cascade_delete=True)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Hero(SQLModel, table=True):
|
|
13
|
+
id: int | None = Field(default=None, primary_key=True)
|
|
14
|
+
name: str = Field(index=True)
|
|
15
|
+
secret_name: str
|
|
16
|
+
age: int | None = Field(default=None, index=True)
|
|
17
|
+
|
|
18
|
+
team_id: int | None = Field(default=None, foreign_key="team.id", ondelete="CASCADE")
|
|
19
|
+
team: Team | None = Relationship(back_populates="heroes")
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
sqlite_file_name = "database.db"
|
|
23
|
+
sqlite_url = f"sqlite:///{sqlite_file_name}"
|
|
24
|
+
|
|
25
|
+
engine = create_engine(sqlite_url, echo=True)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def create_db_and_tables():
|
|
29
|
+
SQLModel.metadata.create_all(engine)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def create_heroes():
|
|
33
|
+
with Session(engine) as session:
|
|
34
|
+
team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
|
|
35
|
+
team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
|
|
36
|
+
|
|
37
|
+
hero_deadpond = Hero(
|
|
38
|
+
name="Deadpond", secret_name="Dive Wilson", team=team_z_force
|
|
39
|
+
)
|
|
40
|
+
hero_rusty_man = Hero(
|
|
41
|
+
name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
|
|
42
|
+
)
|
|
43
|
+
hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
|
|
44
|
+
session.add(hero_deadpond)
|
|
45
|
+
session.add(hero_rusty_man)
|
|
46
|
+
session.add(hero_spider_boy)
|
|
47
|
+
session.commit()
|
|
48
|
+
|
|
49
|
+
session.refresh(hero_deadpond)
|
|
50
|
+
session.refresh(hero_rusty_man)
|
|
51
|
+
session.refresh(hero_spider_boy)
|
|
52
|
+
|
|
53
|
+
print("Created hero:", hero_deadpond)
|
|
54
|
+
print("Created hero:", hero_rusty_man)
|
|
55
|
+
print("Created hero:", hero_spider_boy)
|
|
56
|
+
|
|
57
|
+
hero_spider_boy.team = team_preventers
|
|
58
|
+
session.add(hero_spider_boy)
|
|
59
|
+
session.commit()
|
|
60
|
+
session.refresh(hero_spider_boy)
|
|
61
|
+
print("Updated hero:", hero_spider_boy)
|
|
62
|
+
|
|
63
|
+
hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
|
|
64
|
+
hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
|
|
65
|
+
team_wakaland = Team(
|
|
66
|
+
name="Wakaland",
|
|
67
|
+
headquarters="Wakaland Capital City",
|
|
68
|
+
heroes=[hero_black_lion, hero_sure_e],
|
|
69
|
+
)
|
|
70
|
+
session.add(team_wakaland)
|
|
71
|
+
session.commit()
|
|
72
|
+
session.refresh(team_wakaland)
|
|
73
|
+
print("Team Wakaland:", team_wakaland)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def delete_team():
|
|
77
|
+
with Session(engine) as session:
|
|
78
|
+
statement = select(Team).where(Team.name == "Wakaland")
|
|
79
|
+
team = session.exec(statement).one()
|
|
80
|
+
session.delete(team)
|
|
81
|
+
session.commit()
|
|
82
|
+
print("Deleted team:", team)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def select_deleted_heroes():
|
|
86
|
+
with Session(engine) as session:
|
|
87
|
+
statement = select(Hero).where(Hero.name == "Black Lion")
|
|
88
|
+
result = session.exec(statement)
|
|
89
|
+
hero = result.first()
|
|
90
|
+
print("Black Lion not found:", hero)
|
|
91
|
+
|
|
92
|
+
statement = select(Hero).where(Hero.name == "Princess Sure-E")
|
|
93
|
+
result = session.exec(statement)
|
|
94
|
+
hero = result.first()
|
|
95
|
+
print("Princess Sure-E not found:", hero)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def main():
|
|
99
|
+
create_db_and_tables()
|
|
100
|
+
create_heroes()
|
|
101
|
+
delete_team()
|
|
102
|
+
select_deleted_heroes()
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
if __name__ == "__main__":
|
|
106
|
+
main()
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Team(SQLModel, table=True):
|
|
7
|
+
id: Optional[int] = Field(default=None, primary_key=True)
|
|
8
|
+
name: str = Field(index=True)
|
|
9
|
+
headquarters: str
|
|
10
|
+
|
|
11
|
+
heroes: list["Hero"] = Relationship(back_populates="team", cascade_delete=True)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Hero(SQLModel, table=True):
|
|
15
|
+
id: Optional[int] = Field(default=None, primary_key=True)
|
|
16
|
+
name: str = Field(index=True)
|
|
17
|
+
secret_name: str
|
|
18
|
+
age: Optional[int] = Field(default=None, index=True)
|
|
19
|
+
|
|
20
|
+
team_id: Optional[int] = Field(
|
|
21
|
+
default=None, foreign_key="team.id", ondelete="CASCADE"
|
|
22
|
+
)
|
|
23
|
+
team: Optional[Team] = Relationship(back_populates="heroes")
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
sqlite_file_name = "database.db"
|
|
27
|
+
sqlite_url = f"sqlite:///{sqlite_file_name}"
|
|
28
|
+
|
|
29
|
+
engine = create_engine(sqlite_url, echo=True)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def create_db_and_tables():
|
|
33
|
+
SQLModel.metadata.create_all(engine)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def create_heroes():
|
|
37
|
+
with Session(engine) as session:
|
|
38
|
+
team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
|
|
39
|
+
team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
|
|
40
|
+
|
|
41
|
+
hero_deadpond = Hero(
|
|
42
|
+
name="Deadpond", secret_name="Dive Wilson", team=team_z_force
|
|
43
|
+
)
|
|
44
|
+
hero_rusty_man = Hero(
|
|
45
|
+
name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
|
|
46
|
+
)
|
|
47
|
+
hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
|
|
48
|
+
session.add(hero_deadpond)
|
|
49
|
+
session.add(hero_rusty_man)
|
|
50
|
+
session.add(hero_spider_boy)
|
|
51
|
+
session.commit()
|
|
52
|
+
|
|
53
|
+
session.refresh(hero_deadpond)
|
|
54
|
+
session.refresh(hero_rusty_man)
|
|
55
|
+
session.refresh(hero_spider_boy)
|
|
56
|
+
|
|
57
|
+
print("Created hero:", hero_deadpond)
|
|
58
|
+
print("Created hero:", hero_rusty_man)
|
|
59
|
+
print("Created hero:", hero_spider_boy)
|
|
60
|
+
|
|
61
|
+
hero_spider_boy.team = team_preventers
|
|
62
|
+
session.add(hero_spider_boy)
|
|
63
|
+
session.commit()
|
|
64
|
+
session.refresh(hero_spider_boy)
|
|
65
|
+
print("Updated hero:", hero_spider_boy)
|
|
66
|
+
|
|
67
|
+
hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
|
|
68
|
+
hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
|
|
69
|
+
team_wakaland = Team(
|
|
70
|
+
name="Wakaland",
|
|
71
|
+
headquarters="Wakaland Capital City",
|
|
72
|
+
heroes=[hero_black_lion, hero_sure_e],
|
|
73
|
+
)
|
|
74
|
+
session.add(team_wakaland)
|
|
75
|
+
session.commit()
|
|
76
|
+
session.refresh(team_wakaland)
|
|
77
|
+
print("Team Wakaland:", team_wakaland)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def delete_team():
|
|
81
|
+
with Session(engine) as session:
|
|
82
|
+
statement = select(Team).where(Team.name == "Wakaland")
|
|
83
|
+
team = session.exec(statement).one()
|
|
84
|
+
session.delete(team)
|
|
85
|
+
session.commit()
|
|
86
|
+
print("Deleted team:", team)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def select_deleted_heroes():
|
|
90
|
+
with Session(engine) as session:
|
|
91
|
+
statement = select(Hero).where(Hero.name == "Black Lion")
|
|
92
|
+
result = session.exec(statement)
|
|
93
|
+
hero = result.first()
|
|
94
|
+
print("Black Lion not found:", hero)
|
|
95
|
+
|
|
96
|
+
statement = select(Hero).where(Hero.name == "Princess Sure-E")
|
|
97
|
+
result = session.exec(statement)
|
|
98
|
+
hero = result.first()
|
|
99
|
+
print("Princess Sure-E not found:", hero)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def main():
|
|
103
|
+
create_db_and_tables()
|
|
104
|
+
create_heroes()
|
|
105
|
+
delete_team()
|
|
106
|
+
select_deleted_heroes()
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
if __name__ == "__main__":
|
|
110
|
+
main()
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
|
|
3
|
+
from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Team(SQLModel, table=True):
|
|
7
|
+
id: Optional[int] = Field(default=None, primary_key=True)
|
|
8
|
+
name: str = Field(index=True)
|
|
9
|
+
headquarters: str
|
|
10
|
+
|
|
11
|
+
heroes: List["Hero"] = Relationship(back_populates="team")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Hero(SQLModel, table=True):
|
|
15
|
+
id: Optional[int] = Field(default=None, primary_key=True)
|
|
16
|
+
name: str = Field(index=True)
|
|
17
|
+
secret_name: str
|
|
18
|
+
age: Optional[int] = Field(default=None, index=True)
|
|
19
|
+
|
|
20
|
+
team_id: Optional[int] = Field(
|
|
21
|
+
default=None, foreign_key="team.id", ondelete="SET NULL"
|
|
22
|
+
)
|
|
23
|
+
team: Optional[Team] = Relationship(back_populates="heroes")
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
sqlite_file_name = "database.db"
|
|
27
|
+
sqlite_url = f"sqlite:///{sqlite_file_name}"
|
|
28
|
+
|
|
29
|
+
engine = create_engine(sqlite_url, echo=True)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def create_db_and_tables():
|
|
33
|
+
SQLModel.metadata.create_all(engine)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def create_heroes():
|
|
37
|
+
with Session(engine) as session:
|
|
38
|
+
team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
|
|
39
|
+
team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
|
|
40
|
+
|
|
41
|
+
hero_deadpond = Hero(
|
|
42
|
+
name="Deadpond", secret_name="Dive Wilson", team=team_z_force
|
|
43
|
+
)
|
|
44
|
+
hero_rusty_man = Hero(
|
|
45
|
+
name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
|
|
46
|
+
)
|
|
47
|
+
hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
|
|
48
|
+
session.add(hero_deadpond)
|
|
49
|
+
session.add(hero_rusty_man)
|
|
50
|
+
session.add(hero_spider_boy)
|
|
51
|
+
session.commit()
|
|
52
|
+
|
|
53
|
+
session.refresh(hero_deadpond)
|
|
54
|
+
session.refresh(hero_rusty_man)
|
|
55
|
+
session.refresh(hero_spider_boy)
|
|
56
|
+
|
|
57
|
+
print("Created hero:", hero_deadpond)
|
|
58
|
+
print("Created hero:", hero_rusty_man)
|
|
59
|
+
print("Created hero:", hero_spider_boy)
|
|
60
|
+
|
|
61
|
+
hero_spider_boy.team = team_preventers
|
|
62
|
+
session.add(hero_spider_boy)
|
|
63
|
+
session.commit()
|
|
64
|
+
session.refresh(hero_spider_boy)
|
|
65
|
+
print("Updated hero:", hero_spider_boy)
|
|
66
|
+
|
|
67
|
+
hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
|
|
68
|
+
hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
|
|
69
|
+
team_wakaland = Team(
|
|
70
|
+
name="Wakaland",
|
|
71
|
+
headquarters="Wakaland Capital City",
|
|
72
|
+
heroes=[hero_black_lion, hero_sure_e],
|
|
73
|
+
)
|
|
74
|
+
session.add(team_wakaland)
|
|
75
|
+
session.commit()
|
|
76
|
+
session.refresh(team_wakaland)
|
|
77
|
+
print("Team Wakaland:", team_wakaland)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def delete_team():
|
|
81
|
+
with Session(engine) as session:
|
|
82
|
+
statement = select(Team).where(Team.name == "Wakaland")
|
|
83
|
+
team = session.exec(statement).one()
|
|
84
|
+
session.delete(team)
|
|
85
|
+
session.commit()
|
|
86
|
+
print("Deleted team:", team)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def select_deleted_heroes():
|
|
90
|
+
with Session(engine) as session:
|
|
91
|
+
statement = select(Hero).where(Hero.name == "Black Lion")
|
|
92
|
+
result = session.exec(statement)
|
|
93
|
+
hero = result.first()
|
|
94
|
+
print("Black Lion has no team:", hero)
|
|
95
|
+
|
|
96
|
+
statement = select(Hero).where(Hero.name == "Princess Sure-E")
|
|
97
|
+
result = session.exec(statement)
|
|
98
|
+
hero = result.first()
|
|
99
|
+
print("Princess Sure-E has no team:", hero)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def main():
|
|
103
|
+
create_db_and_tables()
|
|
104
|
+
create_heroes()
|
|
105
|
+
delete_team()
|
|
106
|
+
select_deleted_heroes()
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
if __name__ == "__main__":
|
|
110
|
+
main()
|