Source code for anza.models.manifest
"""Template digests."""
from dataclasses import dataclass, field
from typing import Optional
[docs]
@dataclass
class Manifest:
"""Template names mapped to the SHA-256 digest of their source.
Build one with :meth:`CacheStore.manifest() <anza.CacheStore.manifest>`
to compare template versions across servers or deployments.
Example:
>>> from anza import Manifest
>>> m = Manifest()
>>> m.insert("feed/card.html", "ab12")
>>> m.get("feed/card.html"), m.get("other.html")
('ab12', None)
"""
#: Lowercase-hex SHA-256 digests by template name.
templates: dict[str, str] = field(default_factory=dict)
[docs]
def insert(self, name: str, digest: str) -> None:
"""Record the digest of the template called ``name``."""
self.templates[name] = digest
[docs]
def get(self, name: str) -> Optional[str]:
"""The digest of the template called ``name``, or ``None``."""
return self.templates.get(name)