AnyNumber
AnyNumber(super_type: Concept)Represent the family of decimal Number(precision, scale) types.
This class is used to create and reuse concrete number concepts via
AnyNumber.size. Most users interact with the module-level instance semantics.frontend.core.Number
(and aliases like semantics.frontend.core.Integer) rather than instantiating AnyNumber directly.
Parameters
Section titled “Parameters”
(super_typeConcept) - The numeric super type this number family extends.
Methods
Section titled “Methods”.size()
Section titled “.size()”AnyNumber.size(precision: int, scale: int) -> NumberConceptReturn the concrete Number(precision, scale) concept.
This method caches number concepts, so repeated calls with the same
precision and scale return the same object.
Parameters:
(precisionint) - Total number of digits.
(scaleint) - Number of digits after the decimal point.
Returns:
NumberConcept- The corresponding number concept (for exampleNumber.size(38, 0)).
Examples:
Get a concrete numeric type using semantics.frontend.core.Number:
>>> from relationalai.semantics.frontend.core import Number>>> Number.size(38, 14)Number(38,14)Calls are cached and common aliases refer to the same concept:
>>> from relationalai.semantics.frontend.core import Integer>>> Number.size(38, 0) is IntegerTrue>>> Number.size(12, 2) is Number.size(12, 2)True.parse()
Section titled “.parse()”AnyNumber.parse(type_str: str) -> NumberConceptParse numeric type strings into a NumberConcept.
This accepts type strings of the form "Number(precision, scale)" (or "Decimal(precision, scale)")
and returns the cached concept created by AnyNumber.size.
Parameters:
(type_strstr) - A type name likeNumber(38, 14).
Returns:
NumberConcept- The corresponding number concept.
Raises:
ValueError- Iftype_stris not a validNumber(precision, scale)orDecimal(precision, scale).
Examples:
Parse a concrete numeric type name using semantics.frontend.core.Number:
>>> from relationalai.semantics.frontend.core import Number>>> Number.parse("Number(38, 14)")Number(38,14)Decimal is accepted as an alias for Number:
>>> from relationalai.semantics.frontend.core import Integer>>> Number.parse("Decimal(38, 0)") is IntegerTrue