Source code for system.loggerd.xattr_cache

import os
import errno

_cached_attributes: dict[tuple, bytes | None] = {}

[docs] def getxattr(path: str, attr_name: str) -> bytes | None: key = (path, attr_name) if key not in _cached_attributes: try: response = os.getxattr(path, attr_name) except OSError as e: # ENODATA means attribute hasn't been set if e.errno == errno.ENODATA: response = None else: raise _cached_attributes[key] = response return _cached_attributes[key]
[docs] def setxattr(path: str, attr_name: str, attr_value: bytes) -> None: _cached_attributes.pop((path, attr_name), None) return os.setxattr(path, attr_name, attr_value)