move cython shadow module to fontTools.misc

This commit is contained in:
Cosimo Lupo 2020-03-31 17:39:13 +01:00
parent 15d8313f13
commit b2788f8656
No known key found for this signature in database
GPG Key ID: 179A8F0895A02F4F
2 changed files with 26 additions and 13 deletions

View File

@ -19,19 +19,7 @@ try:
import cython import cython
except ImportError: except ImportError:
# if cython not installed, use mock module with no-op decorators and types # if cython not installed, use mock module with no-op decorators and types
from types import SimpleNamespace from fontTools.misc import cython
def _empty_decorator(x):
return x
cython = SimpleNamespace()
cython.compiled = False
for name in ("double", "complex", "int"):
setattr(cython, name, None)
for name in ("cfunc", "inline"):
setattr(cython, name, _empty_decorator)
cython.locals = lambda **_: _empty_decorator
cython.returns = lambda _: _empty_decorator
import math import math

View File

@ -0,0 +1,25 @@
""" 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