move cython shadow module to fontTools.misc
This commit is contained in:
parent
15d8313f13
commit
b2788f8656
@ -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
|
||||||
|
|
||||||
|
25
Lib/fontTools/misc/cython.py
Normal file
25
Lib/fontTools/misc/cython.py
Normal 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
|
Loading…
x
Reference in New Issue
Block a user