MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _handle_int

Method _handle_int

lib/sqlalchemy/sql/elements.py:4699–4725  ·  view source on GitHub ↗
(
        cls, value: Any | None, coerce_int: bool
    )

Source from the content-addressed store, hash-verified

4697
4698 @classmethod
4699 def _handle_int(
4700 cls, value: Any | None, coerce_int: bool
4701 ) -> tuple[int | None, FrameClauseType]:
4702 if value is None:
4703 return None, FrameClauseType.UNBOUNDED
4704
4705 if coerce_int:
4706 try:
4707 integer = int(value)
4708 except ValueError as err:
4709 raise exc.ArgumentError(
4710 "Integer or None expected for values in rows/groups frame"
4711 ) from err
4712 elif not isinstance(value, int):
4713 raise exc.ArgumentError(
4714 "When using a tuple to specify a range only integer or none "
4715 "values are allowed in the range frame. To specify a "
4716 "different type use the FrameClause directly."
4717 )
4718 else:
4719 integer = value
4720 if integer == 0:
4721 return None, FrameClauseType.CURRENT
4722 elif integer < 0:
4723 return abs(integer), FrameClauseType.PRECEDING
4724 else:
4725 return integer, FrameClauseType.FOLLOWING
4726
4727 @classmethod
4728 def _parse(

Callers 1

_parseMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected