main commit
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-10-16 16:30:25 +09:00
parent 91c7e04474
commit 537e7b363f
1146 changed files with 45926 additions and 77196 deletions

View File

@@ -1,11 +1,14 @@
# sql/visitors.py
# Copyright (C) 2005-2025 the SQLAlchemy authors and contributors
# Copyright (C) 2005-2023 the SQLAlchemy authors and contributors
# <see AUTHORS file>
#
# This module is part of SQLAlchemy and is released under
# the MIT License: https://www.opensource.org/licenses/mit-license.php
"""Visitor/traversal interface and library functions."""
"""Visitor/traversal interface and library functions.
"""
from __future__ import annotations
@@ -69,7 +72,8 @@ __all__ = [
class _CompilerDispatchType(Protocol):
def __call__(_self, self: Visitable, visitor: Any, **kw: Any) -> Any: ...
def __call__(_self, self: Visitable, visitor: Any, **kw: Any) -> Any:
...
class Visitable:
@@ -96,7 +100,8 @@ class Visitable:
if typing.TYPE_CHECKING:
def _compiler_dispatch(self, visitor: Any, **kw: Any) -> str: ...
def _compiler_dispatch(self, visitor: Any, **kw: Any) -> str:
...
def __init_subclass__(cls) -> None:
if "__visit_name__" in cls.__dict__:
@@ -488,7 +493,8 @@ class HasTraverseInternals:
class _InternalTraversalDispatchType(Protocol):
def __call__(s, self: object, visitor: HasTraversalDispatch) -> Any: ...
def __call__(s, self: object, visitor: HasTraversalDispatch) -> Any:
...
class HasTraversalDispatch:
@@ -596,11 +602,13 @@ class ExternallyTraversible(HasTraverseInternals, Visitable):
if typing.TYPE_CHECKING:
def _annotate(self, values: _AnnotationDict) -> Self: ...
def _annotate(self, values: _AnnotationDict) -> Self:
...
def get_children(
self, *, omit_attrs: Tuple[str, ...] = (), **kw: Any
) -> Iterable[ExternallyTraversible]: ...
) -> Iterable[ExternallyTraversible]:
...
def _clone(self, **kw: Any) -> Self:
"""clone this element"""
@@ -630,11 +638,13 @@ _TraverseCallableType = Callable[[_ET], None]
class _CloneCallableType(Protocol):
def __call__(self, element: _ET, **kw: Any) -> _ET: ...
def __call__(self, element: _ET, **kw: Any) -> _ET:
...
class _TraverseTransformCallableType(Protocol[_ET]):
def __call__(self, element: _ET, **kw: Any) -> Optional[_ET]: ...
def __call__(self, element: _ET, **kw: Any) -> Optional[_ET]:
...
_ExtT = TypeVar("_ExtT", bound="ExternalTraversal")
@@ -670,12 +680,12 @@ class ExternalTraversal(util.MemoizedSlots):
return iterate(obj, self.__traverse_options__)
@overload
def traverse(self, obj: Literal[None]) -> None: ...
def traverse(self, obj: Literal[None]) -> None:
...
@overload
def traverse(
self, obj: ExternallyTraversible
) -> ExternallyTraversible: ...
def traverse(self, obj: ExternallyTraversible) -> ExternallyTraversible:
...
def traverse(
self, obj: Optional[ExternallyTraversible]
@@ -736,12 +746,12 @@ class CloningExternalTraversal(ExternalTraversal):
return [self.traverse(x) for x in list_]
@overload
def traverse(self, obj: Literal[None]) -> None: ...
def traverse(self, obj: Literal[None]) -> None:
...
@overload
def traverse(
self, obj: ExternallyTraversible
) -> ExternallyTraversible: ...
def traverse(self, obj: ExternallyTraversible) -> ExternallyTraversible:
...
def traverse(
self, obj: Optional[ExternallyTraversible]
@@ -776,12 +786,12 @@ class ReplacingExternalTraversal(CloningExternalTraversal):
return None
@overload
def traverse(self, obj: Literal[None]) -> None: ...
def traverse(self, obj: Literal[None]) -> None:
...
@overload
def traverse(
self, obj: ExternallyTraversible
) -> ExternallyTraversible: ...
def traverse(self, obj: ExternallyTraversible) -> ExternallyTraversible:
...
def traverse(
self, obj: Optional[ExternallyTraversible]
@@ -856,7 +866,8 @@ def traverse_using(
iterator: Iterable[ExternallyTraversible],
obj: Literal[None],
visitors: Mapping[str, _TraverseCallableType[Any]],
) -> None: ...
) -> None:
...
@overload
@@ -864,7 +875,8 @@ def traverse_using(
iterator: Iterable[ExternallyTraversible],
obj: ExternallyTraversible,
visitors: Mapping[str, _TraverseCallableType[Any]],
) -> ExternallyTraversible: ...
) -> ExternallyTraversible:
...
def traverse_using(
@@ -908,7 +920,8 @@ def traverse(
obj: Literal[None],
opts: Mapping[str, Any],
visitors: Mapping[str, _TraverseCallableType[Any]],
) -> None: ...
) -> None:
...
@overload
@@ -916,7 +929,8 @@ def traverse(
obj: ExternallyTraversible,
opts: Mapping[str, Any],
visitors: Mapping[str, _TraverseCallableType[Any]],
) -> ExternallyTraversible: ...
) -> ExternallyTraversible:
...
def traverse(
@@ -931,13 +945,11 @@ def traverse(
from sqlalchemy.sql import visitors
stmt = select(some_table).where(some_table.c.foo == "bar")
stmt = select(some_table).where(some_table.c.foo == 'bar')
def visit_bindparam(bind_param):
print("found bound value: %s" % bind_param.value)
visitors.traverse(stmt, {}, {"bindparam": visit_bindparam})
The iteration of objects uses the :func:`.visitors.iterate` function,
@@ -963,7 +975,8 @@ def cloned_traverse(
obj: Literal[None],
opts: Mapping[str, Any],
visitors: Mapping[str, _TraverseCallableType[Any]],
) -> None: ...
) -> None:
...
# a bit of controversy here, as the clone of the lead element
@@ -975,7 +988,8 @@ def cloned_traverse(
obj: _ET,
opts: Mapping[str, Any],
visitors: Mapping[str, _TraverseCallableType[Any]],
) -> _ET: ...
) -> _ET:
...
def cloned_traverse(
@@ -1074,7 +1088,8 @@ def replacement_traverse(
obj: Literal[None],
opts: Mapping[str, Any],
replace: _TraverseTransformCallableType[Any],
) -> None: ...
) -> None:
...
@overload
@@ -1082,7 +1097,8 @@ def replacement_traverse(
obj: _CE,
opts: Mapping[str, Any],
replace: _TraverseTransformCallableType[Any],
) -> _CE: ...
) -> _CE:
...
@overload
@@ -1090,7 +1106,8 @@ def replacement_traverse(
obj: ExternallyTraversible,
opts: Mapping[str, Any],
replace: _TraverseTransformCallableType[Any],
) -> ExternallyTraversible: ...
) -> ExternallyTraversible:
...
def replacement_traverse(