Skip to content

Commit

Permalink
build: replace poetry with setup.py
Browse files Browse the repository at this point in the history
  • Loading branch information
maxmouchet committed Sep 30, 2023
1 parent bb8affd commit 5cd9f59
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 84 deletions.
6 changes: 3 additions & 3 deletions .bumpversion.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ commit = True
tag = True
message = release(project): {current_version} → {new_version}

[bumpversion:file:pyproject.toml]
search = version = "{current_version}"
replace = version = "{new_version}"
[bumpversion:file:setup.py]
search = version="{current_version}"
replace = version="{new_version}"

[bumpversion:file:diamond_miner/__init__.py]
18 changes: 10 additions & 8 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@ jobs:
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- uses: dioptra-io/setup-poetry-action@v1
- name: Install package
run: poetry install
run: |
python -m venv venv
./venv/bin/pip install -e .[dev]
- name: Insert test data
run: poetry run tests/data/insert.py
run: ./venv/bin/python tests/data/insert.py
- name: Run tests
run: poetry run pytest --cov=diamond_miner --cov-report=xml
run: ./venv/bin/pytest --cov=diamond_miner --cov-report=xml
- uses: codecov/codecov-action@v3

mkdocs:
Expand All @@ -30,13 +31,14 @@ jobs:
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- uses: dioptra-io/setup-poetry-action@v1
- name: Install package
run: poetry install
run: |
python -m venv venv
./venv/bin/pip install -e .[dev]
- name: Build documentation
run: poetry run mkdocs build --strict
run: ./venv/bin/mkdocs build --strict
- name: Publish documentation
run: poetry run mkdocs gh-deploy --force --no-history --strict
run: ./venv/bin/mkdocs gh-deploy --force --no-history --strict
if: ${{ startsWith(github.ref, 'refs/tags/v') }}

pypi:
Expand Down
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
global-include *.pyx
global-include *.pxd
15 changes: 0 additions & 15 deletions build_ext.py

This file was deleted.

18 changes: 11 additions & 7 deletions docs/dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,29 @@ This library is developed on GitHub in the [`dioptra-io/diamond-miner`](https://
git clone [email protected]:dioptra-io/diamond-miner.git
cd diamond-miner/

# Create and enter a virtual environment
python -m venv venv
source venv/bin/activate

# Compile the Cython code and install the dependencies (once)
poetry install
pip install -e .

# Install the pre-commit hooks (once)
poetry run pre-commit install
pre-commit install

# Edit some files...
# Run poetry install again if you have edited Cython files (`.pyx`)
# Run pip install again if you have edited Cython files (`.pyx`)

# Run the tests
poetry run pytest
pytest

# Preview the documentation
poetry run mkdocs serve --watch diamond_miner --watch docs
mkdocs serve --watch diamond_miner --watch docs

# Commit...

# Tag a new version
poetry run bumpversion patch # or minor/major
bumpversion patch # or minor/major
```

## Test data
Expand All @@ -33,7 +37,7 @@ Most tests require a running instance of ClickHouse with pre-populated tables.
To start a ClickHouse server and insert the test data:
```bash
docker run --rm -d -p 8123:8123 clickhouse/clickhouse-server:22.6
poetry run tests/data/insert.py
python tests/data/insert.py
```

To use a different server, set the `DIAMOND_MINER_TEST_DATABASE_URL` environment variable (`http://localhost:8123` by default).
53 changes: 3 additions & 50 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,46 +1,6 @@
[tool.poetry]
name = "diamond-miner"
version = "1.0.3"
description = "High-speed, Internet-scale, load-balanced paths discovery."
license = "MIT"
authors = [
"Kevin Vermeulen <[email protected]>",
"Matthieu Gouel <[email protected]>",
"Maxime Mouchet <[email protected]>"
]
readme = "README.md"
homepage = "https://github.com/dioptra-io/diamond-miner"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Science/Research",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX :: Linux",
"Topic :: Internet",
"Typing :: Typed"
]

[tool.poetry.build]
# https://github.com/python-poetry/poetry/issues/7470
script = "build_ext.py"
generate-setup-file = true

[tool.poetry.dependencies]
python = ">=3.10,<4.0"
pych-client = "^0.3.1"
pygfc = "^1.0.5"
zstandard = ">=0.15.2,<0.19.0"

[tool.poetry.dev-dependencies]
bumpversion = "^0.6.0"
coverage = {extras = ["toml"], version = "^7.1.0"}
Cython = "^0.29.33"
hypothesis = "^6.68.2"
mkdocs-bibtex = "^2.8.13"
mkdocs-material = "^9.0.13"
mkdocstrings = {extras = ["python"], version = "^0.20.0"}
mypy = "^1.0.1"
pytest = "^7.2.1"
pytest-cov = "^4.0.0"
[build-system]
requires = ["setuptools", "Cython"]
build-backend = "setuptools.build_meta"

[tool.pytest.ini_options]
addopts = "--capture=no --doctest-modules --ignore=examples --log-cli-level=info --strict-markers --verbosity=2"
Expand Down Expand Up @@ -80,10 +40,3 @@ archs = ["x86_64", "aarch64"]

[tool.cibuildwheel.macos]
archs = ["universal2"]

[build-system]
requires = ["poetry-core>=1.0.0", "setuptools>=40.6.0", "Cython>=0.29.0"]
build-backend = "poetry.core.masonry.api"

[project]
requires-python = ">=3.10"
44 changes: 44 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
from Cython.Build import cythonize
from setuptools import find_packages, setup

setup(
name="diamond-miner",
version="1.0.3",
license="MIT",
description="High-speed, Internet-scale, load-balanced paths discovery.",
author="Kevin Vermeulen, Matthieu Gouel, Maxime Mouchet",
url="https://github.com/dioptra-io/diamond-miner",
packages=find_packages(),
ext_modules=cythonize(
"diamond_miner/**/*.pyx",
compiler_directives={"binding": True, "embedsignature": True},
language_level=3,
),
python_requires=">=3.10",
install_requires=[
"pych-client~=0.3.1",
"pygfc~=1.0.5",
"zstandard>=0.15.2,<0.19.0",
],
extras_require={
"dev": [
"bumpversion~=0.6.0",
"coverage[toml]~=7.1.0",
"hypothesis~=6.68.2",
"mkdocs-bibtex~=2.8.13",
"mkdocs-material~=9.0.13",
"mkdocstrings[python]~=0.20.0",
"mypy~=1.0.1",
"pytest~=7.2.1",
"pytest-cov~=4.0.0",
]
},
classifiers=[
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Science/Research",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX :: Linux",
"Topic :: Internet",
"Typing :: Typed",
],
)
1 change: 0 additions & 1 deletion tests/data/insert.py
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#!/usr/bin/env python3
import logging
import re
from collections.abc import Sequence
Expand Down

0 comments on commit 5cd9f59

Please sign in to comment.