From c42c28e53928943b2d318899f6be7452b4f0601c Mon Sep 17 00:00:00 2001 From: lunamorrow Date: Tue, 23 Sep 2025 14:38:27 +1000 Subject: [PATCH 1/4] Update requirements.txt (now renamed to a more appropriate installion.txt) with package requirements version pinned and installation of PolyBuild, PolyConf and PolyTop included for more simple installation. Have updated README.md to reflect changes to installation method. --- README.md | 19 ++----- installation.txt | 131 +++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 13 ----- 3 files changed, 135 insertions(+), 28 deletions(-) create mode 100644 installation.txt delete mode 100644 requirements.txt diff --git a/README.md b/README.md index 9967805..c7e182b 100644 --- a/README.md +++ b/README.md @@ -36,27 +36,16 @@ Then navigate to `~/polyconstruct` cd polyconstruct ``` -Create a python environment and setup *PolyConstruct*: +Create and activate a new python environment: ```bash conda create --name polyconstruct python=3.10 conda activate polyconstruct - -pip install -r requirements.txt ``` -Then, build the *PolyTop*, *PolyConf* and *PolyBuild* packages: +Install dependencies and *PolyConstruct*: ```bash -cd polytop - -pip install -e . - -cd ../polyconf - -pip install -e . - -cd ../polybuild - -pip install -e . +pip install -r installation.txt ``` + diff --git a/installation.txt b/installation.txt new file mode 100644 index 0000000..ade8c6e --- /dev/null +++ b/installation.txt @@ -0,0 +1,131 @@ +anyio==4.10.0 +argon2-cffi==25.1.0 +argon2-cffi-bindings==25.1.0 +arrow==1.3.0 +asttokens==3.0.0 +async-lru==2.0.5 +attrs==25.3.0 +babel==2.17.0 +beautifulsoup4==4.13.5 +bleach==6.2.0 +certifi==2025.8.3 +cffi==2.0.0 +charset-normalizer==3.4.3 +click==8.3.0 +comm==0.2.3 +contourpy==1.3.2 +cycler==0.12.1 +debugpy==1.8.17 +decorator==5.2.1 +defusedxml==0.7.1 +exceptiongroup==1.3.0 +executing==2.2.1 +fastjsonschema==2.21.2 +filelock==3.19.1 +fonttools==4.60.0 +fqdn==1.5.1 +GridDataFormats==1.0.2 +h11==0.16.0 +httpcore==1.0.9 +httpx==0.28.1 +idna==3.10 +iniconfig==2.1.0 +ipykernel==6.30.1 +ipython==8.37.0 +ipywidgets==8.1.7 +isoduration==20.11.0 +jedi==0.19.2 +Jinja2==3.1.6 +joblib==1.5.2 +json5==0.12.1 +jsonpointer==3.0.0 +jsonschema==4.25.1 +jsonschema-specifications==2025.9.1 +jupyter==1.1.1 +jupyter-console==6.6.3 +jupyter-events==0.12.0 +jupyter-lsp==2.3.0 +jupyter_client==8.6.3 +jupyter_core==5.8.1 +jupyter_server==2.17.0 +jupyter_server_terminals==0.5.3 +jupyterlab==4.4.7 +jupyterlab_pygments==0.3.0 +jupyterlab_server==2.27.3 +jupyterlab_widgets==3.0.15 +kiwisolver==1.4.9 +lark==1.2.2 +MarkupSafe==3.0.2 +matplotlib==3.10.6 +matplotlib-inline==0.1.7 +mda-xdrlib==0.2.0 +MDAnalysis==2.9.0 +mistune==3.1.4 +mmtf-python==1.1.3 +mrcfile==1.5.4 +msgpack==1.1.1 +nbclient==0.10.2 +nbconvert==7.16.6 +nbformat==5.10.4 +nest-asyncio==1.6.0 +networkx==3.4.2 +notebook==7.4.5 +notebook_shim==0.2.4 +numpy==2.2.6 +overrides==7.7.0 +packaging==25.0 +pandas==2.3.2 +pandocfilters==1.5.1 +parso==0.8.5 +pexpect==4.9.0 +pillow==11.3.0 +platformdirs==4.4.0 +pluggy==1.6.0 +prometheus_client==0.23.1 +prompt_toolkit==3.0.52 +psutil==7.1.0 +ptyprocess==0.7.0 +pure_eval==0.2.3 +py3Dmol==2.5.2 +pycparser==2.23 +Pygments==2.19.2 +pyparsing==3.2.4 +pytest==8.4.2 +python-dateutil==2.9.0.post0 +python-json-logger==3.3.0 +pytz==2025.2 +PyYAML==6.0.2 +pyzmq==27.1.0 +rdkit==2025.3.6 +referencing==0.36.2 +requests==2.32.5 +rfc3339-validator==0.1.4 +rfc3986-validator==0.1.1 +rfc3987-syntax==1.1.0 +rpds-py==0.27.1 +scipy==1.15.3 +Send2Trash==1.8.3 +six==1.17.0 +sniffio==1.3.1 +soupsieve==2.8 +stack-data==0.6.3 +terminado==0.18.1 +threadpoolctl==3.6.0 +tinycss2==1.4.0 +tomli==2.2.1 +tornado==6.5.2 +tqdm==4.67.1 +traitlets==5.14.3 +types-python-dateutil==2.9.0.20250822 +typing_extensions==4.15.0 +tzdata==2025.2 +uri-template==1.3.0 +urllib3==2.5.0 +wcwidth==0.2.13 +webcolors==24.11.1 +webencodings==0.5.1 +websocket-client==1.8.0 +widgetsnbextension==4.0.14 +-e polybuild +-e polyconf +-e polytop diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 1c5ad7e..0000000 --- a/requirements.txt +++ /dev/null @@ -1,13 +0,0 @@ -IPython -jupyter -nbconvert -nbformat -pytest -rdkit -py3Dmol -numpy -mdanalysis -click -py3Dmol -networkx -tqdm From bbd4eec5c3083fc5ba3f1278b4407750d3dc6c23 Mon Sep 17 00:00:00 2001 From: lunamorrow Date: Tue, 23 Sep 2025 14:52:31 +1000 Subject: [PATCH 2/4] Additional commit to push through GitHub auth issues --- installation.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/installation.txt b/installation.txt index ade8c6e..75017bb 100644 --- a/installation.txt +++ b/installation.txt @@ -129,3 +129,4 @@ widgetsnbextension==4.0.14 -e polybuild -e polyconf -e polytop + From af4928856b832b6282413dd851f5dec1efe3090f Mon Sep 17 00:00:00 2001 From: lunamorrow Date: Tue, 23 Sep 2025 15:02:46 +1000 Subject: [PATCH 3/4] Rename installation.txt to requirements.txt as I believe GitHub actions cannot find it --- installation.txt => requirements.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename installation.txt => requirements.txt (100%) diff --git a/installation.txt b/requirements.txt similarity index 100% rename from installation.txt rename to requirements.txt From 6d9e935df55e7c599dfc04312669d08d432cb85c Mon Sep 17 00:00:00 2001 From: lunamorrow Date: Tue, 23 Sep 2025 15:39:21 +1000 Subject: [PATCH 4/4] Removing requirements.txt in favour of implementing all build functionality in pyproject.toml - this will enable easier installation --- README.md | 15 +----- pyproject.toml | 23 ++++++--- requirements.txt | 132 ----------------------------------------------- 3 files changed, 16 insertions(+), 154 deletions(-) delete mode 100644 requirements.txt diff --git a/README.md b/README.md index c7e182b..a5301b6 100644 --- a/README.md +++ b/README.md @@ -23,19 +23,6 @@ There is a series of detailed tutorials for *PolyConf* in the folder [polyconf_e ## Quick and dirty installation -From your home directory, clone *PolyConstruct* from this repository: - -```bash -cd ~ -git clone https://github.com/OMaraLab/polyconstruct.git -``` - -Then navigate to `~/polyconstruct` - -```bash -cd polyconstruct -``` - Create and activate a new python environment: ```bash @@ -46,6 +33,6 @@ conda activate polyconstruct Install dependencies and *PolyConstruct*: ```bash -pip install -r installation.txt +pip install "polyconstruct@git+https://github.com/OMaraLab/polyconstruct.git" ``` diff --git a/pyproject.toml b/pyproject.toml index 6818e75..d51962b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,13 +13,20 @@ license = { text = "MIT License" } # Dependencies required for your project dependencies = [ - "numpy", - "mdanalysis", - "click", - "py3Dmol", - "rdkit", + "numpy==2.2.6", + "MDAnalysis==2.9.0", + "click==8.3.0", + "py3Dmol==2.5.2", + "rdkit==2025.3.6", + "networkx==3.4.2", + "pandas==2.3.2", + "tqdm==4.67.1" ] -[tool.setuptools.packages.find] -where = ["."] -include = ["*"] \ No newline at end of file +[tool.setuptools] +packages = ["polybuild", "polybuild.polybuild", "polyconf", "polyconf.polyconf", "polytop", "polytop.polytop"] + +[tool.setuptools.package-dir] +polybuild.polybuild = "polybuild" +polyconf.polyconf = "polyconf" +polytop.polytop = "polytop" \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 75017bb..0000000 --- a/requirements.txt +++ /dev/null @@ -1,132 +0,0 @@ -anyio==4.10.0 -argon2-cffi==25.1.0 -argon2-cffi-bindings==25.1.0 -arrow==1.3.0 -asttokens==3.0.0 -async-lru==2.0.5 -attrs==25.3.0 -babel==2.17.0 -beautifulsoup4==4.13.5 -bleach==6.2.0 -certifi==2025.8.3 -cffi==2.0.0 -charset-normalizer==3.4.3 -click==8.3.0 -comm==0.2.3 -contourpy==1.3.2 -cycler==0.12.1 -debugpy==1.8.17 -decorator==5.2.1 -defusedxml==0.7.1 -exceptiongroup==1.3.0 -executing==2.2.1 -fastjsonschema==2.21.2 -filelock==3.19.1 -fonttools==4.60.0 -fqdn==1.5.1 -GridDataFormats==1.0.2 -h11==0.16.0 -httpcore==1.0.9 -httpx==0.28.1 -idna==3.10 -iniconfig==2.1.0 -ipykernel==6.30.1 -ipython==8.37.0 -ipywidgets==8.1.7 -isoduration==20.11.0 -jedi==0.19.2 -Jinja2==3.1.6 -joblib==1.5.2 -json5==0.12.1 -jsonpointer==3.0.0 -jsonschema==4.25.1 -jsonschema-specifications==2025.9.1 -jupyter==1.1.1 -jupyter-console==6.6.3 -jupyter-events==0.12.0 -jupyter-lsp==2.3.0 -jupyter_client==8.6.3 -jupyter_core==5.8.1 -jupyter_server==2.17.0 -jupyter_server_terminals==0.5.3 -jupyterlab==4.4.7 -jupyterlab_pygments==0.3.0 -jupyterlab_server==2.27.3 -jupyterlab_widgets==3.0.15 -kiwisolver==1.4.9 -lark==1.2.2 -MarkupSafe==3.0.2 -matplotlib==3.10.6 -matplotlib-inline==0.1.7 -mda-xdrlib==0.2.0 -MDAnalysis==2.9.0 -mistune==3.1.4 -mmtf-python==1.1.3 -mrcfile==1.5.4 -msgpack==1.1.1 -nbclient==0.10.2 -nbconvert==7.16.6 -nbformat==5.10.4 -nest-asyncio==1.6.0 -networkx==3.4.2 -notebook==7.4.5 -notebook_shim==0.2.4 -numpy==2.2.6 -overrides==7.7.0 -packaging==25.0 -pandas==2.3.2 -pandocfilters==1.5.1 -parso==0.8.5 -pexpect==4.9.0 -pillow==11.3.0 -platformdirs==4.4.0 -pluggy==1.6.0 -prometheus_client==0.23.1 -prompt_toolkit==3.0.52 -psutil==7.1.0 -ptyprocess==0.7.0 -pure_eval==0.2.3 -py3Dmol==2.5.2 -pycparser==2.23 -Pygments==2.19.2 -pyparsing==3.2.4 -pytest==8.4.2 -python-dateutil==2.9.0.post0 -python-json-logger==3.3.0 -pytz==2025.2 -PyYAML==6.0.2 -pyzmq==27.1.0 -rdkit==2025.3.6 -referencing==0.36.2 -requests==2.32.5 -rfc3339-validator==0.1.4 -rfc3986-validator==0.1.1 -rfc3987-syntax==1.1.0 -rpds-py==0.27.1 -scipy==1.15.3 -Send2Trash==1.8.3 -six==1.17.0 -sniffio==1.3.1 -soupsieve==2.8 -stack-data==0.6.3 -terminado==0.18.1 -threadpoolctl==3.6.0 -tinycss2==1.4.0 -tomli==2.2.1 -tornado==6.5.2 -tqdm==4.67.1 -traitlets==5.14.3 -types-python-dateutil==2.9.0.20250822 -typing_extensions==4.15.0 -tzdata==2025.2 -uri-template==1.3.0 -urllib3==2.5.0 -wcwidth==0.2.13 -webcolors==24.11.1 -webencodings==0.5.1 -websocket-client==1.8.0 -widgetsnbextension==4.0.14 --e polybuild --e polyconf --e polytop -