diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 3adaf2e..01274db 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -231,6 +231,25 @@ jobs: path: artifacts/whl compression-level: 0 + setuptools: + name: Setuptools install + needs: pre-commit + runs-on: ubuntu-20.04 + steps: + - name: Check out repo + uses: actions/checkout@v4 + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y libopenslide0 python3-pil + pip install pytest + - name: Install OpenSlide Python + run: sudo python setup.py install + - name: Run tests + run: pytest -v + - name: Tile slide + run: python examples/deepzoom/deepzoom_tile.py --viewer -o tiled tests/fixtures/small.svs + docs: name: Docs needs: pre-commit diff --git a/setup.py b/setup.py index a4702e7..8211623 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,13 @@ +import os import sys from setuptools import Extension, setup +# Load version string +_verfile = os.path.join(os.path.dirname(__file__), 'openslide', '_version.py') +with open(_verfile) as _fh: + exec(_fh.read()) # instantiates __version__ + # use the Limited API on Python 3.11+; build release-specific wheels on # older Python _abi3 = sys.version_info >= (3, 11) @@ -21,4 +27,18 @@ # tag wheel for Limited API 'bdist_wheel': {'py_limited_api': 'cp311'} if _abi3 else {}, }, + # + # setuptools < 61 compatibility for distro packages building from source + name='openslide-python', + version=__version__, # type: ignore[name-defined] # noqa: F821 + install_requires=[ + 'Pillow', + ], + packages=[ + 'openslide', + ], + package_data={ + 'openslide': ['py.typed', '*.pyi'], + }, + zip_safe=False, )