From aa329b248b312d1d043a798e5d837347c651d66b Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Thu, 23 Dec 2021 11:37:02 +0100 Subject: [PATCH] Add execution_options to Session.get() (#6656) Co-authored-by: Jelle Zijlstra --- stubs/SQLAlchemy/sqlalchemy/orm/decl_api.pyi | 40 ++++++++++---------- stubs/SQLAlchemy/sqlalchemy/orm/scoping.pyi | 1 + stubs/SQLAlchemy/sqlalchemy/orm/session.pyi | 1 + 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/stubs/SQLAlchemy/sqlalchemy/orm/decl_api.pyi b/stubs/SQLAlchemy/sqlalchemy/orm/decl_api.pyi index c62611662..482f4d3fc 100644 --- a/stubs/SQLAlchemy/sqlalchemy/orm/decl_api.pyi +++ b/stubs/SQLAlchemy/sqlalchemy/orm/decl_api.pyi @@ -1,13 +1,13 @@ from collections.abc import Callable -from typing import Any, ClassVar, Type, TypeVar, overload +from typing import Any, ClassVar, TypeVar, overload from ..engine.interfaces import Connectable from ..sql.schema import MetaData from ..util import hybridproperty from . import interfaces -_ClsT = TypeVar("_ClsT", bound=Type[Any]) -_DeclT = TypeVar("_DeclT", bound=Type[_DeclarativeBase]) +_ClsT = TypeVar("_ClsT", bound=type[Any]) +_DeclT = TypeVar("_DeclT", bound=type[_DeclarativeBase]) # Dynamic class as created by registry.generate_base() via DeclarativeMeta # or another metaclass. This class does not exist at runtime. @@ -21,12 +21,12 @@ class _DeclarativeBase(Any): # super classes are dynamic __class_getitem__: ClassVar[Any] # Meta class (or function) that creates a _DeclarativeBase class. -_DeclarativeBaseMeta = Callable[[str, tuple[Type[Any], ...], dict[str, Any]], _DeclT] +_DeclarativeBaseMeta = Callable[[str, tuple[type[Any], ...], dict[str, Any]], _DeclT] -def has_inherited_table(cls: Type[Any]) -> bool: ... +def has_inherited_table(cls: type[Any]) -> bool: ... class DeclarativeMeta(type): - def __init__(cls, classname: str, bases: tuple[Type[Any], ...], dict_: dict[str, Any], **kw: object) -> None: ... + def __init__(cls, classname: str, bases: tuple[type[Any], ...], dict_: dict[str, Any], **kw: object) -> None: ... def __setattr__(cls, key: str, value: Any) -> None: ... def __delattr__(cls, key: str) -> None: ... @@ -49,20 +49,20 @@ def declarative_base( bind: Connectable | None = ..., metadata: MetaData | None = ..., mapper: Any | None = ..., - cls: Type[Any] | tuple[Type[Any], ...] = ..., + cls: type[Any] | tuple[type[Any], ...] = ..., name: str = ..., constructor: Callable[..., None] = ..., - class_registry: dict[str, Type[Any]] | None = ..., -) -> Type[_DeclarativeBase]: ... + class_registry: dict[str, type[Any]] | None = ..., +) -> type[_DeclarativeBase]: ... @overload def declarative_base( bind: Connectable | None = ..., metadata: MetaData | None = ..., mapper: Any | None = ..., - cls: Type[Any] | tuple[Type[Any], ...] = ..., + cls: type[Any] | tuple[type[Any], ...] = ..., name: str = ..., constructor: Callable[..., None] = ..., - class_registry: dict[str, Type[Any]] | None = ..., + class_registry: dict[str, type[Any]] | None = ..., *, metaclass: _DeclarativeBaseMeta[_DeclT], ) -> _DeclT: ... @@ -71,10 +71,10 @@ def declarative_base( bind: Connectable | None, metadata: MetaData | None, mapper: Any | None, - cls: Type[Any] | tuple[Type[Any], ...], + cls: type[Any] | tuple[type[Any], ...], name: str, constructor: Callable[..., None], - class_registry: dict[str, Type[Any]] | None, + class_registry: dict[str, type[Any]] | None, metaclass: _DeclarativeBaseMeta[_DeclT], ) -> _DeclT: ... @@ -84,7 +84,7 @@ class registry: def __init__( self, metadata: MetaData | None = ..., - class_registry: dict[str, Type[Any]] | None = ..., + class_registry: dict[str, type[Any]] | None = ..., constructor: Callable[..., None] = ..., _bind: Connectable | None = ..., ) -> None: ... @@ -94,21 +94,21 @@ class registry: def dispose(self, cascade: bool = ...) -> None: ... @overload def generate_base( - self, mapper: Any | None = ..., cls: Type[Any] | tuple[Type[Any], ...] = ..., name: str = ... - ) -> Type[_DeclarativeBase]: ... + self, mapper: Any | None = ..., cls: type[Any] | tuple[type[Any], ...] = ..., name: str = ... + ) -> type[_DeclarativeBase]: ... @overload def generate_base( self, mapper: Any | None = ..., - cls: Type[Any] | tuple[Type[Any], ...] = ..., + cls: type[Any] | tuple[type[Any], ...] = ..., name: str = ..., *, metaclass: _DeclarativeBaseMeta[_DeclT], ) -> _DeclT: ... @overload def generate_base( - self, mapper: Any | None, cls: Type[Any] | tuple[Type[Any], ...], name: str, metaclass: _DeclarativeBaseMeta[_DeclT] - ) -> Type[_DeclarativeBase]: ... + self, mapper: Any | None, cls: type[Any] | tuple[type[Any], ...], name: str, metaclass: _DeclarativeBaseMeta[_DeclT] + ) -> type[_DeclarativeBase]: ... def mapped(self, cls: _ClsT) -> _ClsT: ... # Return type of the callable is a _DeclarativeBase class with the passed in class as base. # This could be better approximated with Intersection[PassedInClass, _DeclarativeBase]. @@ -122,7 +122,7 @@ def as_declarative( *, bind: Connectable | None = ..., metadata: MetaData | None = ..., - class_registry: dict[str, Type[Any]] | None = ..., + class_registry: dict[str, type[Any]] | None = ..., mapper: Any | None = ..., metaclass: _DeclarativeBaseMeta[_DeclT] = ..., ) -> Callable[[_ClsT], _ClsT | _DeclT | Any]: ... diff --git a/stubs/SQLAlchemy/sqlalchemy/orm/scoping.pyi b/stubs/SQLAlchemy/sqlalchemy/orm/scoping.pyi index 23985d766..7d739982b 100644 --- a/stubs/SQLAlchemy/sqlalchemy/orm/scoping.pyi +++ b/stubs/SQLAlchemy/sqlalchemy/orm/scoping.pyi @@ -70,6 +70,7 @@ class scoped_session(ScopedSessionMixin): populate_existing: bool = ..., with_for_update: Any | None = ..., identity_token: Any | None = ..., + execution_options: Any | None = ..., ): ... def get_bind( self, diff --git a/stubs/SQLAlchemy/sqlalchemy/orm/session.pyi b/stubs/SQLAlchemy/sqlalchemy/orm/session.pyi index 58e14f06a..bb7477e07 100644 --- a/stubs/SQLAlchemy/sqlalchemy/orm/session.pyi +++ b/stubs/SQLAlchemy/sqlalchemy/orm/session.pyi @@ -157,6 +157,7 @@ class Session(_SessionClassMethods): populate_existing: bool = ..., with_for_update: Any | None = ..., identity_token: Any | None = ..., + execution_options: Any | None = ..., ): ... def merge(self, instance, load: bool = ..., options: Any | None = ...): ... def enable_relationship_loading(self, obj) -> None: ...