import typing try: import pint except ImportError: pint = False class NullRegistry: """A NullRegistry that masquerades as a pint.UnitRegistry.""" def __init__(self): """Initialize a null registry.""" def __getattr__(self, item: typing.Any) -> int: """Return a Scalar 1 to simulate a unit.""" return 1 def __bool__(self): """Return False since a NullRegistry is not a pint.UnitRegistry.""" return False def define(self, *args, **kwargs): """Pretend to add unit to the registry.""" def _build_unit_registry(): registry = pint.UnitRegistry() if pint else NullRegistry() registry.define('FPS = 1 * hertz') return registry units = _build_unit_registry()