Skip to content

xnano.core.interface

xnano.core.interface

xnano.core.interface


Track dirty state for named fields shared by grids and hosts.

Classes:

AbstractInterface

Provide per-instance state for declared grid fields.

Example

grid.grid_get_field_state("status")

Attributes:

  • _grid_field_states (dict[str, FieldState]) –

    Mutable field state keyed by declared name.

Methods:

grid_get_field_state

grid_get_field_state(name: str) -> FieldState | None

Return tracked state for a field.

Parameters:

  • name (str) –

    Field attribute name.

Returns:

  • FieldState | None

    Its state, or None for an unknown field.

Source code in xnano/core/interface.py
def grid_get_field_state(self, name: str) -> FieldState | None:
    """Return tracked state for a field.

    Args:
        name: Field attribute name.

    Returns:
        Its state, or ``None`` for an unknown field.
    """
    return getattr(self, "_grid_field_states", {}).get(name)

grid_mark_field_dirty

grid_mark_field_dirty(name: str) -> None

Mark a field as changed.

Parameters:

  • name (str) –

    Field attribute name.

Source code in xnano/core/interface.py
def grid_mark_field_dirty(self, name: str) -> None:
    """Mark a field as changed.

    Args:
        name: Field attribute name.
    """
    state = self.grid_get_field_state(name)
    if state is not None:
        state.mark_dirty()
        state.value = getattr(self, name, None)

get_field_state

get_field_state(name: str) -> FieldState | None

Deprecated alias for grid_get_field_state.

Source code in xnano/core/interface.py
@warn_renamed_attribute(
    "AbstractInterface.get_field_state",
    "AbstractInterface.grid_get_field_state",
)
def get_field_state(self, name: str) -> FieldState | None:
    """Deprecated alias for ``grid_get_field_state``."""
    return self.grid_get_field_state(name)

mark_field_dirty

mark_field_dirty(name: str) -> None

Deprecated alias for grid_mark_field_dirty.

Source code in xnano/core/interface.py
@warn_renamed_attribute(
    "AbstractInterface.mark_field_dirty",
    "AbstractInterface.grid_mark_field_dirty",
)
def mark_field_dirty(self, name: str) -> None:
    """Deprecated alias for ``grid_mark_field_dirty``."""
    self.grid_mark_field_dirty(name)