diff --git a/.gitignore b/.gitignore index 629bb65..50d55f5 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ pip-log.txt # Unit test / coverage reports .coverage .tox +.nox nosetests.xml .pytest_cache diff --git a/README.md b/README.md index 71f3c55..ab7e28d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![pystable-ubuntu](https://github.com/mikeyrf/pystable/actions/workflows/python-ubuntu.yaml/badge.svg)](https://github.com/mikeyrf/pystable/actions/workflows/python-ubuntu.yaml) [![pystable-macOS](https://github.com/mikeyrf/pystable/actions/workflows/python-macOS.yaml/badge.svg)](https://github.com/mikeyrf/pystable/actions/workflows/python-macOS.yaml) -[![coverage](https://github.com/mikeyrf/pystable/tree/main/docs/coverage.svg)](https://github.com/mikeyrf/pystable/tree/main/docs/coverage.svg) +[![coverage](./docs/coverage.svg)](./docs/coverage.svg) # pystable diff --git a/build.py b/build.py index e6e1323..483f9b5 100644 --- a/build.py +++ b/build.py @@ -3,7 +3,8 @@ import shutil from distutils.command.build_ext import build_ext -from distutils.core import setup, Extension +from distutils.core import Distribution +from distutils.core import Extension libstable_module = Extension('libstable', @@ -23,6 +24,7 @@ # SEE: https://github.com/python-poetry/poetry/issues/11 +# SEE: https://github.com/sdispater/pendulum/blob/master/build.py class ExtensionBuild(build_ext): def run(self): build_ext.run(self) @@ -46,4 +48,20 @@ def run(self): os.chmod(dest, mode) -setup(ext_modules=[libstable_module], cmdclass=dict(build_ext=ExtensionBuild)) +def build(setup_kwargs): + """ + This function is mandatory in order to build the extensions. + """ + distribution = Distribution( + {"name": "pystable", "ext_modules": [libstable_module]}) + distribution.package_dir = "pystable" + + cmd = ExtensionBuild(distribution) + cmd.ensure_finalized() + cmd.run() + + return setup_kwargs + + +if __name__ == "__main__": + build({}) diff --git a/noxfile.py b/noxfile.py index a9b1b9d..2f33dbf 100644 --- a/noxfile.py +++ b/noxfile.py @@ -5,12 +5,14 @@ def tests(session): session.install('poetry') session.run('poetry', 'install') - session.run('coverage', 'run', '-m', 'pytest') - session.run('coverage', 'report') + session.run('poetry', 'build') + session.run('poetry', 'run', 'coverage', 'run', '-m', 'pytest', '-v', '-s') + session.run('poetry', 'run', 'coverage', 'report') @nox.session def lint(session): session.install('poetry') session.run('poetry', 'install') - session.run('flake8', 'pystable', 'tests') + session.run('poetry', 'build') + session.run('poetry', 'run', 'flake8', 'pystable', 'tests') diff --git a/pyproject.toml b/pyproject.toml index ad01b62..0506276 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,6 +31,9 @@ coverage = {version = "^5.5", extras = ["toml"]} nox = "^2021.6.12" coverage-badge = "^1.0.1" +[tool.poetry.build] +script = "build.py" + [tool.coverage.run] omit = [".*", "*/site-packages/*", "*/tests*"] diff --git a/pystable/_extensions/macOS/arm/libstable.so b/pystable/_extensions/macOS/arm/libstable.so index e5b578b..a8a7dfa 100644 Binary files a/pystable/_extensions/macOS/arm/libstable.so and b/pystable/_extensions/macOS/arm/libstable.so differ