Abc
Attribute dataclass
Attribute()
Bases: ABC, Printable
flowchart TD
kirin.ir.attrs.abc.Attribute[Attribute]
kirin.print.printable.Printable[Printable]
kirin.print.printable.Printable --> kirin.ir.attrs.abc.Attribute
click kirin.ir.attrs.abc.Attribute href "" "kirin.ir.attrs.abc.Attribute"
click kirin.print.printable.Printable href "" "kirin.print.printable.Printable"
ABC for compile-time values. All attributes are hashable and thus need to implement the __hash__ method.
Pretty Printing
This object is pretty printable via .print() method.
dialect class-attribute
dialect: Optional[Dialect] = field(
default=None, init=False, repr=False
)
Dialect of the attribute. (default: None)
name class-attribute
name: str = field(init=False, repr=False)
Name of the attribute in printing and other text format.
traits class-attribute
traits: frozenset[Trait[Attribute]] = field(
default=frozenset(), init=False, repr=False
)
Set of Attribute traits.
get_trait
get_trait(trait: type[TraitType]) -> Optional[TraitType]
Get the trait of the attribute.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
trait | type[Trait] | the trait to get | required |
Returns:
| Type | Description |
|---|---|
Optional[TraitType] | Optional[Trait]: the trait if found, None otherwise |
Source code in src/kirin/ir/attrs/abc.py
78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |
has_trait classmethod
has_trait(trait_type: type[Trait[Attribute]]) -> bool
Check if the Statement has a specific trait.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
trait_type | type[Trait] | The type of trait to check for. | required |
Returns:
| Name | Type | Description |
|---|---|---|
bool | bool | True if the class has the specified trait, False otherwise. |
Source code in src/kirin/ir/attrs/abc.py
61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
AttributeMeta
Bases: ABCMeta
flowchart TD
kirin.ir.attrs.abc.AttributeMeta[AttributeMeta]
click kirin.ir.attrs.abc.AttributeMeta href "" "kirin.ir.attrs.abc.AttributeMeta"
Metaclass for attributes.
LatticeAttributeMeta
Bases: LatticeMeta, AttributeMeta
flowchart TD
kirin.ir.attrs.abc.LatticeAttributeMeta[LatticeAttributeMeta]
kirin.lattice.abc.LatticeMeta[LatticeMeta]
kirin.ir.attrs.abc.AttributeMeta[AttributeMeta]
kirin.lattice.abc.LatticeMeta --> kirin.ir.attrs.abc.LatticeAttributeMeta
kirin.ir.attrs.abc.AttributeMeta --> kirin.ir.attrs.abc.LatticeAttributeMeta
click kirin.ir.attrs.abc.LatticeAttributeMeta href "" "kirin.ir.attrs.abc.LatticeAttributeMeta"
click kirin.lattice.abc.LatticeMeta href "" "kirin.lattice.abc.LatticeMeta"
click kirin.ir.attrs.abc.AttributeMeta href "" "kirin.ir.attrs.abc.AttributeMeta"
Metaclass for lattice attributes.
SingletonLatticeAttributeMeta
SingletonLatticeAttributeMeta(name, bases, attrs)
Bases: LatticeAttributeMeta, SingletonMeta
flowchart TD
kirin.ir.attrs.abc.SingletonLatticeAttributeMeta[SingletonLatticeAttributeMeta]
kirin.ir.attrs.abc.LatticeAttributeMeta[LatticeAttributeMeta]
kirin.lattice.abc.SingletonMeta[SingletonMeta]
kirin.lattice.abc.LatticeMeta[LatticeMeta]
kirin.ir.attrs.abc.AttributeMeta[AttributeMeta]
kirin.ir.attrs.abc.LatticeAttributeMeta --> kirin.ir.attrs.abc.SingletonLatticeAttributeMeta
kirin.lattice.abc.LatticeMeta --> kirin.ir.attrs.abc.LatticeAttributeMeta
kirin.ir.attrs.abc.AttributeMeta --> kirin.ir.attrs.abc.LatticeAttributeMeta
kirin.lattice.abc.SingletonMeta --> kirin.ir.attrs.abc.SingletonLatticeAttributeMeta
kirin.lattice.abc.LatticeMeta --> kirin.lattice.abc.SingletonMeta
click kirin.ir.attrs.abc.SingletonLatticeAttributeMeta href "" "kirin.ir.attrs.abc.SingletonLatticeAttributeMeta"
click kirin.ir.attrs.abc.LatticeAttributeMeta href "" "kirin.ir.attrs.abc.LatticeAttributeMeta"
click kirin.lattice.abc.SingletonMeta href "" "kirin.lattice.abc.SingletonMeta"
click kirin.lattice.abc.LatticeMeta href "" "kirin.lattice.abc.LatticeMeta"
click kirin.ir.attrs.abc.AttributeMeta href "" "kirin.ir.attrs.abc.AttributeMeta"
Metaclass for singleton lattice attributes.
Source code in src/kirin/lattice/abc.py
16 17 18 | |