diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index dc123268..ab896c40 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,7 +1,6 @@ name: PyHyperScattering CI Testing -on: - push: +on: pull_request: # The branches below must be a subset of the branches above branches: [ main ] @@ -12,9 +11,18 @@ jobs: runs-on: ${{ matrix.os}} strategy: matrix: - python-version: ['3.10','3.11'] + python-version: ['3.10','3.11','3.12','3.13'] os: [ubuntu-latest, macOS-latest, windows-latest] - + exclude: + - os: macOS-latest + python-version: '3.11' + - os: macOS-latest + python-version: '3.12' + - os: windows-latest + python-version: '3.11' + # this last one is a specific incompatibility... + - os: windows-latest + python-version: '3.13' steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} @@ -26,18 +34,14 @@ jobs: with: path: ${{ env.pythonLocation }} # Look to see if there is a cache hit for the corresponding requirements file - key: ${{ runner.os }}-py${{ matrix.python-version }}-pip-${{ hashFiles('requirements.txt') }} + key: ${{ runner.os }}-py${{ matrix.python-version }}-pip-${{ hashFiles('pyproject.toml') }} restore-keys: | ${{ runner.os }}-py${{ matrix.python-version }}-pip- ${{ runner.os }}- - name: Install dependencies run: | python -m pip install --upgrade pip - pip install flake8 pytest coverage - pip install pybind11 wheel - pip install -r requirements.txt - pip install -r requirements-bluesky.txt - pip install dask + pip install .[dev,bluesky] - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index affa8cb4..ca3750f7 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -12,4 +12,4 @@ jobs: formats: |- epub pdf - pip-requirements: 'requirements.txt' + pip-requirements: 'docs-requirements.txt' diff --git a/docs-requirements.txt b/docs-requirements.txt new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/docs-requirements.txt @@ -0,0 +1 @@ +. diff --git a/env.yml b/env.yml deleted file mode 100755 index b1cc0ad3..00000000 --- a/env.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: pyhyperscattering -channels: - - conda-forge - - lightsource2-tag - - defaults -dependencies: - - astropy - - fabio - - h5py - - hdf5 - - nodejs - - numpy - - pandas - - pyfai - - pyopencl - - scikit-image - - xarray - - scipy - - python>=3.8 diff --git a/pyproject.toml b/pyproject.toml index 7ebf1c2b..f5f3cfc4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,7 +25,6 @@ dependencies = [ "numpy<2", "pandas", "pyfai", - "pyopencl", "scikit-image", "scipy", "pillow", @@ -63,6 +62,12 @@ doc = [ "sphinx", "pydata_sphinx_theme" ] +dev = ["flake8", + "pytest", + "coverage", + "pybind11", + "wheel" + ] test = [ "pytest", "black", @@ -83,7 +88,12 @@ all-nogpu = [ "pytest", "black", "codecov", - "pylint" + "pylint", + "flake8", + "pytest", + "coverage", + "pybind11", + "wheel" ] all = [ "tiled[all]>=0.1.0a74", @@ -102,7 +112,12 @@ all = [ "pytest", "black", "codecov", - "pylint" + "pylint", + "flake8", + "pytest", + "coverage", + "pybind11", + "wheel" ] [project.urls] diff --git a/requirements-bluesky.txt b/requirements-bluesky.txt deleted file mode 100644 index 92b0e124..00000000 --- a/requirements-bluesky.txt +++ /dev/null @@ -1,4 +0,0 @@ -tiled[all]>=0.1.0a74 -databroker[all]>=2.0.0b10 -bluesky-tiled-plugins -bottleneck diff --git a/requirements-performance.txt b/requirements-performance.txt deleted file mode 100644 index 27678963..00000000 --- a/requirements-performance.txt +++ /dev/null @@ -1,3 +0,0 @@ -pyopencl -dask -cupy diff --git a/requirements-ui.txt b/requirements-ui.txt deleted file mode 100644 index 33e657f2..00000000 --- a/requirements-ui.txt +++ /dev/null @@ -1,3 +0,0 @@ -holoviews -hvplot -matplotlib diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 9cd57728..00000000 --- a/requirements.txt +++ /dev/null @@ -1,18 +0,0 @@ -versioneer -astropy -fabio -h5py -nodejs -numpy<2 -pandas -# pygix fails to improt if silx > 2.0.0 -silx==2.0.0 -pyfai -pygix -scikit-image -scipy -pillow -xarray -tqdm -pydata_sphinx_theme -numexpr!=2.8.5,!=2.8.6