aiaccel.torch.pipelines.reorder_fields

aiaccel.torch.pipelines.reorder_fields(cls: Any, fields: list[Attribute]) list[Attribute][source]

Reorder attrs fields such that fields without default values come first, then fields with default values. They are further ordered such that fields defined in the class come before inherited fields.

Basic usage:

import attrs
from aiaccel.torch.pipelines import reorder_fields


@attrs.define(field_transformer=reorder_fields)
class MyPipeline(BasePipeline):
    required_field: int
    optional_field: str = "default"