ml_switcheroo.semantics.schema

Pydantic Schemas for Semantic Knowledge Base.

This module defines the data structure of the JSON mapping files (k_array_api.json, etc.) and the Framework Configuration blocks.

Updated to support richer Argument Definitions (Dictionaries with constraints) in std_args and Conditional Dispatch Rules.

Classes

StructuralTraits

Defines structural patterns for a framework to guide generic rewriters.

FrameworkAlias

!!! abstract "Usage Documentation"

FrameworkTraits

Configuration for a framework's structural behavior.

Rule

Declarative rule for conditional logic within a variant.

Variant

Defines how a specific framework implements an abstract operation.

OpDefinition

Definition of an Abstract Operation standard.

SemanticsFile

Schema representing an entire semantics JSON file.

Module Contents

class ml_switcheroo.semantics.schema.StructuralTraits(/, **data: Any)

Bases: pydantic.BaseModel

Defines structural patterns for a framework to guide generic rewriters. This allows adding new frameworks (like MLX, TinyGrad) without editing python code.

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

module_base: str | None = None
forward_method: str | None = None
requires_super_init: bool = None
init_method_name: str | None = None
inject_magic_args: List[Tuple[str, str | None]] = None
strip_magic_args: List[str] = None
lifecycle_strip_methods: List[str] = None
lifecycle_warn_methods: List[str] = None
impurity_methods: List[str] = None
jit_static_args: List[str] = None
class ml_switcheroo.semantics.schema.FrameworkAlias(/, **data: Any)

Bases: pydantic.BaseModel

!!! abstract “Usage Documentation”

[Models](../concepts/models.md)

A base class for creating Pydantic models.

__class_vars__

The names of the class variables defined on the model.

__private_attributes__

Metadata about the private attributes of the model.

__signature__

The synthesized __init__ [Signature][inspect.Signature] of the model.

__pydantic_complete__

Whether model building is completed, or if there are still undefined fields.

__pydantic_core_schema__

The core schema of the model.

__pydantic_custom_init__

Whether the model has a custom __init__ function.

__pydantic_decorators__

Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.

__pydantic_generic_metadata__

Metadata for generic models; contains data used for a similar purpose to __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.

__pydantic_parent_namespace__

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__

The name of the post-init method for the model, if defined.

__pydantic_root_model__

Whether the model is a [RootModel][pydantic.root_model.RootModel].

__pydantic_serializer__

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_validator__

The pydantic-core SchemaValidator used to validate instances of the model.

__pydantic_fields__

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.

__pydantic_computed_fields__

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_extra__

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to ‘allow’.

__pydantic_fields_set__

The names of fields explicitly set during instantiation.

__pydantic_private__

Values of private attributes set on the model instance.

module: str
name: str
class ml_switcheroo.semantics.schema.FrameworkTraits(/, **data: Any)

Bases: pydantic.BaseModel

Configuration for a framework’s structural behavior.

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

extends: str | None = None
alias: FrameworkAlias | None = None
stateful_call: Dict[str, str] | None = None
tiers: List[ml_switcheroo.enums.SemanticTier] | None = None
traits: StructuralTraits | None = None
class ml_switcheroo.semantics.schema.Rule(/, **data: Any)

Bases: pydantic.BaseModel

Declarative rule for conditional logic within a variant. Evaluated at runtime to dynamically switch APIs.

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

if_arg: str = None
op: ml_switcheroo.enums.LogicOp = None
is_val: str | int | float | bool | List[str | int | float] = None
use_api: str = None
class ml_switcheroo.semantics.schema.Variant(/, **data: Any)

Bases: pydantic.BaseModel

Defines how a specific framework implements an abstract operation.

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

api: str | None = None
args: Dict[str, str] | None = None
requires_plugin: str | None = None
dispatch_rules: List[Rule] = None
transformation_type: str | None = None
operator: str | None = None
output_adapter: str | None = None
class ml_switcheroo.semantics.schema.OpDefinition(/, **data: Any)

Bases: pydantic.BaseModel

Definition of an Abstract Operation standard.

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

description: str | None = None
from_file: str | None = None
std_args: List[str | Tuple[str, str] | Dict[str, Any]] = None
variants: Dict[str, Variant | None] = None
class ml_switcheroo.semantics.schema.SemanticsFile(/, **data: Any)

Bases: pydantic.BaseModel

Schema representing an entire semantics JSON file.

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

frameworks: Dict[str, FrameworkTraits] | None = None
imports: Dict[str, Any] | None = None