mirror of
https://github.com/fastapi/sqlmodel.git
synced 2025-10-26 19:04:16 +08:00
⬆️ Add support for Python 3.14 (#1578)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
0cbf2e6049
commit
45215fceca
8
.github/workflows/test.yml
vendored
8
.github/workflows/test.yml
vendored
@ -26,9 +26,8 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
||||||
python-version: [ "3.13" ]
|
python-version: [ "3.14" ]
|
||||||
pydantic-version:
|
pydantic-version:
|
||||||
- pydantic-v1
|
|
||||||
- pydantic-v2
|
- pydantic-v2
|
||||||
include:
|
include:
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
@ -47,7 +46,10 @@ jobs:
|
|||||||
python-version: "3.12"
|
python-version: "3.12"
|
||||||
pydantic-version: pydantic-v1
|
pydantic-version: pydantic-v1
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
python-version: "3.12"
|
python-version: "3.13"
|
||||||
|
pydantic-version: pydantic-v1
|
||||||
|
- os: macos-latest
|
||||||
|
python-version: "3.13"
|
||||||
pydantic-version: pydantic-v2
|
pydantic-version: pydantic-v2
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|||||||
@ -26,6 +26,7 @@ classifiers = [
|
|||||||
"Programming Language :: Python :: 3.11",
|
"Programming Language :: Python :: 3.11",
|
||||||
"Programming Language :: Python :: 3.12",
|
"Programming Language :: Python :: 3.12",
|
||||||
"Programming Language :: Python :: 3.13",
|
"Programming Language :: Python :: 3.13",
|
||||||
|
"Programming Language :: Python :: 3.14",
|
||||||
"Topic :: Database",
|
"Topic :: Database",
|
||||||
"Topic :: Database :: Database Engines/Servers",
|
"Topic :: Database :: Database Engines/Servers",
|
||||||
"Topic :: Internet",
|
"Topic :: Internet",
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
import sys
|
||||||
import types
|
import types
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
from contextvars import ContextVar
|
from contextvars import ContextVar
|
||||||
@ -123,7 +124,20 @@ if IS_PYDANTIC_V2:
|
|||||||
object.__setattr__(new_object, "__pydantic_private__", None)
|
object.__setattr__(new_object, "__pydantic_private__", None)
|
||||||
|
|
||||||
def get_annotations(class_dict: Dict[str, Any]) -> Dict[str, Any]:
|
def get_annotations(class_dict: Dict[str, Any]) -> Dict[str, Any]:
|
||||||
return class_dict.get("__annotations__", {}) # type: ignore[no-any-return]
|
raw_annotations: Dict[str, Any] = class_dict.get("__annotations__", {})
|
||||||
|
if sys.version_info >= (3, 14) and "__annotations__" not in class_dict:
|
||||||
|
# See https://github.com/pydantic/pydantic/pull/11991
|
||||||
|
from annotationlib import (
|
||||||
|
Format,
|
||||||
|
call_annotate_function,
|
||||||
|
get_annotate_from_class_namespace,
|
||||||
|
)
|
||||||
|
|
||||||
|
if annotate := get_annotate_from_class_namespace(class_dict):
|
||||||
|
raw_annotations = call_annotate_function(
|
||||||
|
annotate, format=Format.FORWARDREF
|
||||||
|
)
|
||||||
|
return raw_annotations
|
||||||
|
|
||||||
def is_table_model_class(cls: Type[Any]) -> bool:
|
def is_table_model_class(cls: Type[Any]) -> bool:
|
||||||
config = getattr(cls, "model_config", {})
|
config = getattr(cls, "model_config", {})
|
||||||
|
|||||||
Reference in New Issue
Block a user