""" Exports a no-op 'cython' namespace similar to https://github.com/cython/cython/blob/master/Cython/Shadow.py This allows to optionally compile @cython decorated functions (when cython is available at built time), or run the same code as pure-python, without runtime dependency on cython module. We only define the symbols that we use. E.g. see fontTools.cu2qu """ from types import SimpleNamespace def _empty_decorator(x): return x compiled = False for name in ("double", "complex", "int"): globals()[name] = None for name in ("cfunc", "inline"): globals()[name] = _empty_decorator locals = lambda **_: _empty_decorator returns = lambda _: _empty_decorator