From ee8c814af195544792ac96a3f8c06508444f02e2 Mon Sep 17 00:00:00 2001 From: ChrisGadek1 Date: Thu, 26 Mar 2026 22:50:37 +0100 Subject: [PATCH] Add packaging configuration and update .gitignore for build artifacts --- .gitignore | 5 ++++- MANIFEST.in | 9 +++++++++ README.md | 22 ++++++++++++++++++++++ pyproject.toml | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 MANIFEST.in create mode 100644 pyproject.toml diff --git a/.gitignore b/.gitignore index 9beeac1..31833e9 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,7 @@ dask-scratch-space *.h5 !tests/data/distograms_pdbs/pdbs.h5 -!tests/data/dataset_expected/structures/*/*/*/*/*.h5 \ No newline at end of file +!tests/data/dataset_expected/structures/*/*/*/*/*.h5 + +*.egg-info +build diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..9311c11 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,9 @@ +# include everything in the sdist (be careful — this will bundle all files) +global-include * + +recursive-exclude tests * +recursive-exclude .github * +recursive-exclude .pytest_cache * +recursive-exclude build * +recursive-exclude *.egg-info * +recursive-exclude dist * \ No newline at end of file diff --git a/README.md b/README.md index 644c481..be2e84b 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,28 @@ PYTHONPATH='.' python3 -u ${FRIDATA_PATH}/fridata.py \ -e ${EMBEDDER_TYPE} ``` +## Running as a CLI tool + +Assuming all `Instalation and activation` steps succeeded. + +0. Go into `FRIdata` directory + +``` +cd +``` + +1. Install as a CLI tool + +``` +python3 -m pip install -e . +``` + +2. Now FRIdata can be run as a CLI tool + +``` +$ fridata <...> +``` + ## Running on HPC Running FRIdata on HPC differs on CPU and GPU nodes. This instruction set is valid for HPC hosted in PLGrid infrastructure. Running on other infrastructures may require additional adjustments. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..80b81eb --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,48 @@ +[build-system] +requires = ["setuptools>=61.0", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "FRIdata" +version = "0.1.0" +readme = "README.md" +requires-python = ">=3.10" +dependencies = [ + "foldcomp", + "pydantic>=2.8.2", + "scipy>=1.14.0", + "h5py", + "matplotlib", + "biotite>=0.41.2", + "numpy>=1.26.4,<1.27.0", + "genson", + "bs4", + "bio~=1.7.0", + "pytest", + "pytest-order", + "dask>=2024.4.2,<2025.0.0", + "dask[dataframe]", + "distributed>=2024.4.2,<2025.0.0", + "python-dotenv", + "tables", + "biopython", + "bokeh>=2.4.2,<3.0.0", + "pdbfixer", + "mamba", + "transformers", + "tqdm", + "pytorch-gpu", + "esm" +] + +[project.scripts] +fridata = "fridata:main" + +[tool.setuptools] +# fridata.py is a single-module at project root; install as py-module +py-modules = ["fridata"] +include-package-data = true + +[tool.setuptools.packages.find] +where = ["."] +include = ["toolbox*"] \ No newline at end of file