- "3.10"
- "3.11"
- "3.12"
+ - "3.13"
pydantic-version:
- pydantic-v1
- pydantic-v2
run: uv pip install --upgrade "pydantic>=1.10.0,<2.0.0"
- name: Install Pydantic v2
if: matrix.pydantic-version == 'pydantic-v2'
- run: uv pip install --upgrade "pydantic>=2.0.2,<3.0.0" "typing-extensions==4.6.1"
+ 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'
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
- python-version: '3.12'
+ python-version: '3.13'
- name: Setup uv
uses: astral-sh/setup-uv@v5
with:
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Programming Language :: Python :: 3.13",
"Topic :: Database",
"Topic :: Database :: Database Engines/Servers",
"Topic :: Internet",
fastapi >=0.103.2
httpx ==0.24.1
# TODO: upgrade when deprecating Python 3.7
-dirty-equals ==0.6.0
+dirty-equals ==0.6.0; python_version < "3.8"
+dirty-equals ==0.9.0; python_version >= "3.8"
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
+typing-extensions ==4.6.1; python_version < "3.8"
+typing-extensions ==4.12.2; python_version >= "3.8"
IncEx: TypeAlias = Union[
Set[int],
Set[str],
- Mapping[int, Union["IncEx", Literal[True]]],
- Mapping[str, Union["IncEx", Literal[True]]],
+ Mapping[int, Union["IncEx", bool]],
+ Mapping[str, Union["IncEx", bool]],
]
OnDeleteType = Literal["CASCADE", "SET NULL", "RESTRICT"]
class SQLModelMetaclass(ModelMetaclass, DeclarativeMeta):
__sqlmodel_relationships__: Dict[str, RelationshipInfo]
model_config: SQLModelConfig
- model_fields: Dict[str, FieldInfo]
+ model_fields: Dict[str, FieldInfo] # type: ignore[assignment]
__config__: Type[SQLModelConfig]
__fields__: Dict[str, ModelField] # type: ignore[assignment]