mirror of
https://github.com/fastapi/sqlmodel.git
synced 2025-08-14 17:41:37 +08:00
⬆️ Drop support for Python 3.7, require Python 3.8 or above (#1316)
This commit is contained in:

committed by
GitHub

parent
de78b8c7bc
commit
b66ec8eed3
13
.github/workflows/test.yml
vendored
13
.github/workflows/test.yml
vendored
@ -36,13 +36,6 @@ jobs:
|
||||
pydantic-version:
|
||||
- pydantic-v1
|
||||
- pydantic-v2
|
||||
include:
|
||||
- os: ubuntu-22.04
|
||||
python-version: "3.7"
|
||||
pydantic-version: pydantic-v1
|
||||
- os: ubuntu-22.04
|
||||
python-version: "3.7"
|
||||
pydantic-version: pydantic-v2
|
||||
fail-fast: false
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
@ -73,12 +66,8 @@ jobs:
|
||||
- name: Install Pydantic v2
|
||||
if: matrix.pydantic-version == 'pydantic-v2'
|
||||
run: uv pip install --upgrade "pydantic>=2.0.2,<3.0.0"
|
||||
- name: Pin typing-extensions for Python 3.7
|
||||
if: matrix.python-version == '3.7'
|
||||
run: uv pip install --upgrade "typing-extensions==4.6.1"
|
||||
- name: Lint
|
||||
# Do not run on Python 3.7 as mypy behaves differently
|
||||
if: matrix.python-version != '3.7' && matrix.pydantic-version == 'pydantic-v2'
|
||||
if: matrix.pydantic-version == 'pydantic-v2'
|
||||
run: bash scripts/lint.sh
|
||||
- run: mkdir coverage
|
||||
- name: Test
|
||||
|
@ -342,7 +342,7 @@ And as we created the **engine** with `echo=True`, we can see the SQL statements
|
||||
|
||||
////
|
||||
|
||||
//// tab | Python 3.7+
|
||||
//// tab | Python 3.8+
|
||||
|
||||
```Python
|
||||
{!./docs_src/tutorial/automatic_id_none_refresh/tutorial002.py!}
|
||||
|
@ -562,7 +562,7 @@ Now, let's give the code a final look:
|
||||
|
||||
////
|
||||
|
||||
//// tab | Python 3.7+
|
||||
//// tab | Python 3.8+
|
||||
|
||||
```{.python .annotate}
|
||||
{!./docs_src/tutorial/create_db_and_table/tutorial003.py!}
|
||||
|
@ -227,7 +227,7 @@ Now let's review all that code:
|
||||
|
||||
////
|
||||
|
||||
//// tab | Python 3.7+
|
||||
//// tab | Python 3.8+
|
||||
|
||||
```{ .python .annotate hl_lines="72-90" }
|
||||
{!./docs_src/tutorial/delete/tutorial002.py!}
|
||||
|
@ -356,7 +356,7 @@ Now we can run the tests with `pytest` and see the results:
|
||||
$ pytest
|
||||
|
||||
============= test session starts ==============
|
||||
platform linux -- Python 3.7.5, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
|
||||
platform linux -- Python 3.10.0, pytest-7.4.4, pluggy-1.5.0
|
||||
rootdir: /home/user/code/sqlmodel-tutorial
|
||||
<b>collected 7 items </b>
|
||||
|
||||
|
@ -39,7 +39,7 @@ This is the code we had to create the database and table, nothing new here:
|
||||
|
||||
////
|
||||
|
||||
//// tab | Python 3.7+
|
||||
//// tab | Python 3.8+
|
||||
|
||||
```{.python .annotate hl_lines="22" }
|
||||
{!./docs_src/tutorial/create_db_and_table/tutorial003.py[ln:1-20]!}
|
||||
@ -343,7 +343,7 @@ Let's focus on the new code:
|
||||
|
||||
////
|
||||
|
||||
//// tab | Python 3.7+
|
||||
//// tab | Python 3.8+
|
||||
|
||||
```{.python .annotate }
|
||||
{!./docs_src/tutorial/insert/tutorial003.py!}
|
||||
|
@ -273,7 +273,7 @@ Let's review the code up to this point:
|
||||
|
||||
////
|
||||
|
||||
//// tab | Python 3.7+
|
||||
//// tab | Python 3.8+
|
||||
|
||||
```{ .python .annotate }
|
||||
{!./docs_src/tutorial/select/tutorial002.py!}
|
||||
|
@ -236,7 +236,7 @@ Now let's review all that code:
|
||||
|
||||
////
|
||||
|
||||
//// tab | Python 3.7+
|
||||
//// tab | Python 3.8+
|
||||
|
||||
```{ .python .annotate hl_lines="44-55" }
|
||||
{!./docs_src/tutorial/update/tutorial002.py!}
|
||||
@ -272,7 +272,7 @@ This also means that you can update several fields (attributes, columns) at once
|
||||
|
||||
////
|
||||
|
||||
//// tab | Python 3.7+
|
||||
//// tab | Python 3.8+
|
||||
|
||||
```{ .python .annotate hl_lines="15-17 19-21 23" }
|
||||
# Code above omitted 👆
|
||||
@ -296,7 +296,7 @@ This also means that you can update several fields (attributes, columns) at once
|
||||
|
||||
////
|
||||
|
||||
//// tab | Python 3.7+
|
||||
//// tab | Python 3.8+
|
||||
|
||||
```Python
|
||||
{!./docs_src/tutorial/update/tutorial004.py!}
|
||||
|
@ -7,7 +7,7 @@ name = "sqlmodel"
|
||||
dynamic = ["version"]
|
||||
description = "SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness."
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.7"
|
||||
requires-python = ">=3.8"
|
||||
authors = [
|
||||
{ name = "Sebastián Ramírez", email = "tiangolo@gmail.com" },
|
||||
]
|
||||
@ -20,7 +20,6 @@ classifiers = [
|
||||
"Intended Audience :: System Administrators",
|
||||
"License :: OSI Approved :: MIT License",
|
||||
"Programming Language :: Python :: 3 :: Only",
|
||||
"Programming Language :: Python :: 3.7",
|
||||
"Programming Language :: Python :: 3.8",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
|
@ -11,8 +11,7 @@ pillow==11.0.0
|
||||
# For image processing by Material for MkDocs
|
||||
cairosvg==2.7.1
|
||||
# mkdocstrings[python]==0.25.1
|
||||
# Enable griffe-typingdoc once dropping Python 3.7 and upgrading typing-extensions
|
||||
# griffe-typingdoc==0.2.5
|
||||
griffe-typingdoc==0.2.5
|
||||
# For griffe, it formats with black
|
||||
typer == 0.12.3
|
||||
mkdocs-macros-plugin==1.0.5
|
||||
|
@ -7,11 +7,6 @@ ruff ==0.9.6
|
||||
# For FastAPI tests
|
||||
fastapi >=0.103.2
|
||||
httpx ==0.24.1
|
||||
# TODO: upgrade when deprecating Python 3.7
|
||||
dirty-equals ==0.6.0; python_version < "3.8"
|
||||
dirty-equals ==0.9.0; python_version >= "3.8"
|
||||
dirty-equals ==0.9.0
|
||||
jinja2 ==3.1.4
|
||||
# Pin typing-extensions until Python 3.8 is deprecated or the issue with dirty-equals
|
||||
# is fixed, maybe fixed after dropping Python 3.7 and upgrading dirty-equals
|
||||
typing-extensions ==4.6.1; python_version < "3.8"
|
||||
typing-extensions ==4.12.2; python_version >= "3.8"
|
||||
typing-extensions ==4.12.2
|
||||
|
Reference in New Issue
Block a user