From 2cb67e2b91701a64743af74a5173efaa8de5de8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 00:12:24 +0000 Subject: [PATCH 1/6] Bump the uv group across 1 directory with 2 updates Bumps the uv group with 2 updates in the / directory: [nbconvert](https://github.com/jupyter/nbconvert) and [protobuf](https://github.com/protocolbuffers/protobuf). Updates `nbconvert` from 7.16.6 to 7.17.0 - [Release notes](https://github.com/jupyter/nbconvert/releases) - [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md) - [Commits](https://github.com/jupyter/nbconvert/compare/v7.16.6...v7.17.0) Updates `protobuf` from 6.33.4 to 6.33.5 - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Commits](https://github.com/protocolbuffers/protobuf/commits) --- updated-dependencies: - dependency-name: nbconvert dependency-version: 7.17.0 dependency-type: indirect dependency-group: uv - dependency-name: protobuf dependency-version: 6.33.5 dependency-type: indirect dependency-group: uv ... Signed-off-by: dependabot[bot] --- uv.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/uv.lock b/uv.lock index 9e5a82b..3b98888 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.13" resolution-markers = [ "python_full_version >= '3.14'", @@ -2398,7 +2398,7 @@ wheels = [ [[package]] name = "nbconvert" -version = "7.16.6" +version = "7.17.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "beautifulsoup4" }, @@ -2416,9 +2416,9 @@ dependencies = [ { name = "pygments" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a3/59/f28e15fc47ffb73af68a8d9b47367a8630d76e97ae85ad18271b9db96fdf/nbconvert-7.16.6.tar.gz", hash = "sha256:576a7e37c6480da7b8465eefa66c17844243816ce1ccc372633c6b71c3c0f582", size = 857715, upload-time = "2025-01-28T09:29:14.724Z" } +sdist = { url = "https://files.pythonhosted.org/packages/38/47/81f886b699450d0569f7bc551df2b1673d18df7ff25cc0c21ca36ed8a5ff/nbconvert-7.17.0.tar.gz", hash = "sha256:1b2696f1b5be12309f6c7d707c24af604b87dfaf6d950794c7b07acab96dda78", size = 862855, upload-time = "2026-01-29T16:37:48.478Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/9a/cd673b2f773a12c992f41309ef81b99da1690426bd2f96957a7ade0d3ed7/nbconvert-7.16.6-py3-none-any.whl", hash = "sha256:1375a7b67e0c2883678c48e506dc320febb57685e5ee67faa51b18a90f3a712b", size = 258525, upload-time = "2025-01-28T09:29:12.551Z" }, + { url = "https://files.pythonhosted.org/packages/0d/4b/8d5f796a792f8a25f6925a96032f098789f448571eb92011df1ae59e8ea8/nbconvert-7.17.0-py3-none-any.whl", hash = "sha256:4f99a63b337b9a23504347afdab24a11faa7d86b405e5c8f9881cd313336d518", size = 261510, upload-time = "2026-01-29T16:37:46.322Z" }, ] [[package]] @@ -2806,17 +2806,17 @@ wheels = [ [[package]] name = "protobuf" -version = "6.33.4" +version = "6.33.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/53/b8/cda15d9d46d03d4aa3a67cb6bffe05173440ccf86a9541afaf7ac59a1b6b/protobuf-6.33.4.tar.gz", hash = "sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91", size = 444346, upload-time = "2026-01-12T18:33:40.109Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/25/7c72c307aafc96fa87062aa6291d9f7c94836e43214d43722e86037aac02/protobuf-6.33.5.tar.gz", hash = "sha256:6ddcac2a081f8b7b9642c09406bc6a4290128fce5f471cddd165960bb9119e5c", size = 444465, upload-time = "2026-01-29T21:51:33.494Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/be/24ef9f3095bacdf95b458543334d0c4908ccdaee5130420bf064492c325f/protobuf-6.33.4-cp310-abi3-win32.whl", hash = "sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d", size = 425612, upload-time = "2026-01-12T18:33:29.656Z" }, - { url = "https://files.pythonhosted.org/packages/31/ad/e5693e1974a28869e7cd244302911955c1cebc0161eb32dfa2b25b6e96f0/protobuf-6.33.4-cp310-abi3-win_amd64.whl", hash = "sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc", size = 436962, upload-time = "2026-01-12T18:33:31.345Z" }, - { url = "https://files.pythonhosted.org/packages/66/15/6ee23553b6bfd82670207ead921f4d8ef14c107e5e11443b04caeb5ab5ec/protobuf-6.33.4-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0", size = 427612, upload-time = "2026-01-12T18:33:32.646Z" }, - { url = "https://files.pythonhosted.org/packages/2b/48/d301907ce6d0db75f959ca74f44b475a9caa8fcba102d098d3c3dd0f2d3f/protobuf-6.33.4-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e", size = 324484, upload-time = "2026-01-12T18:33:33.789Z" }, - { url = "https://files.pythonhosted.org/packages/92/1c/e53078d3f7fe710572ab2dcffd993e1e3b438ae71cfc031b71bae44fcb2d/protobuf-6.33.4-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6", size = 339256, upload-time = "2026-01-12T18:33:35.231Z" }, - { url = "https://files.pythonhosted.org/packages/e8/8e/971c0edd084914f7ee7c23aa70ba89e8903918adca179319ee94403701d5/protobuf-6.33.4-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9", size = 323311, upload-time = "2026-01-12T18:33:36.305Z" }, - { url = "https://files.pythonhosted.org/packages/75/b1/1dc83c2c661b4c62d56cc081706ee33a4fc2835bd90f965baa2663ef7676/protobuf-6.33.4-py3-none-any.whl", hash = "sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc", size = 170532, upload-time = "2026-01-12T18:33:39.199Z" }, + { url = "https://files.pythonhosted.org/packages/b1/79/af92d0a8369732b027e6d6084251dd8e782c685c72da161bd4a2e00fbabb/protobuf-6.33.5-cp310-abi3-win32.whl", hash = "sha256:d71b040839446bac0f4d162e758bea99c8251161dae9d0983a3b88dee345153b", size = 425769, upload-time = "2026-01-29T21:51:21.751Z" }, + { url = "https://files.pythonhosted.org/packages/55/75/bb9bc917d10e9ee13dee8607eb9ab963b7cf8be607c46e7862c748aa2af7/protobuf-6.33.5-cp310-abi3-win_amd64.whl", hash = "sha256:3093804752167bcab3998bec9f1048baae6e29505adaf1afd14a37bddede533c", size = 437118, upload-time = "2026-01-29T21:51:24.022Z" }, + { url = "https://files.pythonhosted.org/packages/a2/6b/e48dfc1191bc5b52950246275bf4089773e91cb5ba3592621723cdddca62/protobuf-6.33.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:a5cb85982d95d906df1e2210e58f8e4f1e3cdc088e52c921a041f9c9a0386de5", size = 427766, upload-time = "2026-01-29T21:51:25.413Z" }, + { url = "https://files.pythonhosted.org/packages/4e/b1/c79468184310de09d75095ed1314b839eb2f72df71097db9d1404a1b2717/protobuf-6.33.5-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:9b71e0281f36f179d00cbcb119cb19dec4d14a81393e5ea220f64b286173e190", size = 324638, upload-time = "2026-01-29T21:51:26.423Z" }, + { url = "https://files.pythonhosted.org/packages/c5/f5/65d838092fd01c44d16037953fd4c2cc851e783de9b8f02b27ec4ffd906f/protobuf-6.33.5-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:8afa18e1d6d20af15b417e728e9f60f3aa108ee76f23c3b2c07a2c3b546d3afd", size = 339411, upload-time = "2026-01-29T21:51:27.446Z" }, + { url = "https://files.pythonhosted.org/packages/9b/53/a9443aa3ca9ba8724fdfa02dd1887c1bcd8e89556b715cfbacca6b63dbec/protobuf-6.33.5-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:cbf16ba3350fb7b889fca858fb215967792dc125b35c7976ca4818bee3521cf0", size = 323465, upload-time = "2026-01-29T21:51:28.925Z" }, + { url = "https://files.pythonhosted.org/packages/57/bf/2086963c69bdac3d7cff1cc7ff79b8ce5ea0bec6797a017e1be338a46248/protobuf-6.33.5-py3-none-any.whl", hash = "sha256:69915a973dd0f60f31a08b8318b73eab2bd6a392c79184b3612226b0a3f8ec02", size = 170687, upload-time = "2026-01-29T21:51:32.557Z" }, ] [[package]] From 81583bc3d14743a6a62e55d6d887ab54cf1ab349 Mon Sep 17 00:00:00 2001 From: ialarmedalien Date: Tue, 24 Feb 2026 08:42:53 -0800 Subject: [PATCH 2/6] Updating dockerfile to add tini and a default endpoint --- Dockerfile | 19 ++++++++++++++----- pyproject.toml | 25 +++++++++++++++---------- uv.lock | 32 ++++++++++++++++++-------------- 3 files changed, 47 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index c25a823..4b637a3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,16 @@ +# Dockerfile for running dlt pipelines + +# Dockerfile is based heavily on the example uv dockerfile: +# https://github.com/astral-sh/uv-docker-example + # Use a Python image with uv pre-installed -FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim +FROM ghcr.io/astral-sh/uv:python3.13-trixie-slim + +# Set environment variable to noninteractive to prevent prompts during apt operations +ENV DEBIAN_FRONTEND=noninteractive + +# add tini +RUN apt-get update -y && apt-get install -y --no-install-recommends tini git # Install the project into `/app` WORKDIR /app @@ -38,7 +49,5 @@ RUN groupadd --system --gid 999 nonroot \ # Use the non-root user to run our application USER nonroot -# Reset the entrypoint, don't invoke `uv` -ENTRYPOINT [] - -# CMD ["uv", "run", "python", "--version"] +# run the command using tini +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/pyproject.toml b/pyproject.toml index d9dd88d..0ec6013 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,13 +9,11 @@ authors = [ ] dependencies = [ - "biopython>=1.86", "click>=8.3.1", "dlt[deltalake,filesystem,parquet]>=1.21.0", "lxml>=6.0.2", "pydantic>=2.12.5", "pydantic-settings>=2.12.0", - "ruff>=0.14.14", ] [project.scripts] @@ -25,10 +23,12 @@ uniref_pipeline = "cdm_data_loader_utils.pipelines.uniref_pipeline:cli" [dependency-groups] dev = [ + "berdl-notebook-utils>=0.0.1", "pytest>=9.0.2", "pytest-asyncio>=1.3.0", "pytest-cov>=7.0.0", "pytest-env>=1.2.0", + "ruff>=0.14.14", ] experimental = [ "mutmut>=3.4.0", @@ -36,24 +36,30 @@ experimental = [ local = [ "berdl-notebook-utils>=0.0.1", ] -minio = [ - "boto3[crt]>=1.42.0", - "tqdm>=4.67.3", -] models = [ "genson>=1.3.0", "json2python-models>=0.3.1", ] -pipeline = [] xml = [ "xmlschema>=4.3.1", "xsdata[cli,lxml]>=26.1", ] +[project.optional-dependencies] +# for minio interactions -- see utils/minio.py for more details +minio = [ + "boto3[crt]>=1.42.0", + "tqdm>=4.67.3", +] + +biopython = [ + "biopython>=1.86", +] + + [tool.ruff] line-length = 120 target-version = "py313" - # Exclude a variety of commonly ignored directories. exclude = [ "__pypackages__", @@ -127,7 +133,7 @@ select = [ "SLOT", # flake8-slots "SIM", # flake8-simplify "TID", # flake8-tidy-imports - "TCH", # flake8-type-checking + "TC", # flake8-type-checking "INT", # flake8-gettext "ARG", # flake8-unused-arguments "PTH", # flake8-use-pathlib @@ -149,7 +155,6 @@ select = [ # Allow autofix for all enabled rules (when `--fix`) is provided. fixable = ["ALL"] -unfixable = [] ignore = [ # D200: unnecessary-multiline-docstring diff --git a/uv.lock b/uv.lock index 311ebfa..4a9513d 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 2 requires-python = ">=3.13" resolution-markers = [ "python_full_version >= '3.14' and platform_python_implementation != 'PyPy' and sys_platform != 'emscripten'", @@ -469,21 +469,30 @@ name = "cdm-data-loader-utils" version = "0.1.0" source = { editable = "." } dependencies = [ - { name = "biopython" }, { name = "click" }, { name = "dlt", extra = ["deltalake", "filesystem", "parquet"] }, { name = "lxml" }, { name = "pydantic" }, { name = "pydantic-settings" }, - { name = "ruff" }, +] + +[package.optional-dependencies] +biopython = [ + { name = "biopython" }, +] +minio = [ + { name = "boto3", extra = ["crt"] }, + { name = "tqdm" }, ] [package.dev-dependencies] dev = [ + { name = "berdl-notebook-utils" }, { name = "pytest" }, { name = "pytest-asyncio" }, { name = "pytest-cov" }, { name = "pytest-env" }, + { name = "ruff" }, ] experimental = [ { name = "mutmut" }, @@ -491,10 +500,6 @@ experimental = [ local = [ { name = "berdl-notebook-utils" }, ] -minio = [ - { name = "boto3", extra = ["crt"] }, - { name = "tqdm" }, -] models = [ { name = "genson" }, { name = "json2python-models" }, @@ -506,33 +511,32 @@ xml = [ [package.metadata] requires-dist = [ - { name = "biopython", specifier = ">=1.86" }, + { name = "biopython", marker = "extra == 'biopython'", specifier = ">=1.86" }, + { name = "boto3", extras = ["crt"], marker = "extra == 'minio'", specifier = ">=1.42.0" }, { name = "click", specifier = ">=8.3.1" }, { name = "dlt", extras = ["deltalake", "filesystem", "parquet"], specifier = ">=1.21.0" }, { name = "lxml", specifier = ">=6.0.2" }, { name = "pydantic", specifier = ">=2.12.5" }, { name = "pydantic-settings", specifier = ">=2.12.0" }, - { name = "ruff", specifier = ">=0.14.14" }, + { name = "tqdm", marker = "extra == 'minio'", specifier = ">=4.67.3" }, ] +provides-extras = ["minio", "biopython"] [package.metadata.requires-dev] dev = [ + { name = "berdl-notebook-utils", git = "https://github.com/BERDataLakehouse/spark_notebook.git?subdirectory=notebook_utils" }, { name = "pytest", specifier = ">=9.0.2" }, { name = "pytest-asyncio", specifier = ">=1.3.0" }, { name = "pytest-cov", specifier = ">=7.0.0" }, { name = "pytest-env", specifier = ">=1.2.0" }, + { name = "ruff", specifier = ">=0.14.14" }, ] experimental = [{ name = "mutmut", specifier = ">=3.4.0" }] local = [{ name = "berdl-notebook-utils", git = "https://github.com/BERDataLakehouse/spark_notebook.git?subdirectory=notebook_utils" }] -minio = [ - { name = "boto3", extras = ["crt"], specifier = ">=1.42.0" }, - { name = "tqdm", specifier = ">=4.67.3" }, -] models = [ { name = "genson", specifier = ">=1.3.0" }, { name = "json2python-models", specifier = ">=0.3.1" }, ] -pipeline = [] xml = [ { name = "xmlschema", specifier = ">=4.3.1" }, { name = "xsdata", extras = ["cli", "lxml"], specifier = ">=26.1" }, From 0a281ee1fd806a5a9fb64e00e073730fab49599d Mon Sep 17 00:00:00 2001 From: ialarmedalien Date: Tue, 24 Feb 2026 08:44:26 -0800 Subject: [PATCH 3/6] updating to remove redundant berdl-notebook-utils reference --- pyproject.toml | 4 ---- uv.lock | 4 ---- 2 files changed, 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0ec6013..c043c67 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,9 +33,6 @@ dev = [ experimental = [ "mutmut>=3.4.0", ] -local = [ - "berdl-notebook-utils>=0.0.1", -] models = [ "genson>=1.3.0", "json2python-models>=0.3.1", @@ -56,7 +53,6 @@ biopython = [ "biopython>=1.86", ] - [tool.ruff] line-length = 120 target-version = "py313" diff --git a/uv.lock b/uv.lock index 4a9513d..e17a1e5 100644 --- a/uv.lock +++ b/uv.lock @@ -497,9 +497,6 @@ dev = [ experimental = [ { name = "mutmut" }, ] -local = [ - { name = "berdl-notebook-utils" }, -] models = [ { name = "genson" }, { name = "json2python-models" }, @@ -532,7 +529,6 @@ dev = [ { name = "ruff", specifier = ">=0.14.14" }, ] experimental = [{ name = "mutmut", specifier = ">=3.4.0" }] -local = [{ name = "berdl-notebook-utils", git = "https://github.com/BERDataLakehouse/spark_notebook.git?subdirectory=notebook_utils" }] models = [ { name = "genson", specifier = ">=1.3.0" }, { name = "json2python-models", specifier = ">=0.3.1" }, From 4fac0cf3646998022ea735eca35f4a24de505846 Mon Sep 17 00:00:00 2001 From: ialarmedalien Date: Tue, 24 Feb 2026 09:02:17 -0800 Subject: [PATCH 4/6] fixing local group addition --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ab4dfd3..1f63478 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -103,7 +103,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies - run: uv sync --dev --group local + run: uv sync --dev - name: Run local tests shell: bash From 7fed6fd67b7f5573fbd0ce9c39df25dcea5b025e Mon Sep 17 00:00:00 2001 From: ialarmedalien Date: Tue, 24 Feb 2026 09:07:14 -0800 Subject: [PATCH 5/6] grrrr python deps --- pyproject.toml | 1 + uv.lock | 2 ++ 2 files changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index c043c67..e88041a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,7 @@ uniref_pipeline = "cdm_data_loader_utils.pipelines.uniref_pipeline:cli" [dependency-groups] dev = [ "berdl-notebook-utils>=0.0.1", + "biopython>=1.86", "pytest>=9.0.2", "pytest-asyncio>=1.3.0", "pytest-cov>=7.0.0", diff --git a/uv.lock b/uv.lock index e17a1e5..b3483a6 100644 --- a/uv.lock +++ b/uv.lock @@ -488,6 +488,7 @@ minio = [ [package.dev-dependencies] dev = [ { name = "berdl-notebook-utils" }, + { name = "biopython" }, { name = "pytest" }, { name = "pytest-asyncio" }, { name = "pytest-cov" }, @@ -522,6 +523,7 @@ provides-extras = ["minio", "biopython"] [package.metadata.requires-dev] dev = [ { name = "berdl-notebook-utils", git = "https://github.com/BERDataLakehouse/spark_notebook.git?subdirectory=notebook_utils" }, + { name = "biopython", specifier = ">=1.86" }, { name = "pytest", specifier = ">=9.0.2" }, { name = "pytest-asyncio", specifier = ">=1.3.0" }, { name = "pytest-cov", specifier = ">=7.0.0" }, From b439671b25fce541e3652dc88e23d6c2d4f304fc Mon Sep 17 00:00:00 2001 From: ialarmedalien Date: Tue, 24 Feb 2026 12:10:44 -0800 Subject: [PATCH 6/6] add entrypoint script --- .dockerignore | 11 +++++++++++ Dockerfile | 11 +++++------ scripts/entrypoint.sh | 26 ++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 .dockerignore create mode 100755 scripts/entrypoint.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f78abe2 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +.git +.github +.ipython +.jupyter +.pytest_cache +.venv +.vscode +CODE_OF_CONDUCT.md +CONTRIBUTING.md +Dockerfile +LICENSE diff --git a/Dockerfile b/Dockerfile index 4b637a3..2087969 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,9 +12,6 @@ ENV DEBIAN_FRONTEND=noninteractive # add tini RUN apt-get update -y && apt-get install -y --no-install-recommends tini git -# Install the project into `/app` -WORKDIR /app - # Enable bytecode compilation ENV UV_COMPILE_BYTECODE=1 @@ -27,6 +24,9 @@ ENV UV_NO_DEV=1 # Ensure installed tools can be executed out of the box ENV UV_TOOL_BIN_DIR=/usr/local/bin +# Install the project into `/app` +WORKDIR /app + # Install the project's dependencies using the lockfile and settings RUN --mount=type=cache,target=/root/.cache/uv \ --mount=type=bind,source=uv.lock,target=uv.lock \ @@ -46,8 +46,7 @@ ENV PATH="/app/.venv/bin:$PATH" RUN groupadd --system --gid 999 nonroot \ && useradd --system --gid 999 --uid 999 --create-home nonroot +COPY --chmod=+x ./scripts/entrypoint.sh /app/ # Use the non-root user to run our application USER nonroot - -# run the command using tini -ENTRYPOINT ["/usr/bin/tini", "--"] +ENTRYPOINT ["./entrypoint.sh"] diff --git a/scripts/entrypoint.sh b/scripts/entrypoint.sh new file mode 100755 index 0000000..c38a68f --- /dev/null +++ b/scripts/entrypoint.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Ensure at least one argument is provided +if [ "$#" -eq 0 ]; then + echo "Usage: $0 {uniref|uniprot} [args...]" + exit 1 +fi + +cmd="$1" +shift + +case "$cmd" in + uniref) + # Run the uniref pipeline with any additional arguments via tini + exec /usr/bin/tini -- uv run uniref_pipeline "$@" + ;; + uniprot) + # Run the uniprot pipeline with any additional arguments via tini + exec /usr/bin/tini -- uv run uniprot_pipeline "$@" + ;; + *) + echo "Error: unknown command '$cmd'; valid commands are 'uniref' or 'uniprot'." >&2 + exit 1 + ;; +esac