mirror of
https://github.com/msgpack/msgpack-python.git
synced 2025-10-24 06:13:18 +00:00
do not install cython as build dependency (#610)
User can not cythonize during `pip install msgpack`. So remove cython from build dependency. If user need to use another Cython, user should download sdist, unzip, manually cythonize, and `pip install .`.
This commit is contained in:
parent
9cea8b6da2
commit
0b1c47b06b
2 changed files with 1 additions and 50 deletions
45
setup.py
45
setup.py
|
|
@ -3,52 +3,9 @@ import os
|
|||
import sys
|
||||
|
||||
from setuptools import Extension, setup
|
||||
from setuptools.command.build_ext import build_ext
|
||||
from setuptools.command.sdist import sdist
|
||||
|
||||
PYPY = hasattr(sys, "pypy_version_info")
|
||||
|
||||
|
||||
class NoCython(Exception):
|
||||
pass
|
||||
|
||||
|
||||
try:
|
||||
import Cython.Compiler.Main as cython_compiler
|
||||
|
||||
have_cython = True
|
||||
except ImportError:
|
||||
have_cython = False
|
||||
|
||||
|
||||
def cythonize(src):
|
||||
if not have_cython:
|
||||
raise Exception("Cython is required for building from checkout")
|
||||
sys.stderr.write(f"cythonize: {src!r}\n")
|
||||
cython_compiler.compile([src])
|
||||
|
||||
|
||||
def ensure_source(src):
|
||||
pyx = os.path.splitext(src)[0] + ".pyx"
|
||||
|
||||
if not os.path.exists(src) or have_cython and os.stat(src).st_mtime < os.stat(pyx).st_mtime:
|
||||
cythonize(pyx)
|
||||
|
||||
|
||||
class BuildExt(build_ext):
|
||||
def build_extension(self, ext):
|
||||
for src in ext.sources:
|
||||
ensure_source(src)
|
||||
return build_ext.build_extension(self, ext)
|
||||
|
||||
|
||||
# Cython is required for sdist
|
||||
class Sdist(sdist):
|
||||
def __init__(self, *args, **kwargs):
|
||||
cythonize("msgpack/_cmsgpack.pyx")
|
||||
sdist.__init__(self, *args, **kwargs)
|
||||
|
||||
|
||||
libraries = []
|
||||
macros = []
|
||||
ext_modules = []
|
||||
|
|
@ -69,9 +26,7 @@ if not PYPY and not os.environ.get("MSGPACK_PUREPYTHON"):
|
|||
)
|
||||
del libraries, macros
|
||||
|
||||
|
||||
setup(
|
||||
cmdclass={"build_ext": BuildExt, "sdist": Sdist},
|
||||
ext_modules=ext_modules,
|
||||
packages=["msgpack"],
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue