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¶
Defines structural patterns for a framework to guide generic rewriters. |
|
!!! abstract "Usage Documentation" |
|
Configuration for a framework's structural behavior. |
|
Declarative rule for conditional logic within a variant. |
|
Defines how a specific framework implements an abstract operation. |
|
Definition of an Abstract Operation standard. |
|
Schema representing an entire semantics JSON file. |
Module Contents¶
- class ml_switcheroo.semantics.schema.StructuralTraits(/, **data: Any)¶
Bases:
pydantic.BaseModelDefines 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.BaseModelConfiguration 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.BaseModelDeclarative 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.BaseModelDefines 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¶
- transformation_type: str | None = None¶
- operator: str | None = None¶
- output_adapter: str | None = None¶
- class ml_switcheroo.semantics.schema.OpDefinition(/, **data: Any)¶
Bases:
pydantic.BaseModelDefinition 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¶
- class ml_switcheroo.semantics.schema.SemanticsFile(/, **data: Any)¶
Bases:
pydantic.BaseModelSchema 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¶