]> git.ipfire.org Git - thirdparty/fastapi/sqlmodel.git/commit
➖ Drop support for Python 3.9 (#1766)
authorSebastián Ramírez <tiangolo@gmail.com>
Fri, 20 Feb 2026 16:34:55 +0000 (08:34 -0800)
committerGitHub <noreply@github.com>
Fri, 20 Feb 2026 16:34:55 +0000 (17:34 +0100)
commitede8dd062d96310d50fc8c1216dbc85e6029cafb
tree43ab46ce6739c126e4070c13aafab2d39090176e
parentffdcb44ae2af3dd407cf9c117e210607cc0a99b1
➖ Drop support for Python 3.9 (#1766)
229 files changed:
.github/workflows/test.yml
docs/tutorial/automatic-id-none-refresh.md
docs/tutorial/create-db-and-table.md
docs/tutorial/delete.md
docs/tutorial/insert.md
docs/tutorial/select.md
docs/tutorial/update.md
docs_src/advanced/decimal/tutorial001_py39.py [deleted file]
docs_src/advanced/uuid/tutorial001_py39.py [deleted file]
docs_src/advanced/uuid/tutorial002_py39.py [deleted file]
docs_src/tutorial/automatic_id_none_refresh/tutorial001_py39.py [deleted file]
docs_src/tutorial/automatic_id_none_refresh/tutorial002_py39.py [deleted file]
docs_src/tutorial/code_structure/tutorial001_py39/__init__.py [deleted file]
docs_src/tutorial/code_structure/tutorial001_py39/app.py [deleted file]
docs_src/tutorial/code_structure/tutorial001_py39/database.py [deleted file]
docs_src/tutorial/code_structure/tutorial001_py39/models.py [deleted file]
docs_src/tutorial/code_structure/tutorial002_py39/__init__.py [deleted file]
docs_src/tutorial/code_structure/tutorial002_py39/app.py [deleted file]
docs_src/tutorial/code_structure/tutorial002_py39/database.py [deleted file]
docs_src/tutorial/code_structure/tutorial002_py39/hero_model.py [deleted file]
docs_src/tutorial/code_structure/tutorial002_py39/team_model.py [deleted file]
docs_src/tutorial/connect/create_tables/tutorial001_py39.py [deleted file]
docs_src/tutorial/connect/delete/tutorial001_py39.py [deleted file]
docs_src/tutorial/connect/insert/tutorial001_py39.py [deleted file]
docs_src/tutorial/connect/select/tutorial001_py39.py [deleted file]
docs_src/tutorial/connect/select/tutorial002_py39.py [deleted file]
docs_src/tutorial/connect/select/tutorial003_py39.py [deleted file]
docs_src/tutorial/connect/select/tutorial004_py39.py [deleted file]
docs_src/tutorial/connect/select/tutorial005_py39.py [deleted file]
docs_src/tutorial/connect/update/tutorial001_py39.py [deleted file]
docs_src/tutorial/create_db_and_table/tutorial001_py39.py [deleted file]
docs_src/tutorial/create_db_and_table/tutorial002_py39.py [deleted file]
docs_src/tutorial/create_db_and_table/tutorial003_py39.py [deleted file]
docs_src/tutorial/delete/tutorial001_py39.py [deleted file]
docs_src/tutorial/delete/tutorial002_py39.py [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/__init__.py [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/annotations/en/test_main_001.md [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/annotations/en/test_main_002.md [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/annotations/en/test_main_003.md [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/annotations/en/test_main_004.md [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/annotations/en/test_main_005.md [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/annotations/en/test_main_006.md [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/main.py [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_extra_coverage.py [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main.py [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main_001.py [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main_002.py [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main_003.py [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main_004.py [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main_005.py [deleted file]
docs_src/tutorial/fastapi/app_testing/tutorial001_py39/test_main_006.py [deleted file]
docs_src/tutorial/fastapi/delete/tutorial001_py39.py [deleted file]
docs_src/tutorial/fastapi/limit_and_offset/tutorial001_py39.py [deleted file]
docs_src/tutorial/fastapi/multiple_models/tutorial001_py39.py [deleted file]
docs_src/tutorial/fastapi/multiple_models/tutorial002_py39.py [deleted file]
docs_src/tutorial/fastapi/read_one/tutorial001_py39.py [deleted file]
docs_src/tutorial/fastapi/relationships/tutorial001_py39.py [deleted file]
docs_src/tutorial/fastapi/response_model/tutorial001_py39.py [deleted file]
docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py39.py [deleted file]
docs_src/tutorial/fastapi/simple_hero_api/tutorial001_py39.py [deleted file]
docs_src/tutorial/fastapi/teams/tutorial001_py39.py [deleted file]
docs_src/tutorial/fastapi/update/tutorial001_py39.py [deleted file]
docs_src/tutorial/fastapi/update/tutorial002_py39.py [deleted file]
docs_src/tutorial/indexes/tutorial001_py39.py [deleted file]
docs_src/tutorial/indexes/tutorial002_py39.py [deleted file]
docs_src/tutorial/insert/tutorial001_py39.py [deleted file]
docs_src/tutorial/insert/tutorial002_py39.py [deleted file]
docs_src/tutorial/insert/tutorial003_py39.py [deleted file]
docs_src/tutorial/many_to_many/tutorial001_py39.py [deleted file]
docs_src/tutorial/many_to_many/tutorial002_py39.py [deleted file]
docs_src/tutorial/many_to_many/tutorial003_py39.py [deleted file]
docs_src/tutorial/offset_and_limit/tutorial001_py39.py [deleted file]
docs_src/tutorial/offset_and_limit/tutorial002_py39.py [deleted file]
docs_src/tutorial/offset_and_limit/tutorial003_py39.py [deleted file]
docs_src/tutorial/offset_and_limit/tutorial004_py39.py [deleted file]
docs_src/tutorial/one/tutorial001_py39.py [deleted file]
docs_src/tutorial/one/tutorial002_py39.py [deleted file]
docs_src/tutorial/one/tutorial003_py39.py [deleted file]
docs_src/tutorial/one/tutorial004_py39.py [deleted file]
docs_src/tutorial/one/tutorial005_py39.py [deleted file]
docs_src/tutorial/one/tutorial006_py39.py [deleted file]
docs_src/tutorial/one/tutorial007_py39.py [deleted file]
docs_src/tutorial/one/tutorial008_py39.py [deleted file]
docs_src/tutorial/one/tutorial009_py39.py [deleted file]
docs_src/tutorial/relationship_attributes/back_populates/tutorial001_py39.py [deleted file]
docs_src/tutorial/relationship_attributes/back_populates/tutorial002_py39.py [deleted file]
docs_src/tutorial/relationship_attributes/back_populates/tutorial003_py39.py [deleted file]
docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial001_py39.py [deleted file]
docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial002_py39.py [deleted file]
docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial003_py39.py [deleted file]
docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial004_py39.py [deleted file]
docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial005_py39.py [deleted file]
docs_src/tutorial/relationship_attributes/create_and_update_relationships/tutorial001_py39.py [deleted file]
docs_src/tutorial/relationship_attributes/define_relationship_attributes/tutorial001_py39.py [deleted file]
docs_src/tutorial/relationship_attributes/read_relationships/tutorial001_py39.py [deleted file]
docs_src/tutorial/relationship_attributes/read_relationships/tutorial002_py39.py [deleted file]
docs_src/tutorial/select/tutorial001_py39.py [deleted file]
docs_src/tutorial/select/tutorial002_py39.py [deleted file]
docs_src/tutorial/select/tutorial003_py39.py [deleted file]
docs_src/tutorial/select/tutorial004_py39.py [deleted file]
docs_src/tutorial/update/tutorial001_py39.py [deleted file]
docs_src/tutorial/update/tutorial002_py39.py [deleted file]
docs_src/tutorial/update/tutorial003_py39.py [deleted file]
docs_src/tutorial/update/tutorial004_py39.py [deleted file]
docs_src/tutorial/where/tutorial001_py39.py [deleted file]
docs_src/tutorial/where/tutorial002_py39.py [deleted file]
docs_src/tutorial/where/tutorial003_py39.py [deleted file]
docs_src/tutorial/where/tutorial004_py39.py [deleted file]
docs_src/tutorial/where/tutorial005_py39.py [deleted file]
docs_src/tutorial/where/tutorial006_py39.py [deleted file]
docs_src/tutorial/where/tutorial007_py39.py [deleted file]
docs_src/tutorial/where/tutorial008_py39.py [deleted file]
docs_src/tutorial/where/tutorial009_py39.py [deleted file]
docs_src/tutorial/where/tutorial010_py310.py [deleted file]
docs_src/tutorial/where/tutorial010_py39.py [deleted file]
docs_src/tutorial/where/tutorial011_py39.py [deleted file]
pyproject.toml
scripts/mkdocs_hooks.py
sqlmodel/_compat.py
sqlmodel/ext/asyncio/session.py
sqlmodel/main.py
sqlmodel/orm/session.py
sqlmodel/sql/_expression_select_cls.py
sqlmodel/sql/_expression_select_gen.py
sqlmodel/sql/_expression_select_gen.py.jinja2
sqlmodel/sql/expression.py
tests/conftest.py
tests/test_advanced/test_decimal/test_tutorial001.py
tests/test_advanced/test_uuid/test_tutorial001.py
tests/test_advanced/test_uuid/test_tutorial002.py
tests/test_aliases.py
tests/test_annotated_uuid.py
tests/test_field_sa_args_kwargs.py
tests/test_field_sa_column.py
tests/test_field_sa_relationship.py
tests/test_future_annotations.py
tests/test_instance_no_args.py
tests/test_main.py
tests/test_missing_type.py
tests/test_nullable.py
tests/test_ondelete_raises.py
tests/test_pydantic/test_field.py
tests/test_query.py
tests/test_select_typing.py
tests/test_sqlalchemy_type_errors.py
tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_tutorial002.py
tests/test_tutorial/test_code_structure/test_tutorial001.py
tests/test_tutorial/test_code_structure/test_tutorial002.py
tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001.py
tests/test_tutorial/test_connect/test_delete/test_tutorial001.py
tests/test_tutorial/test_connect/test_insert/test_tutorial001.py
tests/test_tutorial/test_connect/test_select/test_tutorial001_tutorial002.py
tests/test_tutorial/test_connect/test_select/test_tutorial003.py
tests/test_tutorial/test_connect/test_select/test_tutorial004.py
tests/test_tutorial/test_connect/test_select/test_tutorial005.py
tests/test_tutorial/test_connect/test_update/test_tutorial001.py
tests/test_tutorial/test_create_db_and_table/test_tutorial001.py
tests/test_tutorial/test_create_db_and_table/test_tutorial002.py
tests/test_tutorial/test_create_db_and_table/test_tutorial003.py
tests/test_tutorial/test_delete/test_tutorial001_tutorial002.py
tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests001.py
tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests002.py
tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests003.py
tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests004.py
tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests005.py
tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests006.py
tests/test_tutorial/test_fastapi/test_app_testing/test_tutorial001_tests_main.py
tests/test_tutorial/test_fastapi/test_delete/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_limit_and_offset/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_multiple_models/test_tutorial002.py
tests/test_tutorial/test_fastapi/test_read_one/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_relationships/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_response_model/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_session_with_dependency/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_simple_hero_api/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_teams/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_update/test_tutorial001.py
tests/test_tutorial/test_fastapi/test_update/test_tutorial002.py
tests/test_tutorial/test_indexes/test_tutorial001.py
tests/test_tutorial/test_indexes/test_tutorial002.py
tests/test_tutorial/test_insert/test_tutorial001.py
tests/test_tutorial/test_insert/test_tutorial002.py
tests/test_tutorial/test_insert/test_tutorial003.py
tests/test_tutorial/test_limit_and_offset/test_tutorial001.py
tests/test_tutorial/test_limit_and_offset/test_tutorial002.py
tests/test_tutorial/test_limit_and_offset/test_tutorial003.py
tests/test_tutorial/test_limit_and_offset/test_tutorial004.py
tests/test_tutorial/test_many_to_many/test_tutorial001.py
tests/test_tutorial/test_many_to_many/test_tutorial002.py
tests/test_tutorial/test_many_to_many/test_tutorial003.py
tests/test_tutorial/test_one/test_tutorial001.py
tests/test_tutorial/test_one/test_tutorial002.py
tests/test_tutorial/test_one/test_tutorial003.py
tests/test_tutorial/test_one/test_tutorial004.py
tests/test_tutorial/test_one/test_tutorial005.py
tests/test_tutorial/test_one/test_tutorial006.py
tests/test_tutorial/test_one/test_tutorial007.py
tests/test_tutorial/test_one/test_tutorial008.py
tests/test_tutorial/test_one/test_tutorial009.py
tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial002.py
tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial003.py
tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial002.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial003.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial004.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial005.py
tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial002.py
tests/test_tutorial/test_select/test_tutorial001_tutorial002.py
tests/test_tutorial/test_select/test_tutorial003_tutorial004.py
tests/test_tutorial/test_update/test_tutorial001_tutorial002.py
tests/test_tutorial/test_update/test_tutorial003_tutorial004.py
tests/test_tutorial/test_where/test_tutorial001.py
tests/test_tutorial/test_where/test_tutorial002.py
tests/test_tutorial/test_where/test_tutorial003.py
tests/test_tutorial/test_where/test_tutorial004.py
tests/test_tutorial/test_where/test_tutorial005.py
tests/test_tutorial/test_where/test_tutorial006.py
tests/test_tutorial/test_where/test_tutorial007.py
tests/test_tutorial/test_where/test_tutorial008.py
tests/test_tutorial/test_where/test_tutorial009.py
tests/test_tutorial/test_where/test_tutorial010.py [deleted file]
tests/test_tutorial/test_where/test_tutorial011.py
tests/test_validation.py
uv.lock