from sqlalchemy.orm.instrumentation import is_instrumented
from sqlalchemy.sql.schema import MetaData
from sqlalchemy.sql.sqltypes import LargeBinary, Time, Uuid
-from typing_extensions import Literal, deprecated, get_origin
+from typing_extensions import Literal, TypeAlias, deprecated, get_origin
from ._compat import ( # type: ignore[attr-defined]
IS_PYDANTIC_V2,
_T = TypeVar("_T")
NoArgAnyCallable = Callable[[], Any]
-IncEx = Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None]
+IncEx: TypeAlias = Union[
+ Set[int],
+ Set[str],
+ Mapping[int, Union["IncEx", Literal[True]]],
+ Mapping[str, Union["IncEx", Literal[True]]],
+]
OnDeleteType = Literal["CASCADE", "SET NULL", "RESTRICT"]
self,
*,
mode: Union[Literal["json", "python"], str] = "python",
- include: IncEx = None,
- exclude: IncEx = None,
+ include: Union[IncEx, None] = None,
+ exclude: Union[IncEx, None] = None,
context: Union[Dict[str, Any], None] = None,
by_alias: bool = False,
exclude_unset: bool = False,
def dict(
self,
*,
- include: IncEx = None,
- exclude: IncEx = None,
+ include: Union[IncEx, None] = None,
+ exclude: Union[IncEx, None] = None,
by_alias: bool = False,
exclude_unset: bool = False,
exclude_defaults: bool = False,