113de1bcd3
The PEP 518 way to do this is with pyproject.toml. tox doesn't support PEP 518 yet, but we get around that by using pip install -e . as part of the tox build until PEP 518 support arrives in tox.
57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
import sys
|
|
|
|
from setuptools import setup
|
|
from setuptools.command.test import test as TestCommand
|
|
from setuptools_rust import RustExtension
|
|
|
|
|
|
class PyTest(TestCommand):
|
|
user_options = []
|
|
|
|
def run(self):
|
|
self.run_command("test_rust")
|
|
|
|
import subprocess
|
|
errno = subprocess.call(['pytest', 'tests'])
|
|
raise SystemExit(errno)
|
|
|
|
|
|
def get_py_version_cfgs():
|
|
# For now each Cfg Py_3_X flag is interpreted as "at least 3.X"
|
|
version = sys.version_info[0:2]
|
|
|
|
if version[0] == 2:
|
|
return ['--cfg=Py_2']
|
|
|
|
py3_min = 5
|
|
out_cfg = []
|
|
for minor in range(py3_min, version[1]+1):
|
|
out_cfg.append('--cfg=Py_3_%d' % minor)
|
|
|
|
return out_cfg
|
|
|
|
install_requires = []
|
|
tests_require = install_requires + ['pytest', 'pytest-benchmark']
|
|
|
|
setup(
|
|
name='rustapi-module',
|
|
version='0.1.0',
|
|
classifiers=[
|
|
'License :: OSI Approved :: MIT License',
|
|
'Development Status :: 3 - Alpha',
|
|
'Intended Audience :: Developers',
|
|
'Programming Language :: Python',
|
|
'Programming Language :: Rust',
|
|
'Operating System :: POSIX',
|
|
'Operating System :: MacOS :: MacOS X',
|
|
],
|
|
packages=['rustapi_module'],
|
|
rust_extensions=[RustExtension('rustapi_module.datetime', 'Cargo.toml',
|
|
rustc_flags=get_py_version_cfgs())],
|
|
install_requires=install_requires,
|
|
tests_require=tests_require,
|
|
include_package_data=True,
|
|
zip_safe=False,
|
|
cmdclass=dict(test=PyTest)
|
|
)
|