stubs/sqlalchemy/sql/functions.pyi (227 lines of code) (raw):
from datetime import date, datetime, time
from typing import (
Any,
Generic,
Iterable,
List,
Optional,
Text,
Tuple,
Type,
TypeVar,
Union,
overload,
)
from ..engine.base import Connection, Engine
from ..engine.result import ResultProxy
from . import sqltypes
from . import util as sqlutil
from .base import ColumnCollection
from .base import Executable as Executable
from .elements import AsBoolean, ClauseList
from .elements import ColumnElement as ColumnElement
from .elements import FunctionFilter, Grouping, Over, WithinGroup
from .schema import Sequence
from .selectable import Alias
from .selectable import FromClause as FromClause
from .selectable import Select
from .type_api import TypeEngine
from .visitors import VisitableType as VisitableType
_T = TypeVar("_T")
def register_function(identifier, fn, package: str = ...): ...
_FE = TypeVar("_FE", bound=FunctionElement)
class FunctionElement(Executable, ColumnElement[_T], FromClause, Generic[_T]): # type: ignore
# ColumnElement.foreign_keys() is not compatible with FromClause.foreign_keys()
packagenames: Any = ...
clause_expr: Grouping[Any] = ...
def __init__(self, *clauses: Any, **kwargs: Any) -> None: ...
# Return type of "columns" incompatible with supertype "FromClause"
@property
def columns(self) -> ColumnCollection: ... # type: ignore
@property
def clauses(self) -> ClauseList: ...
@overload
def over(
self,
partition_by: Optional[
Union[str, ColumnElement[Any], Iterable[Union[str, ColumnElement[Any]]]]
] = ...,
order_by: Optional[
Union[str, ColumnElement[Any], Iterable[Union[str, ColumnElement[Any]]]]
] = ...,
range_: Optional[Tuple[Optional[int], Optional[int]]] = ...,
) -> Over[_T]: ...
@overload
def over(
self,
partition_by: Optional[
Union[str, ColumnElement[Any], Iterable[Union[str, ColumnElement[Any]]]]
] = ...,
order_by: Optional[
Union[str, ColumnElement[Any], Iterable[Union[str, ColumnElement[Any]]]]
] = ...,
rows: Optional[Tuple[Optional[int], Optional[int]]] = ...,
) -> Over[_T]: ...
def within_group(
self,
*order_by: Union[
str, ColumnElement[Any], Iterable[Union[str, ColumnElement[Any]]]
]
) -> WithinGroup[_T]: ...
@overload
def filter(self: _FE) -> _FE: ...
@overload
def filter(self, criteria: Any, *criterion: Any) -> FunctionFilter[_T]: ...
def get_children(self, **kwargs: Any) -> Tuple[Grouping[Any]]: ...
def within_group_type(self, within_group: Any) -> Any: ...
def alias(self, name: Optional[str] = ..., flat: bool = ...) -> Alias: ...
def select(self) -> Select: ... # type: ignore # incompatible with FromClause.select
def scalar(self) -> Any: ... # type: ignore # incompatible with Executable.scalar
def execute(self) -> ResultProxy: ... # type: ignore # incompatible with Executable.execute
def self_group(
self: _FE, against: Optional[Any] = ...
) -> Union[AsBoolean, Grouping[_T], _FE]: ...
class _FunctionGenerator(object):
opts: Any = ...
def __init__(self, **opts: Any) -> None: ...
def __getattr__(self, name: str) -> Any: ...
def __call__(self, *c: Any, **kwargs: Any) -> Function[Any]: ...
func: _FunctionGenerator = ...
modifier: _FunctionGenerator = ...
class Function(FunctionElement[_T]):
__visit_name__: str = ...
packagenames: Any = ...
name: str = ...
type: TypeEngine[_T] = ...
def __init__(self, name: str, *clauses: Any, **kw: Any) -> None: ...
class _GenericMeta(VisitableType):
def __init__(cls, clsname, bases, clsdict) -> None: ...
class GenericFunction(Function[_T], metaclass=_GenericMeta):
coerce_arguments: bool = ...
packagenames: Any = ...
clause_expr: Grouping[Any] = ...
type: TypeEngine[_T] = ...
@overload
def __init__(
self,
*args: ColumnElement[Any],
bind: Optional[Union[Engine, Connection]] = ...,
type_: Type[TypeEngine[_T]]
) -> None: ...
@overload
def __init__(
self,
*args: ColumnElement[Any],
bind: Optional[Union[Engine, Connection]] = ...,
type_: TypeEngine[_T]
) -> None: ...
@overload
def __init__(
self,
*args: Union[_T, ColumnElement[_T]],
bind: Optional[Union[Engine, Connection]] = ...
) -> None: ...
@overload
def __init__(
self,
*,
_parsed_args: List[ColumnElement[Any]],
bind: Optional[Union[Engine, Connection]] = ...,
type_: Type[TypeEngine[_T]]
) -> None: ...
@overload
def __init__(
self,
*,
_parsed_args: List[ColumnElement[Any]],
bind: Optional[Union[Engine, Connection]] = ...,
type_: TypeEngine[_T]
) -> None: ...
@overload
def __init__(
self,
*,
_parsed_args: List[ColumnElement[_T]],
bind: Optional[Union[Engine, Connection]] = ...
) -> None: ...
class next_value(GenericFunction[_T]):
type: TypeEngine[_T] = ...
name: str = ...
sequence: Sequence[_T] = ...
def __init__(self, seq: Sequence[_T], **kw) -> None: ...
class AnsiFunction(GenericFunction[_T]):
def __init__(self, **kwargs) -> None: ...
class ReturnTypeFromArgs(GenericFunction[_T]):
def __init__(self, *args, **kwargs) -> None: ...
class coalesce(ReturnTypeFromArgs[Any]): ...
class max(ReturnTypeFromArgs[Any]): ...
class min(ReturnTypeFromArgs[Any]): ...
class sum(ReturnTypeFromArgs[Any]): ...
class now(GenericFunction[datetime]): ...
class concat(GenericFunction[Optional[Text]]): ...
class char_length(GenericFunction[int]): ...
class random(GenericFunction[_T]): ...
class count(GenericFunction[int]):
def __init__(self, expression: Optional[Any] = ..., **kwargs: Any) -> None: ...
class current_date(AnsiFunction[date]): ...
class current_time(AnsiFunction[time]): ...
class current_timestamp(AnsiFunction[datetime]): ...
class current_user(AnsiFunction[Text]): ...
class localtime(AnsiFunction[datetime]): ...
class localtimestamp(AnsiFunction[datetime]): ...
class session_user(AnsiFunction[Text]): ...
class sysdate(AnsiFunction[datetime]): ...
class user(AnsiFunction[Text]): ...
class array_agg(GenericFunction[List[_T]], Generic[_T]):
@overload
def __init__(
self,
*args: ColumnElement[Any],
bind: Optional[Union[Engine, Connection]] = ...,
type_: Type[TypeEngine[_T]]
) -> None: ...
@overload
def __init__(
self,
*args: ColumnElement[Any],
bind: Optional[Union[Engine, Connection]] = ...,
type_: TypeEngine[_T]
) -> None: ...
@overload
def __init__(
self, *args: ColumnElement[_T], bind: Optional[Union[Engine, Connection]] = ...
) -> None: ...
@overload
def __init__(
self,
*args: ColumnElement[Any],
bind: Optional[Union[Engine, Connection]] = ...,
type_: Type[TypeEngine[_T]],
_default_array_type: Type[TypeEngine[Any]]
) -> None: ...
@overload
def __init__(
self,
*args: ColumnElement[Any],
bind: Optional[Union[Engine, Connection]] = ...,
type_: TypeEngine[_T],
_default_array_type: Type[TypeEngine[Any]]
) -> None: ...
@overload
def __init__(
self,
*args: ColumnElement[_T],
bind: Optional[Union[Engine, Connection]] = ...,
_default_array_type: Type[TypeEngine[Any]]
) -> None: ...
class OrderedSetAgg(GenericFunction[_T]):
array_for_multi_clause: bool = ...
def within_group_type(
self, within_group: WithinGroup[_T]
) -> Union[TypeEngine[_T], sqltypes.ARRAY[_T]]: ...
class mode(OrderedSetAgg[_T]):
def within_group_type(self, within_group: WithinGroup[_T]) -> TypeEngine[_T]: ...
class percentile_cont(OrderedSetAgg[Any]): ...
class percentile_disc(OrderedSetAgg[Any]): ...
class rank(GenericFunction[int]): ...
class dense_rank(GenericFunction[int]): ...
class percent_rank(GenericFunction[float]): ...
class cume_dist(GenericFunction[float]): ...