Skip to content

tracker

django_spire.contrib.sync.database.tracker

FieldUpdateTracker

Source code in django_spire/contrib/sync/database/tracker.py
def __init__(self) -> None:
    self._original: dict[str, Any] = {}

get_dirty

Source code in django_spire/contrib/sync/database/tracker.py
def get_dirty(self, current: dict[str, Any]) -> set[str]:
    dirty: set[str] = set()

    for key, value in current.items():
        if key not in self._original or self._original[key] != value:
            dirty.add(key)

    return dirty

snapshot

Source code in django_spire/contrib/sync/database/tracker.py
def snapshot(self, fields: dict[str, Any]) -> None:
    self._original = {
        key: copy.deepcopy(value) if isinstance(value, _MUTABLE_TYPES) else value
        for key, value in fields.items()
    }