diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c395f829..98d03905 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: - name: Install and build run: | - python -m pip install -r requirements-dev.txt + python -m pip install .[dev] python -m pip install . - name: Run tests diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index e68e2f5e..71517d50 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -79,7 +79,7 @@ jobs: python-version: "3.11" - name: Install dependencies - run: pip install -r requirements-doc.txt + run: pip install .[doc] - name: Deploy Docs run: mkdocs gh-deploy --force diff --git a/.gitignore b/.gitignore index bdcf5200..43b095d7 100644 --- a/.gitignore +++ b/.gitignore @@ -156,4 +156,7 @@ cython_debug/ # Scratch folder to do testing scratch -results \ No newline at end of file +results + +# Version +_version.py \ No newline at end of file diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 4ae22c74..0e177a01 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -41,14 +41,14 @@ cd wsi We use [`pip-tools`](https://pip-tools.readthedocs.io/en/latest/) to ensure consistency in the development process, ensuring all people contributing to WSIMOD uses the same versions for all the dependencies, which minimiese the conflicts. To install the development dependencies and then WISMO in development mode run: ```bash -pip install -r requirements-dev.txt +pip install .[dev] pip install -e . ``` You can also install the dependencies required to run the demos and tutorials with: ```bash -pip install -r requirements-demos.txt +pip install .[demos] ``` ## Quality assurance and linting @@ -90,7 +90,7 @@ coverage html If you want to compile new documentation you will need some additional packages, installed with: ```bash -pip install -r requirements-doc.txt +pip install .[doc] ``` From here, you can make changes to the documentation pages in `docs` and view how they appear by navigating to and hosting them locally: @@ -107,4 +107,4 @@ mkdocs gh-deploy ## Changing dependencies -Is as the development process moves forward you find you need to add a new dependency, just add it to the relevant section of the `pyproject.toml` file and then run `pip-compile` as required to regenerate the different `requirements.txt` files. Read the [`pip-tools` documentation](https://pip-tools.readthedocs.io/en/latest/) for more information on the process. +Is as the development process moves forward you find you need to add a new dependency, just add it to the relevant section of the `pyproject.toml` file. diff --git a/requirements-demos.txt b/requirements-demos.txt deleted file mode 100644 index a1a72a5e..00000000 --- a/requirements-demos.txt +++ /dev/null @@ -1,84 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.11 -# by the following command: -# -# pip-compile --extra=demos --output-file=requirements-demos.txt -# -attrs==23.1.0 - # via fiona -certifi==2023.7.22 - # via - # fiona - # pyproj -click==8.1.7 - # via - # click-plugins - # cligj - # fiona -click-plugins==1.1.1 - # via fiona -cligj==0.7.2 - # via fiona -colorama==0.4.6 - # via - # click - # tqdm -contourpy==1.2.0 - # via matplotlib -cycler==0.12.1 - # via matplotlib -dill==0.3.7 - # via wsimod (pyproject.toml) -fiona==1.9.5 - # via geopandas -fonttools==4.44.0 - # via matplotlib -geopandas==0.14.0 - # via wsimod (pyproject.toml) -kiwisolver==1.4.5 - # via matplotlib -matplotlib==3.8.1 - # via wsimod (pyproject.toml) -numpy==1.26.1 - # via - # contourpy - # matplotlib - # pandas - # shapely -packaging==23.2 - # via - # geopandas - # matplotlib -pandas==2.1.2 - # via - # geopandas - # wsimod (pyproject.toml) -pillow==10.1.0 - # via matplotlib -pyparsing==3.1.1 - # via matplotlib -pyproj==3.6.1 - # via geopandas -python-dateutil==2.8.2 - # via - # matplotlib - # pandas -pytz==2023.3.post1 - # via pandas -pyyaml==6.0.1 - # via wsimod (pyproject.toml) -shapely==2.0.2 - # via - # geopandas - # wsimod (pyproject.toml) -six==1.16.0 - # via - # fiona - # python-dateutil -tqdm==4.66.1 - # via wsimod (pyproject.toml) -tzdata==2023.3 - # via pandas - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements-dev.txt b/requirements-dev.txt deleted file mode 100644 index c4480106..00000000 --- a/requirements-dev.txt +++ /dev/null @@ -1,140 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.11 -# by the following command: -# -# pip-compile --extra=dev --output-file=requirements-dev.txt -# -attrs==23.2.0 - # via fiona -black==23.10.1 - # via wsimod (pyproject.toml) -build==1.0.3 - # via pip-tools -certifi==2023.11.17 - # via - # fiona - # pyproj -cfgv==3.4.0 - # via pre-commit -click==8.1.7 - # via - # black - # click-plugins - # cligj - # fiona - # pip-tools -click-plugins==1.1.1 - # via fiona -cligj==0.7.2 - # via fiona -colorama==0.4.6 - # via - # build - # click - # pytest - # tqdm -contourpy==1.2.0 - # via matplotlib -coverage[toml]==7.3.2 - # via pytest-cov -cycler==0.12.1 - # via matplotlib -dill==0.3.7 - # via wsimod (pyproject.toml) -distlib==0.3.7 - # via virtualenv -filelock==3.13.1 - # via virtualenv -fiona==1.9.5 - # via geopandas -fonttools==4.47.0 - # via matplotlib -geopandas==0.14.2 - # via wsimod (pyproject.toml) -identify==2.5.31 - # via pre-commit -iniconfig==2.0.0 - # via pytest -kiwisolver==1.4.5 - # via matplotlib -matplotlib==3.8.2 - # via wsimod (pyproject.toml) -mypy-extensions==1.0.0 - # via black -nodeenv==1.8.0 - # via pre-commit -numpy==1.26.2 - # via - # contourpy - # matplotlib - # pandas - # shapely -packaging==23.2 - # via - # black - # build - # geopandas - # matplotlib - # pytest -pandas==2.1.3 - # via - # geopandas - # wsimod (pyproject.toml) -pathspec==0.11.2 - # via black -pillow==10.2.0 - # via matplotlib -pip-tools==7.3.0 - # via wsimod (pyproject.toml) -platformdirs==3.11.0 - # via - # black - # virtualenv -pluggy==1.3.0 - # via pytest -pre-commit==3.5.0 - # via wsimod (pyproject.toml) -pyparsing==3.1.1 - # via matplotlib -pyproj==3.6.1 - # via geopandas -pyproject-hooks==1.0.0 - # via build -pytest==7.4.3 - # via - # pytest-cov - # wsimod (pyproject.toml) -pytest-cov==4.1.0 - # via wsimod (pyproject.toml) -python-dateutil==2.8.2 - # via - # matplotlib - # pandas -pytz==2023.3.post1 - # via pandas -pyyaml==6.0.1 - # via - # pre-commit - # wsimod (pyproject.toml) -ruff==0.1.4 - # via wsimod (pyproject.toml) -shapely==2.0.2 - # via - # geopandas - # wsimod (pyproject.toml) -six==1.16.0 - # via - # fiona - # python-dateutil -tqdm==4.66.1 - # via wsimod (pyproject.toml) -tzdata==2023.3 - # via pandas -virtualenv==20.24.6 - # via pre-commit -wheel==0.41.3 - # via pip-tools - -# The following packages are considered to be unsafe in a requirements file: -# pip -# setuptools diff --git a/requirements-doc.txt b/requirements-doc.txt deleted file mode 100644 index 90dbcc69..00000000 --- a/requirements-doc.txt +++ /dev/null @@ -1,338 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.11 -# by the following command: -# -# pip-compile --extra=doc --output-file=requirements-doc.txt -# -asttokens==2.4.1 - # via stack-data -attrs==23.1.0 - # via - # fiona - # jsonschema - # referencing -babel==2.13.1 - # via mkdocs-material -beautifulsoup4==4.12.2 - # via nbconvert -bleach==6.1.0 - # via nbconvert -certifi==2023.7.22 - # via - # fiona - # pyproj - # requests -charset-normalizer==3.3.2 - # via requests -click==8.1.7 - # via - # click-plugins - # cligj - # fiona - # mkdocs -click-plugins==1.1.1 - # via fiona -cligj==0.7.2 - # via fiona -colorama==0.4.6 - # via - # click - # griffe - # ipython - # mkdocs - # mkdocs-material - # tqdm -comm==0.2.0 - # via ipykernel -contourpy==1.2.0 - # via matplotlib -cycler==0.12.1 - # via matplotlib -debugpy==1.8.0 - # via ipykernel -decorator==5.1.1 - # via ipython -defusedxml==0.7.1 - # via nbconvert -dill==0.3.7 - # via wsimod (pyproject.toml) -executing==2.0.1 - # via stack-data -fastjsonschema==2.18.1 - # via nbformat -fiona==1.9.5 - # via geopandas -fonttools==4.44.0 - # via matplotlib -geopandas==0.14.0 - # via wsimod (pyproject.toml) -ghp-import==2.1.0 - # via mkdocs -griffe==0.36.9 - # via mkdocstrings-python -idna==3.4 - # via requests -ipykernel==6.26.0 - # via mkdocs-jupyter -ipython==8.17.2 - # via ipykernel -jedi==0.19.1 - # via ipython -jinja2==3.1.2 - # via - # mkdocs - # mkdocs-material - # mkdocstrings - # nbconvert -jsonschema==4.19.2 - # via nbformat -jsonschema-specifications==2023.7.1 - # via jsonschema -jupyter-client==8.6.0 - # via - # ipykernel - # nbclient -jupyter-core==5.5.0 - # via - # ipykernel - # jupyter-client - # nbclient - # nbconvert - # nbformat -jupyterlab-pygments==0.2.2 - # via nbconvert -jupytext==1.15.2 - # via mkdocs-jupyter -kiwisolver==1.4.5 - # via matplotlib -latexcodec==2.0.1 - # via pybtex -markdown==3.5.1 - # via - # mkdocs - # mkdocs-autorefs - # mkdocs-material - # mkdocstrings - # pymdown-extensions -markdown-it-py==3.0.0 - # via - # jupytext - # mdit-py-plugins -markupsafe==2.1.3 - # via - # jinja2 - # mkdocs - # mkdocstrings - # nbconvert -matplotlib==3.8.1 - # via wsimod (pyproject.toml) -matplotlib-inline==0.1.6 - # via - # ipykernel - # ipython -mdit-py-plugins==0.4.0 - # via jupytext -mdurl==0.1.2 - # via markdown-it-py -mergedeep==1.3.4 - # via mkdocs -mistune==3.0.2 - # via nbconvert -mkdocs==1.5.3 - # via - # mkdocs-autorefs - # mkdocs-bibtex - # mkdocs-coverage - # mkdocs-gen-files - # mkdocs-jupyter - # mkdocs-material - # mkdocstrings - # wsimod (pyproject.toml) -mkdocs-autorefs==0.5.0 - # via - # mkdocstrings - # wsimod (pyproject.toml) -mkdocs-bibtex==2.11.0 - # via wsimod (pyproject.toml) -mkdocs-coverage==1.0.0 - # via wsimod (pyproject.toml) -mkdocs-gen-files==0.5.0 - # via wsimod (pyproject.toml) -mkdocs-jupyter==0.24.6 - # via wsimod (pyproject.toml) -mkdocs-material==9.4.8 - # via - # mkdocs-jupyter - # wsimod (pyproject.toml) -mkdocs-material-extensions==1.3 - # via - # mkdocs-material - # wsimod (pyproject.toml) -mkdocstrings[python]==0.23.0 - # via - # mkdocstrings-python - # wsimod (pyproject.toml) -mkdocstrings-python==1.7.3 - # via mkdocstrings -nbclient==0.8.0 - # via nbconvert -nbconvert==7.11.0 - # via mkdocs-jupyter -nbformat==5.9.2 - # via - # jupytext - # nbclient - # nbconvert -nest-asyncio==1.5.8 - # via ipykernel -numpy==1.26.1 - # via - # contourpy - # matplotlib - # pandas - # shapely -packaging==23.2 - # via - # geopandas - # ipykernel - # matplotlib - # mkdocs - # nbconvert -paginate==0.5.6 - # via mkdocs-material -pandas==2.1.2 - # via - # geopandas - # wsimod (pyproject.toml) -pandocfilters==1.5.0 - # via nbconvert -parso==0.8.3 - # via jedi -pathspec==0.11.2 - # via mkdocs -pillow==10.1.0 - # via matplotlib -platformdirs==3.11.0 - # via - # jupyter-core - # mkdocs -prompt-toolkit==3.0.39 - # via ipython -psutil==5.9.6 - # via ipykernel -pure-eval==0.2.2 - # via stack-data -pybtex==0.24.0 - # via mkdocs-bibtex -pygments==2.16.1 - # via - # ipython - # mkdocs-jupyter - # mkdocs-material - # nbconvert -pymdown-extensions==10.3.1 - # via - # mkdocs-material - # mkdocstrings -pypandoc==1.12 - # via - # mkdocs-bibtex - # wsimod (pyproject.toml) -pyparsing==3.1.1 - # via matplotlib -pyproj==3.6.1 - # via geopandas -python-dateutil==2.8.2 - # via - # ghp-import - # jupyter-client - # matplotlib - # pandas -pytz==2023.3.post1 - # via pandas -pywin32==308 - # via jupyter-core -pyyaml==6.0.1 - # via - # jupytext - # mkdocs - # pybtex - # pymdown-extensions - # pyyaml-env-tag - # wsimod (pyproject.toml) -pyyaml-env-tag==0.1 - # via mkdocs -pyzmq==25.1.1 - # via - # ipykernel - # jupyter-client -referencing==0.30.2 - # via - # jsonschema - # jsonschema-specifications -regex==2023.10.3 - # via mkdocs-material -requests==2.31.0 - # via - # mkdocs-bibtex - # mkdocs-material -rpds-py==0.12.0 - # via - # jsonschema - # referencing -shapely==2.0.2 - # via - # geopandas - # wsimod (pyproject.toml) -six==1.16.0 - # via - # asttokens - # bleach - # fiona - # latexcodec - # pybtex - # python-dateutil -soupsieve==2.5 - # via beautifulsoup4 -stack-data==0.6.3 - # via ipython -tabulate==0.9.0 - # via wsimod (pyproject.toml) -tinycss2==1.2.1 - # via nbconvert -toml==0.10.2 - # via jupytext -tornado==6.3.3 - # via - # ipykernel - # jupyter-client -tqdm==4.66.1 - # via wsimod (pyproject.toml) -traitlets==5.13.0 - # via - # comm - # ipykernel - # ipython - # jupyter-client - # jupyter-core - # matplotlib-inline - # nbclient - # nbconvert - # nbformat -tzdata==2023.3 - # via pandas -urllib3==2.0.7 - # via requests -validators==0.22.0 - # via mkdocs-bibtex -watchdog==3.0.0 - # via mkdocs -wcwidth==0.2.9 - # via prompt-toolkit -webencodings==0.5.1 - # via - # bleach - # tinycss2 - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 2a0dc9f6..00000000 --- a/requirements.txt +++ /dev/null @@ -1,26 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.11 -# by the following command: -# -# pip-compile -# -colorama==0.4.6 - # via tqdm -dill==0.3.7 - # via wsimod (pyproject.toml) -numpy==1.26.2 - # via pandas -pandas==2.1.3 - # via wsimod (pyproject.toml) -python-dateutil==2.8.2 - # via pandas -pytz==2023.3.post1 - # via pandas -pyyaml==6.0.1 - # via wsimod (pyproject.toml) -six==1.16.0 - # via python-dateutil -tqdm==4.66.1 - # via wsimod (pyproject.toml) -tzdata==2023.3 - # via pandas