From e89d284bdbc745e349be242004144d3f531d5740 Mon Sep 17 00:00:00 2001
From: Tom Bland <tom_bland@hotmail.co.uk>
Date: Wed, 1 Nov 2023 14:53:30 +0000
Subject: [PATCH 1/8] Switch to pyproject.toml

---
 pyproject.toml | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 setup.py       | 27 ---------------------------
 2 files changed, 49 insertions(+), 27 deletions(-)
 create mode 100644 pyproject.toml
 delete mode 100644 setup.py

diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 00000000..b3565962
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,49 @@
+[build-system]
+requires = ["setuptools", "setuptools-scm"]
+build-backend = "setuptools.build_meta"
+
+[tool.setuptools.packages.find]
+exclude = ["htmlcov"] # Exclude the coverage report file from setuptools package finder
+
+[project]
+name = "WSIMOD"
+description = "WSIMOD is for simulating water quality and quantity"
+readme = {file = "README.md"}
+version = "0.2.0"
+license = {file = "LICENSE"}
+authors = [
+    { name = "Imperial College London RSE Team", email = "ict-rse-team@imperial.ac.uk" }
+    { name = "Barnaby Dobson", email = "b.dobson@imperial.ac.uk" }
+]
+requires-python = ">=3.9"
+dependencies = [
+    "PyYAML",
+    "tqdm"
+]
+
+[project.optional-dependencies]
+dev = [
+    "pytest"
+]
+
+demos = [
+    "pandas",
+    "geopandas",
+    "matplotlib",
+    "shapely"
+]
+
+doc = [
+    "mkdocs",
+    "mkdocstrings[python]",
+    "mkdocs-material",
+    "mkdocs-autorefs",
+    "mkdocs-bibtex",
+    "mkdocs-coverage",
+    "mkdocs-jupyter",
+    "mkdocs-material-extensions",
+    "pypandoc"
+]
+
+[tool.pytest.ini_options]
+addopts = "-v -p no:warnings"
\ No newline at end of file
diff --git a/setup.py b/setup.py
deleted file mode 100644
index d8ba86f2..00000000
--- a/setup.py
+++ /dev/null
@@ -1,27 +0,0 @@
-import setuptools
-
-
-with open("requirements.txt") as f:
-    install_requires = f.read().splitlines()
-
-with open("requirements_demos.txt") as f:
-    demos_requires = f.read().splitlines()
-
-with open("requirements_documentation.txt") as f:
-    docs_requires = f.read().splitlines() + demos_requires
-
-setuptools.setup(
-   name='WSIMOD',
-   version='0.2',
-   author='Barnaby Dobson',
-   author_email='b.dobson@imperial.ac.uk',
-   packages=setuptools.find_packages(),
-   license='LICENSE',
-   description='WSIMOD is for simulating water quality and quantity',
-   long_description=open('README.md').read(),
-   install_requires=install_requires,
-   extras_require={
-        'demos': demos_requires,
-      'documentation': docs_requires
-    }
-      )
\ No newline at end of file

From cdb431734f993470e4610676c90d573ec775fb65 Mon Sep 17 00:00:00 2001
From: Tom Bland <tom_bland@hotmail.co.uk>
Date: Wed, 1 Nov 2023 15:03:27 +0000
Subject: [PATCH 2/8] Fix syntax errors

---
 pyproject.toml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pyproject.toml b/pyproject.toml
index b3565962..7b8e3369 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -8,11 +8,11 @@ exclude = ["htmlcov"] # Exclude the coverage report file from setuptools package
 [project]
 name = "WSIMOD"
 description = "WSIMOD is for simulating water quality and quantity"
-readme = {file = "README.md"}
+readme = "README.md"
 version = "0.2.0"
 license = {file = "LICENSE"}
 authors = [
-    { name = "Imperial College London RSE Team", email = "ict-rse-team@imperial.ac.uk" }
+    { name = "Imperial College London RSE Team", email = "ict-rse-team@imperial.ac.uk" },
     { name = "Barnaby Dobson", email = "b.dobson@imperial.ac.uk" }
 ]
 requires-python = ">=3.9"

From 75684553bbe723dc55441cf8db320a64c3f3adb9 Mon Sep 17 00:00:00 2001
From: Tom Bland <tom_bland@hotmail.co.uk>
Date: Wed, 1 Nov 2023 15:13:44 +0000
Subject: [PATCH 3/8] New requirements files

---
 requirements-demos.txt         |  82 ++++++++++
 requirements-dev.txt           |  22 +++
 requirements-doc.txt           | 273 +++++++++++++++++++++++++++++++++
 requirements.txt               |  21 +--
 requirements_demos.txt         |  25 ---
 requirements_documentation.txt |  81 ----------
 6 files changed, 388 insertions(+), 116 deletions(-)
 create mode 100644 requirements-demos.txt
 create mode 100644 requirements-dev.txt
 create mode 100644 requirements-doc.txt
 delete mode 100644 requirements_demos.txt
 delete mode 100644 requirements_documentation.txt

diff --git a/requirements-demos.txt b/requirements-demos.txt
new file mode 100644
index 00000000..a54d6e23
--- /dev/null
+++ b/requirements-demos.txt
@@ -0,0 +1,82 @@
+#
+# 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.1.1
+    # via matplotlib
+cycler==0.12.1
+    # via matplotlib
+fiona==1.9.5
+    # via geopandas
+fonttools==4.43.1
+    # 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
+    #   WSIMOD (pyproject.toml)
+    #   geopandas
+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
+    #   WSIMOD (pyproject.toml)
+    #   geopandas
+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
new file mode 100644
index 00000000..389b4fdc
--- /dev/null
+++ b/requirements-dev.txt
@@ -0,0 +1,22 @@
+#
+# This file is autogenerated by pip-compile with Python 3.11
+# by the following command:
+#
+#    pip-compile --extra=dev --output-file=requirements-dev.txt
+#
+colorama==0.4.6
+    # via
+    #   pytest
+    #   tqdm
+iniconfig==2.0.0
+    # via pytest
+packaging==23.2
+    # via pytest
+pluggy==1.3.0
+    # via pytest
+pytest==7.4.3
+    # via WSIMOD (pyproject.toml)
+pyyaml==6.0.1
+    # via WSIMOD (pyproject.toml)
+tqdm==4.66.1
+    # via WSIMOD (pyproject.toml)
diff --git a/requirements-doc.txt b/requirements-doc.txt
new file mode 100644
index 00000000..efbf41eb
--- /dev/null
+++ b/requirements-doc.txt
@@ -0,0 +1,273 @@
+#
+# 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
+    #   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 requests
+charset-normalizer==3.3.2
+    # via requests
+click==8.1.7
+    # via mkdocs
+colorama==0.4.6
+    # via
+    #   click
+    #   griffe
+    #   ipython
+    #   mkdocs
+    #   mkdocs-material
+    #   tqdm
+comm==0.1.4
+    # via ipykernel
+debugpy==1.8.0
+    # via ipykernel
+decorator==5.1.1
+    # via ipython
+defusedxml==0.7.1
+    # via nbconvert
+executing==2.0.1
+    # via stack-data
+fastjsonschema==2.18.1
+    # via nbformat
+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.5.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
+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-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
+    #   WSIMOD (pyproject.toml)
+    #   mkdocs-autorefs
+    #   mkdocs-bibtex
+    #   mkdocs-coverage
+    #   mkdocs-jupyter
+    #   mkdocs-material
+    #   mkdocstrings
+mkdocs-autorefs==0.5.0
+    # via
+    #   WSIMOD (pyproject.toml)
+    #   mkdocstrings
+mkdocs-bibtex==2.11.0
+    # via WSIMOD (pyproject.toml)
+mkdocs-coverage==1.0.0
+    # via WSIMOD (pyproject.toml)
+mkdocs-jupyter==0.24.6
+    # via WSIMOD (pyproject.toml)
+mkdocs-material==9.4.7
+    # via
+    #   WSIMOD (pyproject.toml)
+    #   mkdocs-jupyter
+mkdocs-material-extensions==1.3
+    # via
+    #   WSIMOD (pyproject.toml)
+    #   mkdocs-material
+mkdocstrings[python]==0.23.0
+    # via
+    #   WSIMOD (pyproject.toml)
+    #   mkdocstrings-python
+mkdocstrings-python==1.7.3
+    # via mkdocstrings
+nbclient==0.8.0
+    # via nbconvert
+nbconvert==7.10.0
+    # via mkdocs-jupyter
+nbformat==5.9.2
+    # via
+    #   jupytext
+    #   nbclient
+    #   nbconvert
+nest-asyncio==1.5.8
+    # via ipykernel
+packaging==23.2
+    # via
+    #   ipykernel
+    #   mkdocs
+    #   nbconvert
+paginate==0.5.6
+    # via mkdocs-material
+pandocfilters==1.5.0
+    # via nbconvert
+parso==0.8.3
+    # via jedi
+pathspec==0.11.2
+    # via mkdocs
+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
+    #   WSIMOD (pyproject.toml)
+    #   mkdocs-bibtex
+python-dateutil==2.8.2
+    # via
+    #   ghp-import
+    #   jupyter-client
+pywin32==306
+    # via jupyter-core
+pyyaml==6.0.1
+    # via
+    #   WSIMOD (pyproject.toml)
+    #   jupytext
+    #   mkdocs
+    #   pybtex
+    #   pymdown-extensions
+    #   pyyaml-env-tag
+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.10.6
+    # via
+    #   jsonschema
+    #   referencing
+six==1.16.0
+    # via
+    #   asttokens
+    #   bleach
+    #   latexcodec
+    #   pybtex
+    #   python-dateutil
+soupsieve==2.5
+    # via beautifulsoup4
+stack-data==0.6.3
+    # via ipython
+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
+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
diff --git a/requirements.txt b/requirements.txt
index 1b090a34..be4cbbaa 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,11 +1,12 @@
-attrs==22.2.0
+#
+# This file is autogenerated by pip-compile with Python 3.11
+# by the following command:
+#
+#    pip-compile
+#
 colorama==0.4.6
-dill==0.3.6
-exceptiongroup==1.1.0
-iniconfig==2.0.0
-packaging==23.0
-pluggy==1.0.0
-pytest==7.2.1
-PyYAML==6.0
-tomli==2.0.1
-tqdm==4.64.1
\ No newline at end of file
+    # via tqdm
+pyyaml==6.0.1
+    # via WSIMOD (pyproject.toml)
+tqdm==4.66.1
+    # via WSIMOD (pyproject.toml)
diff --git a/requirements_demos.txt b/requirements_demos.txt
deleted file mode 100644
index 81d5a660..00000000
--- a/requirements_demos.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-certifi==2022.12.7
-click==8.1.3
-click-plugins==1.1.1
-cligj==0.7.2
-contourpy==1.0.7
-cramjam==2.6.2
-cycler==0.11.0
-fastparquet==2023.1.0
-Fiona==1.9.0
-fonttools==4.38.0
-fsspec==2023.1.0
-geopandas==0.12.2
-kiwisolver==1.4.4
-matplotlib==3.6.3
-munch==2.5.0
-numpy==1.24.1
-pandas==1.5.3
-Pillow==9.4.0
-pyarrow==11.0.0
-pyparsing==3.0.9
-pyproj==3.4.1
-python-dateutil==2.8.2
-pytz==2022.7.1
-shapely==2.0.1
-six==1.16.0
\ No newline at end of file
diff --git a/requirements_documentation.txt b/requirements_documentation.txt
deleted file mode 100644
index 7b95b08f..00000000
--- a/requirements_documentation.txt
+++ /dev/null
@@ -1,81 +0,0 @@
-asttokens==2.2.1
-backcall==0.2.0
-beautifulsoup4==4.11.1
-bleach==6.0.0
-charset-normalizer==3.0.1
-comm==0.1.2
-coverage==7.1.0
-debugpy==1.6.6
-decorator==5.1.1
-defusedxml==0.7.1
-entrypoints==0.4
-executing==1.2.0
-fastjsonschema==2.16.2
-ghp-import==2.1.0
-griffe==0.25.4
-idna==3.4
-importlib-metadata==6.0.0
-importlib-resources==5.10.2
-ipykernel==6.20.2
-ipython==8.9.0
-jedi==0.18.2
-Jinja2==3.1.2
-jsonschema==4.17.3
-jupyter_client==8.0.2
-jupyter_core==5.2.0
-jupyterlab-pygments==0.2.2
-jupytext==1.14.4
-kiwisolver==1.4.4
-latexcodec==2.0.1
-lxml==4.9.2
-Markdown==3.3.7
-markdown-it-py==2.1.0
-MarkupSafe==2.1.2
-matplotlib-inline==0.1.6
-mdit-py-plugins==0.3.3
-mdurl==0.1.2
-mergedeep==1.3.4
-mistune==0.8.4
-mkdocs==1.4.2
-mkdocs-autorefs==0.4.1
-mkdocs-bibtex==2.8.10
-mkdocs-coverage==0.2.6
-mkdocs-jupyter==0.22.0
-mkdocs-material==8.5.11
-mkdocs-material-extensions==1.1.1
-mkdocstrings==0.20.0
-mkdocstrings-python==0.8.3
-nbclient==0.7.2
-nbconvert==6.5.4
-nbformat==5.7.3
-nest-asyncio==1.5.6
-pandocfilters==1.5.0
-parso==0.8.3
-pickleshare==0.7.5
-pkgutil_resolve_name==1.3.10
-platformdirs==2.6.2
-prompt-toolkit==3.0.36
-psutil==5.9.4
-pure-eval==0.2.2
-pybtex==0.24.0
-Pygments==2.14.0
-pymdown-extensions==9.9.2
-pypandoc==1.10
-pyrsistent==0.19.3
-pywin32==305
-pyyaml_env_tag==0.1
-pyzmq==25.0.0
-requests==2.28.2
-soupsieve==2.3.2.post1
-stack-data==0.6.2
-tabulate==0.9.0
-tinycss2==1.2.1
-toml==0.10.2
-tornado==6.2
-traitlets==5.9.0
-urllib3==1.26.14
-validators==0.20.0
-watchdog==2.2.1
-wcwidth==0.2.6
-webencodings==0.5.1
-zipp==3.12.0

From 9f7a76a259d32f8ee9bad03bb6a5141584dfcf72 Mon Sep 17 00:00:00 2001
From: Tom Bland <tom_bland@hotmail.co.uk>
Date: Wed, 1 Nov 2023 15:17:02 +0000
Subject: [PATCH 4/8] Point to new requirements file

---
 .github/workflows/ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 837bd1f2..aeee7a19 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -13,6 +13,6 @@ jobs:
       with:
         python-version: 3.10.9
     - name: Install and build
-      run: pip install .
+      run: pip install -r requirements-dev.txt
     - name: Run tests
       run: pytest

From c37fb337ab71d82ee372f4e94af0a22592148b62 Mon Sep 17 00:00:00 2001
From: Tom Bland <tom_bland@hotmail.co.uk>
Date: Wed, 1 Nov 2023 15:23:41 +0000
Subject: [PATCH 5/8] Add dill requirement

---
 pyproject.toml         | 3 ++-
 requirements-demos.txt | 2 ++
 requirements-dev.txt   | 2 ++
 requirements-doc.txt   | 2 ++
 requirements.txt       | 2 ++
 5 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/pyproject.toml b/pyproject.toml
index 7b8e3369..45602a6e 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -18,7 +18,8 @@ authors = [
 requires-python = ">=3.9"
 dependencies = [
     "PyYAML",
-    "tqdm"
+    "tqdm",
+    "dill"
 ]
 
 [project.optional-dependencies]
diff --git a/requirements-demos.txt b/requirements-demos.txt
index a54d6e23..af0692af 100644
--- a/requirements-demos.txt
+++ b/requirements-demos.txt
@@ -27,6 +27,8 @@ contourpy==1.1.1
     # via matplotlib
 cycler==0.12.1
     # via matplotlib
+dill==0.3.7
+    # via WSIMOD (pyproject.toml)
 fiona==1.9.5
     # via geopandas
 fonttools==4.43.1
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 389b4fdc..f78b3b1d 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -8,6 +8,8 @@ colorama==0.4.6
     # via
     #   pytest
     #   tqdm
+dill==0.3.7
+    # via WSIMOD (pyproject.toml)
 iniconfig==2.0.0
     # via pytest
 packaging==23.2
diff --git a/requirements-doc.txt b/requirements-doc.txt
index efbf41eb..b9f5bb68 100644
--- a/requirements-doc.txt
+++ b/requirements-doc.txt
@@ -38,6 +38,8 @@ 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
diff --git a/requirements.txt b/requirements.txt
index be4cbbaa..1b54f7a2 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -6,6 +6,8 @@
 #
 colorama==0.4.6
     # via tqdm
+dill==0.3.7
+    # via WSIMOD (pyproject.toml)
 pyyaml==6.0.1
     # via WSIMOD (pyproject.toml)
 tqdm==4.66.1

From 9d2cf43d5e3b64b54365bb166c1dc71727d182cb Mon Sep 17 00:00:00 2001
From: Tom Bland <tom_bland@hotmail.co.uk>
Date: Wed, 1 Nov 2023 15:40:48 +0000
Subject: [PATCH 6/8] Add __init__.py

---
 tests/__init__.py | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 tests/__init__.py

diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 00000000..e69de29b

From af59de5ff02a1200f396b01b1284639936183d50 Mon Sep 17 00:00:00 2001
From: Tom Bland <tom_bland@hotmail.co.uk>
Date: Wed, 1 Nov 2023 16:16:10 +0000
Subject: [PATCH 7/8] Update install instructions

---
 README.md | 22 ++++++----------------
 1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/README.md b/README.md
index e62decbc..c080a6d4 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ with arcs, and create simulations.
 
 You can access our documentation below or at [https://imperialcollegelondon.github.io/wsi](https://barneydobson.github.io/wsi).
 
-*Requires*: Python 3 (tested on versions >=3.7), [tqdm](https://tqdm.github.io/), [PyYAML](https://pyyaml.org/)
+*Requires*: Python 3 (tested on versions >=3.7), [tqdm](https://tqdm.github.io/), [PyYAML](https://pyyaml.org/), [dill](https://dill.readthedocs.io/en/latest/)
 
 *Optional requirements to run demos*: [Pandas](https://pandas.pydata.org/), [GeoPandas](https://geopandas.org/en/stable/), [Matplotlib](https://matplotlib.org/), [Shapely](https://shapely.readthedocs.io/en/stable/manual.html)
 
@@ -52,37 +52,27 @@ and consists of:
 8. [Coverage](https://barneydobson.github.io/wsi/coverage/)
 
 ## Installation
-Create and activate new conda environment
-```
-conda create --name wsimod python=3.10
-conda activate wsimod
-```
-
-Install a GUI if you like
-```
-conda install spyder -c conda-forge
-```
 
 Install WSIMOD directly from GitHub
 ```
-pip install https://github.com/barneydobson/wsi/archive/refs/heads/main.zip
+pip install https://github.com/ImperialCollegeLondon/wsi/archive/refs/heads/main.zip
 ```
 
 Use `[demos]` to include the demos and tutorials.
 ```
-pip install https://github.com/barneydobson/wsi/archive/refs/heads/main.zip
+pip install https://github.com/ImperialCollegeLondon/wsi/archive/refs/heads/main.zip
 pip install wsimod[demos]
 ```
 
-If you want to make changes WSIMOD you can download/clone this folder, navigate to it, and run:
+If you want to make changes to WSIMOD you can download/clone this folder, navigate to it, and run:
 ```
-python setup.py develop
+pip install -e .[dev]
 ```
 
 or (with demos)
 
 ```
-python setup.py develop easy_install "wsimod[demos]"
+pip install -e .[dev,demos]
 ```
 
 ## How to cite WSIMOD

From 126f390baca20d449c1ebf0853370fe033141761 Mon Sep 17 00:00:00 2001
From: Tom Bland <tom_bland@hotmail.co.uk>
Date: Thu, 2 Nov 2023 10:16:45 +0000
Subject: [PATCH 8/8] Minor requested changes, rebuiding requirements files

---
 pyproject.toml         | 11 ++---
 requirements-demos.txt | 18 ++++-----
 requirements-dev.txt   |  8 ++--
 requirements-doc.txt   | 91 +++++++++++++++++++++++++++++++++++-------
 requirements.txt       |  6 +--
 5 files changed, 98 insertions(+), 36 deletions(-)

diff --git a/pyproject.toml b/pyproject.toml
index 45602a6e..9a3d0690 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -6,14 +6,14 @@ build-backend = "setuptools.build_meta"
 exclude = ["htmlcov"] # Exclude the coverage report file from setuptools package finder
 
 [project]
-name = "WSIMOD"
+name = "wsimod"
 description = "WSIMOD is for simulating water quality and quantity"
 readme = "README.md"
 version = "0.2.0"
 license = {file = "LICENSE"}
 authors = [
-    { name = "Imperial College London RSE Team", email = "ict-rse-team@imperial.ac.uk" },
-    { name = "Barnaby Dobson", email = "b.dobson@imperial.ac.uk" }
+    { name = "Barnaby Dobson", email = "b.dobson@imperial.ac.uk" },
+    { name = "Imperial College London RSE Team", email = "ict-rse-team@imperial.ac.uk" }
 ]
 requires-python = ">=3.9"
 dependencies = [
@@ -28,7 +28,7 @@ dev = [
 ]
 
 demos = [
-    "pandas",
+    "pandas==1.5.2",
     "geopandas",
     "matplotlib",
     "shapely"
@@ -43,7 +43,8 @@ doc = [
     "mkdocs-coverage",
     "mkdocs-jupyter",
     "mkdocs-material-extensions",
-    "pypandoc"
+    "pypandoc",
+    "wsimod[demos]"
 ]
 
 [tool.pytest.ini_options]
diff --git a/requirements-demos.txt b/requirements-demos.txt
index af0692af..11e85692 100644
--- a/requirements-demos.txt
+++ b/requirements-demos.txt
@@ -28,17 +28,17 @@ contourpy==1.1.1
 cycler==0.12.1
     # via matplotlib
 dill==0.3.7
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
 fiona==1.9.5
     # via geopandas
 fonttools==4.43.1
     # via matplotlib
 geopandas==0.14.0
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
 kiwisolver==1.4.5
     # via matplotlib
 matplotlib==3.8.1
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
 numpy==1.26.1
     # via
     #   contourpy
@@ -49,10 +49,10 @@ packaging==23.2
     # via
     #   geopandas
     #   matplotlib
-pandas==2.1.2
+pandas==1.5.2
     # via
-    #   WSIMOD (pyproject.toml)
     #   geopandas
+    #   wsimod (pyproject.toml)
 pillow==10.1.0
     # via matplotlib
 pyparsing==3.1.1
@@ -66,19 +66,17 @@ python-dateutil==2.8.2
 pytz==2023.3.post1
     # via pandas
 pyyaml==6.0.1
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
 shapely==2.0.2
     # via
-    #   WSIMOD (pyproject.toml)
     #   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
+    # via wsimod (pyproject.toml)
 
 # The following packages are considered to be unsafe in a requirements file:
 # setuptools
diff --git a/requirements-dev.txt b/requirements-dev.txt
index f78b3b1d..24d67adc 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -9,7 +9,7 @@ colorama==0.4.6
     #   pytest
     #   tqdm
 dill==0.3.7
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
 iniconfig==2.0.0
     # via pytest
 packaging==23.2
@@ -17,8 +17,8 @@ packaging==23.2
 pluggy==1.3.0
     # via pytest
 pytest==7.4.3
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
 pyyaml==6.0.1
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
 tqdm==4.66.1
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
diff --git a/requirements-doc.txt b/requirements-doc.txt
index b9f5bb68..704e9293 100644
--- a/requirements-doc.txt
+++ b/requirements-doc.txt
@@ -8,6 +8,7 @@ asttokens==2.4.1
     # via stack-data
 attrs==23.1.0
     # via
+    #   fiona
     #   jsonschema
     #   referencing
 babel==2.13.1
@@ -17,11 +18,22 @@ beautifulsoup4==4.12.2
 bleach==6.1.0
     # via nbconvert
 certifi==2023.7.22
-    # via requests
+    # via
+    #   fiona
+    #   pyproj
+    #   requests
 charset-normalizer==3.3.2
     # via requests
 click==8.1.7
-    # via mkdocs
+    # 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
@@ -32,6 +44,10 @@ colorama==0.4.6
     #   tqdm
 comm==0.1.4
     # via ipykernel
+contourpy==1.1.1
+    # via matplotlib
+cycler==0.12.1
+    # via matplotlib
 debugpy==1.8.0
     # via ipykernel
 decorator==5.1.1
@@ -39,11 +55,19 @@ decorator==5.1.1
 defusedxml==0.7.1
     # via nbconvert
 dill==0.3.7
-    # via WSIMOD (pyproject.toml)
+    # via
+    #   wsimod
+    #   wsimod (pyproject.toml)
 executing==2.0.1
     # via stack-data
 fastjsonschema==2.18.1
     # via nbformat
+fiona==1.9.5
+    # via geopandas
+fonttools==4.43.1
+    # via matplotlib
+geopandas==0.14.0
+    # via wsimod
 ghp-import==2.1.0
     # via mkdocs
 griffe==0.36.9
@@ -81,6 +105,8 @@ 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
@@ -100,6 +126,8 @@ markupsafe==2.1.3
     #   mkdocs
     #   mkdocstrings
     #   nbconvert
+matplotlib==3.8.1
+    # via wsimod
 matplotlib-inline==0.1.6
     # via
     #   ipykernel
@@ -114,35 +142,35 @@ mistune==3.0.2
     # via nbconvert
 mkdocs==1.5.3
     # via
-    #   WSIMOD (pyproject.toml)
     #   mkdocs-autorefs
     #   mkdocs-bibtex
     #   mkdocs-coverage
     #   mkdocs-jupyter
     #   mkdocs-material
     #   mkdocstrings
+    #   wsimod (pyproject.toml)
 mkdocs-autorefs==0.5.0
     # via
-    #   WSIMOD (pyproject.toml)
     #   mkdocstrings
+    #   wsimod (pyproject.toml)
 mkdocs-bibtex==2.11.0
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
 mkdocs-coverage==1.0.0
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
 mkdocs-jupyter==0.24.6
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
 mkdocs-material==9.4.7
     # via
-    #   WSIMOD (pyproject.toml)
     #   mkdocs-jupyter
+    #   wsimod (pyproject.toml)
 mkdocs-material-extensions==1.3
     # via
-    #   WSIMOD (pyproject.toml)
     #   mkdocs-material
+    #   wsimod (pyproject.toml)
 mkdocstrings[python]==0.23.0
     # via
-    #   WSIMOD (pyproject.toml)
     #   mkdocstrings-python
+    #   wsimod (pyproject.toml)
 mkdocstrings-python==1.7.3
     # via mkdocstrings
 nbclient==0.8.0
@@ -156,19 +184,33 @@ nbformat==5.9.2
     #   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==1.5.2
+    # via
+    #   geopandas
+    #   wsimod
 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
@@ -193,22 +235,31 @@ pymdown-extensions==10.3.1
     #   mkdocstrings
 pypandoc==1.12
     # via
-    #   WSIMOD (pyproject.toml)
     #   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==306
     # via jupyter-core
 pyyaml==6.0.1
     # via
-    #   WSIMOD (pyproject.toml)
     #   jupytext
     #   mkdocs
     #   pybtex
     #   pymdown-extensions
     #   pyyaml-env-tag
+    #   wsimod
+    #   wsimod (pyproject.toml)
 pyyaml-env-tag==0.1
     # via mkdocs
 pyzmq==25.1.1
@@ -229,10 +280,15 @@ rpds-py==0.10.6
     # via
     #   jsonschema
     #   referencing
+shapely==2.0.2
+    # via
+    #   geopandas
+    #   wsimod
 six==1.16.0
     # via
     #   asttokens
     #   bleach
+    #   fiona
     #   latexcodec
     #   pybtex
     #   python-dateutil
@@ -249,7 +305,9 @@ tornado==6.3.3
     #   ipykernel
     #   jupyter-client
 tqdm==4.66.1
-    # via WSIMOD (pyproject.toml)
+    # via
+    #   wsimod
+    #   wsimod (pyproject.toml)
 traitlets==5.13.0
     # via
     #   comm
@@ -273,3 +331,8 @@ webencodings==0.5.1
     # via
     #   bleach
     #   tinycss2
+wsimod[demos] @ file:///C:/Users/tbland/Documents/Code/wsi
+    # via wsimod (pyproject.toml)
+
+# The following packages are considered to be unsafe in a requirements file:
+# setuptools
diff --git a/requirements.txt b/requirements.txt
index 1b54f7a2..d58181de 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -7,8 +7,8 @@
 colorama==0.4.6
     # via tqdm
 dill==0.3.7
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
 pyyaml==6.0.1
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)
 tqdm==4.66.1
-    # via WSIMOD (pyproject.toml)
+    # via wsimod (pyproject.toml)