sqlmodel 0.0.37__tar.gz → 0.0.39__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.37 → sqlmodel-0.0.39}/PKG-INFO +13 -15
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/README.md +11 -14
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/automatic_id_none_refresh/annotations/en/tutorial002.md +3 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_004.md +1 -1
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/insert/annotations/en/tutorial003.md +1 -1
- sqlmodel-0.0.39/docs_src/tutorial/where/tutorial006b_py310.py +57 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/pyproject.toml +52 -40
- sqlmodel-0.0.39/scripts/add_latest_release_date.py +40 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/scripts/docs.py +5 -5
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/scripts/generate_select.py +1 -1
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/scripts/lint.sh +2 -2
- sqlmodel-0.0.39/scripts/prepare_release.py +209 -0
- sqlmodel-0.0.39/sqlmodel/.agents/skills/sqlmodel/SKILL.md +178 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/__init__.py +1 -1
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/main.py +20 -18
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/sql/_expression_select_cls.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/sql/_expression_select_gen.py +119 -92
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/sql/_expression_select_gen.py.jinja2 +8 -9
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/sql/expression.py +17 -17
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/sql/sqltypes.py +1 -1
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/conftest.py +0 -6
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_advanced/test_decimal/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_advanced/test_uuid/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_advanced/test_uuid/test_tutorial002.py +2 -2
- sqlmodel-0.0.39/tests/test_prepare_release.py +298 -0
- sqlmodel-0.0.39/tests/test_pydantic/test_model_dump.py +47 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_tutorial002.py +3 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_code_structure/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_code_structure/test_tutorial002.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_delete/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_insert/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_select/test_tutorial001_tutorial002.py +3 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_select/test_tutorial003.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_select/test_tutorial004.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_select/test_tutorial005.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_update/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_create_db_and_table/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_create_db_and_table/test_tutorial002.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_create_db_and_table/test_tutorial003.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_delete/test_tutorial001_tutorial002.py +3 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests002.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests003.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests004.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests_main.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_delete/test_tutorial001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_limit_and_offset/test_tutorial001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial002.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_read_one/test_tutorial001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_relationships/test_tutorial001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_response_model/test_tutorial001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_session_with_dependency/test_tutorial001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_simple_hero_api/test_tutorial001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_teams/test_tutorial001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_update/test_tutorial001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_update/test_tutorial002.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_indexes/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_indexes/test_tutorial002.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_insert/test_tutorial001.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_insert/test_tutorial002.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_insert/test_tutorial003.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_limit_and_offset/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_limit_and_offset/test_tutorial002.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_limit_and_offset/test_tutorial003.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_limit_and_offset/test_tutorial004.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_many_to_many/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_many_to_many/test_tutorial002.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_many_to_many/test_tutorial003.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_one/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_one/test_tutorial002.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_one/test_tutorial003.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_one/test_tutorial004.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_one/test_tutorial005.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_one/test_tutorial006.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_one/test_tutorial007.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_one/test_tutorial008.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_one/test_tutorial009.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial002.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial003.py +1 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial002.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial003.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial004.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial005.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial002.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_select/test_tutorial001_tutorial002.py +3 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_select/test_tutorial003_tutorial004.py +3 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_update/test_tutorial001_tutorial002.py +3 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_update/test_tutorial003_tutorial004.py +3 -3
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_where/test_tutorial001.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_where/test_tutorial002.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_where/test_tutorial003.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_where/test_tutorial004.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_where/test_tutorial005.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_where/test_tutorial006.py +2 -2
- sqlmodel-0.0.39/tests/test_tutorial/test_where/test_tutorial006b.py +34 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_where/test_tutorial007.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_where/test_tutorial008.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_where/test_tutorial009.py +2 -2
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_where/test_tutorial011.py +2 -2
- sqlmodel-0.0.37/scripts/mkdocs_hooks.py +0 -38
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/LICENSE +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/advanced/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/advanced/decimal/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/advanced/decimal/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/advanced/uuid/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/advanced/uuid/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/advanced/uuid/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/automatic_id_none_refresh/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/automatic_id_none_refresh/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/automatic_id_none_refresh/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/code_structure/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/code_structure/tutorial001_py310/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/code_structure/tutorial001_py310/app.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/code_structure/tutorial001_py310/database.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/code_structure/tutorial001_py310/models.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/code_structure/tutorial002_py310/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/code_structure/tutorial002_py310/app.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/code_structure/tutorial002_py310/database.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/code_structure/tutorial002_py310/hero_model.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/code_structure/tutorial002_py310/team_model.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/create_tables/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/create_tables/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/delete/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/delete/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/insert/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/insert/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/select/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/select/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/select/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/select/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/select/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/select/tutorial005_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/update/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/connect/update/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/create_db_and_table/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/create_db_and_table/annotations/en/tutorial003.md +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/create_db_and_table/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/create_db_and_table/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/create_db_and_table/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/delete/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/delete/annotations/en/tutorial002.md +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/delete/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/delete/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_001.md +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_002.md +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_003.md +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_005.md +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/annotations/en/test_main_006.md +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/main.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_extra_coverage.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_001.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_002.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_003.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_004.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_005.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/test_main_006.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/delete/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/delete/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/limit_and_offset/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/limit_and_offset/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/multiple_models/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/multiple_models/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/multiple_models/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/read_one/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/read_one/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/relationships/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/relationships/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/response_model/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/response_model/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/session_with_dependency/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/simple_hero_api/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/simple_hero_api/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/teams/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/teams/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/update/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/update/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/fastapi/update/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/indexes/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/indexes/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/indexes/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/insert/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/insert/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/insert/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/insert/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/many_to_many/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/many_to_many/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/many_to_many/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/many_to_many/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/offset_and_limit/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/offset_and_limit/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/offset_and_limit/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/offset_and_limit/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/offset_and_limit/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/one/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/one/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/one/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/one/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/one/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/one/tutorial005_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/one/tutorial006_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/one/tutorial007_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/one/tutorial008_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/one/tutorial009_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/back_populates/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/back_populates/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/back_populates/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/back_populates/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial005_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/create_and_update_relationships/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/create_and_update_relationships/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/define_relationship_attributes/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/define_relationship_attributes/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/read_relationships/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/read_relationships/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/relationship_attributes/read_relationships/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/select/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/select/annotations/en/tutorial002.md +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/select/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/select/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/select/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/select/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/update/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/update/annotations/en/tutorial002.md +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/update/annotations/en/tutorial004.md +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/update/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/update/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/update/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/update/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/where/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/where/tutorial001_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/where/tutorial002_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/where/tutorial003_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/where/tutorial004_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/where/tutorial005_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/where/tutorial006_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/where/tutorial007_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/where/tutorial008_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/where/tutorial009_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/docs_src/tutorial/where/tutorial011_py310.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/scripts/deploy_docs_status.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/scripts/format.sh +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/scripts/test.sh +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/_compat.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/default.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/ext/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/ext/asyncio/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/ext/asyncio/session.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/orm/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/orm/session.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/pool/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/py.typed +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/sql/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/sqlmodel/sql/base.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_advanced/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_advanced/test_decimal/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_advanced/test_uuid/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_aliases.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_annotated_uuid.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_default.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_deprecations.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_enums.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_enums_models.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_field_sa_args_kwargs.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_field_sa_column.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_field_sa_relationship.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_fields_set.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_future_annotations.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_instance_no_args.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_main.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_missing_type.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_nullable.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_ondelete_raises.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_pydantic/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_pydantic/test_field.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_query.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_select_gen.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_select_typing.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_sqlalchemy_type_errors.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_automatic_id_none_refresh/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_code_structure/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_create_connected_tables/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_delete/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_insert/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_select/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_connect/test_update/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_create_db_and_table/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_delete/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_app_testing/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests005.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests006.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_delete/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_limit_and_offset/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_multiple_models/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_read_one/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_relationships/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_response_model/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_session_with_dependency/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_simple_hero_api/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_teams/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_fastapi/test_update/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_indexes/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_insert/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_limit_and_offset/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_many_to_many/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_one/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_back_populates/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_relationship_attributes/test_read_relationships/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_select/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_update/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_tutorial/test_where/__init__.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_update.py +0 -0
- {sqlmodel-0.0.37 → sqlmodel-0.0.39}/tests/test_validation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sqlmodel
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.39
|
|
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
|
|
@@ -30,6 +30,7 @@ Project-URL: Changelog, https://sqlmodel.tiangolo.com/release-notes/
|
|
|
30
30
|
Requires-Python: >=3.10
|
|
31
31
|
Requires-Dist: SQLAlchemy<2.1.0,>=2.0.14
|
|
32
32
|
Requires-Dist: pydantic>=2.11.0
|
|
33
|
+
Requires-Dist: typing-extensions>=4.5.0
|
|
33
34
|
Description-Content-Type: text/markdown
|
|
34
35
|
|
|
35
36
|
<p align="center">
|
|
@@ -40,30 +41,27 @@ Description-Content-Type: text/markdown
|
|
|
40
41
|
<em>SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.</em>
|
|
41
42
|
</p>
|
|
42
43
|
<p align="center">
|
|
43
|
-
<a href="https://github.com/fastapi/sqlmodel/actions?query=workflow%3ATest+event%3Apush+branch%3Amain"
|
|
44
|
+
<a href="https://github.com/fastapi/sqlmodel/actions?query=workflow%3ATest+event%3Apush+branch%3Amain">
|
|
44
45
|
<img src="https://github.com/fastapi/sqlmodel/actions/workflows/test.yml/badge.svg?event=push&branch=main" alt="Test">
|
|
45
46
|
</a>
|
|
46
|
-
<a href="https://
|
|
47
|
-
<img src="https://github.com/fastapi/sqlmodel/actions/workflows/publish.yml/badge.svg" alt="Publish">
|
|
48
|
-
</a>
|
|
49
|
-
<a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/sqlmodel" target="_blank">
|
|
47
|
+
<a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/sqlmodel">
|
|
50
48
|
<img src="https://coverage-badge.samuelcolvin.workers.dev/fastapi/sqlmodel.svg" alt="Coverage">
|
|
51
|
-
<a href="https://pypi.org/project/sqlmodel"
|
|
49
|
+
<a href="https://pypi.org/project/sqlmodel">
|
|
52
50
|
<img src="https://img.shields.io/pypi/v/sqlmodel?color=%2334D058&label=pypi%20package" alt="Package version">
|
|
53
51
|
</a>
|
|
54
52
|
</p>
|
|
55
53
|
|
|
56
54
|
---
|
|
57
55
|
|
|
58
|
-
**Documentation**:
|
|
56
|
+
**Documentation**: [https://sqlmodel.tiangolo.com](https://sqlmodel.tiangolo.com)
|
|
59
57
|
|
|
60
|
-
**Source Code**:
|
|
58
|
+
**Source Code**: [https://github.com/fastapi/sqlmodel](https://github.com/fastapi/sqlmodel)
|
|
61
59
|
|
|
62
60
|
---
|
|
63
61
|
|
|
64
62
|
SQLModel is a library for interacting with <abbr title='Also called "Relational databases"'>SQL databases</abbr> from Python code, with Python objects. It is designed to be intuitive, easy to use, highly compatible, and robust.
|
|
65
63
|
|
|
66
|
-
**SQLModel** is based on Python type annotations, and powered by
|
|
64
|
+
**SQLModel** is based on Python type annotations, and powered by [Pydantic](https://pydantic-docs.helpmanual.io/) and [SQLAlchemy](https://sqlalchemy.org/).
|
|
67
65
|
|
|
68
66
|
The key features are:
|
|
69
67
|
|
|
@@ -83,9 +81,9 @@ The key features are:
|
|
|
83
81
|
|
|
84
82
|
## SQL Databases in FastAPI
|
|
85
83
|
|
|
86
|
-
<a href="https://fastapi.tiangolo.com"
|
|
84
|
+
<a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" style="width: 20%;"></a>
|
|
87
85
|
|
|
88
|
-
**SQLModel** is designed to simplify interacting with SQL databases in
|
|
86
|
+
**SQLModel** is designed to simplify interacting with SQL databases in [FastAPI](https://fastapi.tiangolo.com) applications, it was created by the same [author](https://tiangolo.com/). 😁
|
|
89
87
|
|
|
90
88
|
It combines SQLAlchemy and Pydantic and tries to simplify the code you write as much as possible, allowing you to reduce the **code duplication to a minimum**, but while getting the **best developer experience** possible.
|
|
91
89
|
|
|
@@ -93,13 +91,13 @@ It combines SQLAlchemy and Pydantic and tries to simplify the code you write as
|
|
|
93
91
|
|
|
94
92
|
## Requirements
|
|
95
93
|
|
|
96
|
-
A recent and currently supported
|
|
94
|
+
A recent and currently supported [version of Python](https://www.python.org/downloads/).
|
|
97
95
|
|
|
98
96
|
As **SQLModel** is based on **Pydantic** and **SQLAlchemy**, it requires them. They will be automatically installed when you install SQLModel.
|
|
99
97
|
|
|
100
98
|
## Installation
|
|
101
99
|
|
|
102
|
-
Make sure you create a
|
|
100
|
+
Make sure you create a [virtual environment](https://sqlmodel.tiangolo.com/virtual-environments/), activate it, and then install SQLModel, for example with:
|
|
103
101
|
|
|
104
102
|
<div class="termy">
|
|
105
103
|
|
|
@@ -113,7 +111,7 @@ Successfully installed sqlmodel
|
|
|
113
111
|
|
|
114
112
|
## Example
|
|
115
113
|
|
|
116
|
-
For an introduction to databases, SQL, and everything else, see the
|
|
114
|
+
For an introduction to databases, SQL, and everything else, see the [SQLModel documentation](https://sqlmodel.tiangolo.com/databases/).
|
|
117
115
|
|
|
118
116
|
Here's a quick example. ✨
|
|
119
117
|
|
|
@@ -6,30 +6,27 @@
|
|
|
6
6
|
<em>SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.</em>
|
|
7
7
|
</p>
|
|
8
8
|
<p align="center">
|
|
9
|
-
<a href="https://github.com/fastapi/sqlmodel/actions?query=workflow%3ATest+event%3Apush+branch%3Amain"
|
|
9
|
+
<a href="https://github.com/fastapi/sqlmodel/actions?query=workflow%3ATest+event%3Apush+branch%3Amain">
|
|
10
10
|
<img src="https://github.com/fastapi/sqlmodel/actions/workflows/test.yml/badge.svg?event=push&branch=main" alt="Test">
|
|
11
11
|
</a>
|
|
12
|
-
<a href="https://
|
|
13
|
-
<img src="https://github.com/fastapi/sqlmodel/actions/workflows/publish.yml/badge.svg" alt="Publish">
|
|
14
|
-
</a>
|
|
15
|
-
<a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/sqlmodel" target="_blank">
|
|
12
|
+
<a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/fastapi/sqlmodel">
|
|
16
13
|
<img src="https://coverage-badge.samuelcolvin.workers.dev/fastapi/sqlmodel.svg" alt="Coverage">
|
|
17
|
-
<a href="https://pypi.org/project/sqlmodel"
|
|
14
|
+
<a href="https://pypi.org/project/sqlmodel">
|
|
18
15
|
<img src="https://img.shields.io/pypi/v/sqlmodel?color=%2334D058&label=pypi%20package" alt="Package version">
|
|
19
16
|
</a>
|
|
20
17
|
</p>
|
|
21
18
|
|
|
22
19
|
---
|
|
23
20
|
|
|
24
|
-
**Documentation**:
|
|
21
|
+
**Documentation**: [https://sqlmodel.tiangolo.com](https://sqlmodel.tiangolo.com)
|
|
25
22
|
|
|
26
|
-
**Source Code**:
|
|
23
|
+
**Source Code**: [https://github.com/fastapi/sqlmodel](https://github.com/fastapi/sqlmodel)
|
|
27
24
|
|
|
28
25
|
---
|
|
29
26
|
|
|
30
27
|
SQLModel is a library for interacting with <abbr title='Also called "Relational databases"'>SQL databases</abbr> from Python code, with Python objects. It is designed to be intuitive, easy to use, highly compatible, and robust.
|
|
31
28
|
|
|
32
|
-
**SQLModel** is based on Python type annotations, and powered by
|
|
29
|
+
**SQLModel** is based on Python type annotations, and powered by [Pydantic](https://pydantic-docs.helpmanual.io/) and [SQLAlchemy](https://sqlalchemy.org/).
|
|
33
30
|
|
|
34
31
|
The key features are:
|
|
35
32
|
|
|
@@ -49,9 +46,9 @@ The key features are:
|
|
|
49
46
|
|
|
50
47
|
## SQL Databases in FastAPI
|
|
51
48
|
|
|
52
|
-
<a href="https://fastapi.tiangolo.com"
|
|
49
|
+
<a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" style="width: 20%;"></a>
|
|
53
50
|
|
|
54
|
-
**SQLModel** is designed to simplify interacting with SQL databases in
|
|
51
|
+
**SQLModel** is designed to simplify interacting with SQL databases in [FastAPI](https://fastapi.tiangolo.com) applications, it was created by the same [author](https://tiangolo.com/). 😁
|
|
55
52
|
|
|
56
53
|
It combines SQLAlchemy and Pydantic and tries to simplify the code you write as much as possible, allowing you to reduce the **code duplication to a minimum**, but while getting the **best developer experience** possible.
|
|
57
54
|
|
|
@@ -59,13 +56,13 @@ It combines SQLAlchemy and Pydantic and tries to simplify the code you write as
|
|
|
59
56
|
|
|
60
57
|
## Requirements
|
|
61
58
|
|
|
62
|
-
A recent and currently supported
|
|
59
|
+
A recent and currently supported [version of Python](https://www.python.org/downloads/).
|
|
63
60
|
|
|
64
61
|
As **SQLModel** is based on **Pydantic** and **SQLAlchemy**, it requires them. They will be automatically installed when you install SQLModel.
|
|
65
62
|
|
|
66
63
|
## Installation
|
|
67
64
|
|
|
68
|
-
Make sure you create a
|
|
65
|
+
Make sure you create a [virtual environment](https://sqlmodel.tiangolo.com/virtual-environments/), activate it, and then install SQLModel, for example with:
|
|
69
66
|
|
|
70
67
|
<div class="termy">
|
|
71
68
|
|
|
@@ -79,7 +76,7 @@ Successfully installed sqlmodel
|
|
|
79
76
|
|
|
80
77
|
## Example
|
|
81
78
|
|
|
82
|
-
For an introduction to databases, SQL, and everything else, see the
|
|
79
|
+
For an introduction to databases, SQL, and everything else, see the [SQLModel documentation](https://sqlmodel.tiangolo.com/databases/).
|
|
83
80
|
|
|
84
81
|
Here's a quick example. ✨
|
|
85
82
|
|
|
@@ -307,7 +307,7 @@
|
|
|
307
307
|
|
|
308
308
|
33. Print the `hero_1`.
|
|
309
309
|
|
|
310
|
-
///
|
|
310
|
+
/// note
|
|
311
311
|
|
|
312
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
313
|
|
|
@@ -323,7 +323,7 @@
|
|
|
323
323
|
|
|
324
324
|
34. Print the `hero_2`.
|
|
325
325
|
|
|
326
|
-
///
|
|
326
|
+
/// note
|
|
327
327
|
|
|
328
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
329
|
|
|
@@ -339,7 +339,7 @@
|
|
|
339
339
|
|
|
340
340
|
35. Print the `hero_3`.
|
|
341
341
|
|
|
342
|
-
///
|
|
342
|
+
/// note
|
|
343
343
|
|
|
344
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
345
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
We tell it that with the `poolclass=StaticPool` parameter.
|
|
24
24
|
|
|
25
|
-
///
|
|
25
|
+
/// note
|
|
26
26
|
|
|
27
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
28
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
3. Use a `with` block to create a `Session` using the `engine`.
|
|
8
8
|
|
|
9
|
-
The new **
|
|
9
|
+
The new **session** will be assigned to the variable `session`.
|
|
10
10
|
|
|
11
11
|
And it will be automatically closed when the `with` block is finished.
|
|
12
12
|
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from sqlmodel import Field, Session, SQLModel, col, create_engine, select
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Hero(SQLModel, table=True):
|
|
5
|
+
id: int | None = Field(default=None, primary_key=True)
|
|
6
|
+
name: str
|
|
7
|
+
secret_name: str
|
|
8
|
+
age: int | None = None
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
sqlite_file_name = "database.db"
|
|
12
|
+
sqlite_url = f"sqlite:///{sqlite_file_name}"
|
|
13
|
+
|
|
14
|
+
engine = create_engine(sqlite_url, echo=True)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def create_db_and_tables():
|
|
18
|
+
SQLModel.metadata.create_all(engine)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def create_heroes():
|
|
22
|
+
hero_1 = Hero(name="Deadpond", secret_name="Dive Wilson")
|
|
23
|
+
hero_2 = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
|
|
24
|
+
hero_3 = Hero(name="Rusty-Man", secret_name="Tommy Sharp", age=48)
|
|
25
|
+
hero_4 = Hero(name="Tarantula", secret_name="Natalia Roman-on", age=32)
|
|
26
|
+
hero_5 = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
|
|
27
|
+
hero_6 = Hero(name="Dr. Weird", secret_name="Steve Weird", age=36)
|
|
28
|
+
hero_7 = Hero(name="Captain North America", secret_name="Esteban Rogelios", age=93)
|
|
29
|
+
|
|
30
|
+
with Session(engine) as session:
|
|
31
|
+
session.add(hero_1)
|
|
32
|
+
session.add(hero_2)
|
|
33
|
+
session.add(hero_3)
|
|
34
|
+
session.add(hero_4)
|
|
35
|
+
session.add(hero_5)
|
|
36
|
+
session.add(hero_6)
|
|
37
|
+
session.add(hero_7)
|
|
38
|
+
|
|
39
|
+
session.commit()
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def select_heroes():
|
|
43
|
+
with Session(engine) as session:
|
|
44
|
+
statement = select(Hero).where(col(Hero.name).in_(["Deadpond", "Ratman"]))
|
|
45
|
+
results = session.exec(statement)
|
|
46
|
+
for hero in results:
|
|
47
|
+
print(hero)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def main():
|
|
51
|
+
create_db_and_tables()
|
|
52
|
+
create_heroes()
|
|
53
|
+
select_heroes()
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
if __name__ == "__main__":
|
|
57
|
+
main()
|
|
@@ -39,8 +39,9 @@ classifiers = [
|
|
|
39
39
|
dependencies = [
|
|
40
40
|
"SQLAlchemy >=2.0.14,<2.1.0",
|
|
41
41
|
"pydantic>=2.11.0",
|
|
42
|
+
"typing-extensions>=4.5.0",
|
|
42
43
|
]
|
|
43
|
-
version = "0.0.
|
|
44
|
+
version = "0.0.39"
|
|
44
45
|
|
|
45
46
|
[project.urls]
|
|
46
47
|
Homepage = "https://github.com/fastapi/sqlmodel"
|
|
@@ -54,41 +55,40 @@ dev = [
|
|
|
54
55
|
{ include-group = "docs" },
|
|
55
56
|
{ include-group = "tests" },
|
|
56
57
|
"prek>=0.2.24,<1.0.0",
|
|
58
|
+
"zizmor >=1.23.1",
|
|
57
59
|
]
|
|
58
60
|
docs = [
|
|
59
|
-
"black>=24.1.0",
|
|
60
|
-
"cairosvg
|
|
61
|
-
"griffe-typingdoc
|
|
62
|
-
"griffe-warnings-deprecated
|
|
63
|
-
"markdown-include-variants
|
|
64
|
-
"mdx-include>=1.4.1
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"pyyaml>=5.3.1,<7.0.0",
|
|
71
|
-
"typer==0.23.2",
|
|
61
|
+
"black >=24.1.0",
|
|
62
|
+
"cairosvg >=2.9.0",
|
|
63
|
+
"griffe-typingdoc >=0.3.0",
|
|
64
|
+
"griffe-warnings-deprecated >=1.1.0",
|
|
65
|
+
"markdown-include-variants >=0.0.8",
|
|
66
|
+
"mdx-include >=1.4.1",
|
|
67
|
+
"mkdocstrings[python] >=1.0.3",
|
|
68
|
+
"pillow >=12.1.1",
|
|
69
|
+
"pyyaml >=5.3.1",
|
|
70
|
+
"typer >=0.24.1",
|
|
71
|
+
"zensical>=0.0.42",
|
|
72
72
|
]
|
|
73
73
|
github-actions = [
|
|
74
|
-
"httpx>=0.
|
|
75
|
-
"pydantic>=2.5.3
|
|
76
|
-
"pydantic-settings>=2.1.0
|
|
77
|
-
"pygithub>=2.3.0
|
|
78
|
-
"smokeshow>=0.5.0",
|
|
74
|
+
"httpx >=0.28.1",
|
|
75
|
+
"pydantic >=2.5.3",
|
|
76
|
+
"pydantic-settings >=2.1.0",
|
|
77
|
+
"pygithub >=2.3.0",
|
|
78
|
+
"smokeshow >=0.5.0",
|
|
79
79
|
]
|
|
80
80
|
tests = [
|
|
81
|
-
"black>=24.1.0",
|
|
82
|
-
"coverage[toml]>=6.2
|
|
83
|
-
"dirty-equals
|
|
84
|
-
"fastapi>=0.128.0",
|
|
85
|
-
"httpx
|
|
86
|
-
"jinja2
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"typing-extensions
|
|
81
|
+
"black >=24.1.0",
|
|
82
|
+
"coverage[toml] >=6.2",
|
|
83
|
+
"dirty-equals >=0.11",
|
|
84
|
+
"fastapi >=0.128.0",
|
|
85
|
+
"httpx >=0.28.1",
|
|
86
|
+
"jinja2 >=3.1.6",
|
|
87
|
+
"pytest >=7.0.1",
|
|
88
|
+
"ruff >=0.15.6",
|
|
89
|
+
"ty>=0.0.25",
|
|
90
|
+
"typer >=0.24.1",
|
|
91
|
+
"typing-extensions >=4.15.0",
|
|
92
92
|
]
|
|
93
93
|
|
|
94
94
|
[tool.pdm]
|
|
@@ -131,16 +131,6 @@ exclude_lines = [
|
|
|
131
131
|
[tool.coverage.html]
|
|
132
132
|
show_contexts = true
|
|
133
133
|
|
|
134
|
-
[tool.mypy]
|
|
135
|
-
strict = true
|
|
136
|
-
exclude = "sqlmodel.sql._expression_select_gen"
|
|
137
|
-
|
|
138
|
-
[[tool.mypy.overrides]]
|
|
139
|
-
module = "docs_src.*"
|
|
140
|
-
disallow_incomplete_defs = false
|
|
141
|
-
disallow_untyped_defs = false
|
|
142
|
-
disallow_untyped_calls = false
|
|
143
|
-
|
|
144
134
|
[tool.ruff.lint]
|
|
145
135
|
select = [
|
|
146
136
|
"E",
|
|
@@ -170,3 +160,25 @@ known-third-party = [
|
|
|
170
160
|
|
|
171
161
|
[tool.ruff.lint.pyupgrade]
|
|
172
162
|
keep-runtime-typing = true
|
|
163
|
+
|
|
164
|
+
[tool.ty.terminal]
|
|
165
|
+
error-on-warning = true
|
|
166
|
+
|
|
167
|
+
[tool.typos.files]
|
|
168
|
+
extend-exclude = [
|
|
169
|
+
"coverage/",
|
|
170
|
+
"dist/",
|
|
171
|
+
"docs/img/",
|
|
172
|
+
"docs/release-notes.md",
|
|
173
|
+
"htmlcov/",
|
|
174
|
+
"site/",
|
|
175
|
+
"site_build/",
|
|
176
|
+
"uv.lock",
|
|
177
|
+
]
|
|
178
|
+
|
|
179
|
+
[tool.typos.default.extend-identifiers]
|
|
180
|
+
alls = "alls"
|
|
181
|
+
|
|
182
|
+
[tool.typos.default.extend-words]
|
|
183
|
+
Ines = "Ines"
|
|
184
|
+
selectin = "selectin"
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""Check release-notes.md and add today's date to the latest release header if missing."""
|
|
2
|
+
|
|
3
|
+
import re
|
|
4
|
+
import sys
|
|
5
|
+
from datetime import date
|
|
6
|
+
|
|
7
|
+
RELEASE_NOTES_FILE = "docs/release-notes.md"
|
|
8
|
+
RELEASE_HEADER_PATTERN = re.compile(r"^## (\d+\.\d+\.\d+)\s*(\(.*\))?\s*$")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def main() -> None:
|
|
12
|
+
with open(RELEASE_NOTES_FILE) as f:
|
|
13
|
+
lines = f.readlines()
|
|
14
|
+
|
|
15
|
+
for i, line in enumerate(lines):
|
|
16
|
+
match = RELEASE_HEADER_PATTERN.match(line)
|
|
17
|
+
if not match:
|
|
18
|
+
continue
|
|
19
|
+
|
|
20
|
+
version = match.group(1)
|
|
21
|
+
date_part = match.group(2)
|
|
22
|
+
|
|
23
|
+
if date_part:
|
|
24
|
+
print(f"Latest release {version} already has a date: {date_part}")
|
|
25
|
+
sys.exit(0)
|
|
26
|
+
|
|
27
|
+
today = date.today().isoformat()
|
|
28
|
+
lines[i] = f"## {version} ({today})\n"
|
|
29
|
+
print(f"Added date: {version} ({today})")
|
|
30
|
+
|
|
31
|
+
with open(RELEASE_NOTES_FILE, "w") as f:
|
|
32
|
+
f.writelines(lines)
|
|
33
|
+
sys.exit(0)
|
|
34
|
+
|
|
35
|
+
print("No release header found")
|
|
36
|
+
sys.exit(1)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
if __name__ == "__main__":
|
|
40
|
+
main()
|
|
@@ -6,8 +6,8 @@ import subprocess
|
|
|
6
6
|
from http.server import HTTPServer, SimpleHTTPRequestHandler
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
|
|
9
|
-
import mkdocs.utils
|
|
10
9
|
import typer
|
|
10
|
+
import yaml
|
|
11
11
|
from jinja2 import Template
|
|
12
12
|
from ruff.__main__ import find_ruff_bin
|
|
13
13
|
|
|
@@ -45,7 +45,7 @@ def generate_readme_content() -> str:
|
|
|
45
45
|
match_start = re.search(r"<!-- sponsors -->", content)
|
|
46
46
|
match_end = re.search(r"<!-- /sponsors -->", content)
|
|
47
47
|
sponsors_data_path = en_docs_path / "data" / "sponsors.yml"
|
|
48
|
-
sponsors =
|
|
48
|
+
sponsors = yaml.safe_load(sponsors_data_path.read_text(encoding="utf-8"))
|
|
49
49
|
if not (match_start and match_end):
|
|
50
50
|
raise RuntimeError("Couldn't auto-generate sponsors section")
|
|
51
51
|
if not match_pre:
|
|
@@ -108,7 +108,7 @@ def live(dirty: bool = False) -> None:
|
|
|
108
108
|
en.
|
|
109
109
|
"""
|
|
110
110
|
# Enable line numbers during local development to make it easier to highlight
|
|
111
|
-
args = ["
|
|
111
|
+
args = ["zensical", "serve", "--dev-addr", "127.0.0.1:8008"]
|
|
112
112
|
if dirty:
|
|
113
113
|
args.append("--dirty")
|
|
114
114
|
subprocess.run(args, env={**os.environ, "LINENUMS": "true"}, check=True)
|
|
@@ -120,7 +120,7 @@ def build() -> None:
|
|
|
120
120
|
Build the docs.
|
|
121
121
|
"""
|
|
122
122
|
print("Building docs")
|
|
123
|
-
subprocess.run(["
|
|
123
|
+
subprocess.run(["zensical", "build"], check=True)
|
|
124
124
|
typer.secho("Successfully built docs", color=typer.colors.GREEN)
|
|
125
125
|
|
|
126
126
|
|
|
@@ -129,7 +129,7 @@ def serve() -> None:
|
|
|
129
129
|
"""
|
|
130
130
|
A quick server to preview a built site.
|
|
131
131
|
|
|
132
|
-
For development, prefer the command live (or just
|
|
132
|
+
For development, prefer the command live (or just zensical serve).
|
|
133
133
|
|
|
134
134
|
This is here only to preview the documentation site.
|
|
135
135
|
|
|
@@ -37,7 +37,7 @@ for total_args in range(2, number_of_types + 1):
|
|
|
37
37
|
else:
|
|
38
38
|
t_type = f"_T{i}"
|
|
39
39
|
t_var = f"_TCCA[{t_type}]"
|
|
40
|
-
arg = Arg(name=f"
|
|
40
|
+
arg = Arg(name=f"ent{i}", annotation=t_var)
|
|
41
41
|
ret_type = t_type
|
|
42
42
|
args.append(arg)
|
|
43
43
|
return_types.append(ret_type)
|