lumix.utils.orm.LXNumeric

class lumix.utils.orm.LXNumeric(*args, **kwargs)[source]

Structural protocol for numeric types with optimization operations.

Defines the interface for types that can be used as numeric coefficients in optimization expressions. Supports addition, multiplication, and conversion to float.

This protocol allows type-safe usage of various numeric types (int, float, Decimal, Fraction, etc.) in optimization expressions.

Examples

Standard numeric types satisfy the protocol:

x: LXNumeric = 5        # int satisfies protocol
y: LXNumeric = 3.14     # float satisfies protocol

Custom numeric types can also satisfy it:

from decimal import Decimal

z: LXNumeric = Decimal("10.5")  # Decimal satisfies protocol

Note

This is a structural Protocol. Any type with the required methods automatically satisfies it without explicit inheritance.

__init__(*args, **kwargs)

Methods

__init__(*args, **kwargs)

__init__(*args, **kwargs)