Usage Module

Usage and ResultBase classes for unified API responses.

All API calls return ResultBase subclasses that include usage statistics.

class lexilux.usage.Usage(*, input_tokens=None, output_tokens=None, total_tokens=None, details=None)[source]

Bases: object

Unified usage statistics (aligned with OpenAI completion/chat.completions usage semantics).

All fields are optional to handle cases where the server doesn’t provide usage information. The details field allows for extensibility (e.g., cached_tokens, reasoning_tokens).

input_tokens

Number of input tokens (optional).

output_tokens

Number of output tokens (optional).

total_tokens

Total number of tokens (optional).

details

Additional usage details as a dictionary (optional).

Examples

>>> usage = Usage(input_tokens=10, output_tokens=20, total_tokens=30)
>>> print(usage.total_tokens)
30
>>> usage = Usage()  # Empty usage (server didn't provide)
>>> print(usage.total_tokens)
None
__init__(*, input_tokens=None, output_tokens=None, total_tokens=None, details=None)[source]

Initialize Usage object.

Parameters:
  • input_tokens (int | None) – Number of input tokens.

  • output_tokens (int | None) – Number of output tokens.

  • total_tokens (int | None) – Total number of tokens.

  • details (dict[str, Any] | None) – Additional usage details dictionary.

__repr__()[source]

Return string representation of Usage.

__eq__(other)[source]

Check equality with another Usage object.

class lexilux.usage.ResultBase(*, usage, raw=None)[source]

Bases: object

Base class for all API results.

All API calls return ResultBase subclasses, ensuring that result.usage is always available. The raw field stores the original API response for advanced use cases.

usage

Usage statistics object.

raw

Raw API response as a dictionary (optional).

Examples

>>> result = ChatResult(text="Hello", usage=Usage(total_tokens=10))
>>> print(result.usage.total_tokens)
10
>>> print(result.raw)  # Access raw response if needed
{}
__init__(*, usage, raw=None)[source]

Initialize ResultBase object.

Parameters:
  • usage (Usage) – Usage statistics object.

  • raw (dict[str, Any] | None) – Raw API response dictionary.

__repr__()[source]

Return string representation of ResultBase.