"""Headless-macOS import shims for the HSMR engine (our fleet is all Apple Silicon). pyrender -> PyOpenGL -> EGL cannot load without a GL context, yet several vendored modules `import pyrender` at load time — some even in type annotations (`List[pyrender.Node]`) — so the import chain explodes before any of our code runs. We never render in-process; Blender is the fleet renderer (Lane C). So we drop permissive fakes for the pyrender + OpenGL stack into sys.modules, letting the chain import while keeping everything else (ColorPalette, Wis3D, the models) real. Import this BEFORE the first `lib.*` import: `import _headless # noqa: F401` # ponytail: fakes, not a real headless GL backend (osmesa/egl). We don't render here, so a # working GL context would be dead weight. Wire a real one only if in-process render is ever # needed off-fleet. """ import sys import types class _Any: def __call__(self, *a, **k): return self def __getattr__(self, n): return self class _AnyModule(types.ModuleType): def __getattr__(self, n): if n.startswith('__') and n.endswith('__'): raise AttributeError(n) return _Any() # setdefault: never clobber a real module that a caller already imported on purpose. for _n in ('pyrender', 'OpenGL', 'OpenGL.GL', 'OpenGL.error', 'OpenGL.platform'): sys.modules.setdefault(_n, _AnyModule(_n))