diff --git a/.github/workflows/run-code-checks.yaml b/.github/workflows/run-code-checks.yaml index 6298e1e..15e6967 100644 --- a/.github/workflows/run-code-checks.yaml +++ b/.github/workflows/run-code-checks.yaml @@ -13,14 +13,14 @@ jobs: - name: Build Docker image 🐳 run: | - docker build -t virus-clade-utils . + docker build -t cladetime . - name: lint 🧹 run: | - docker run --entrypoint /bin/bash virus-clade-utils \ + docker run --entrypoint /bin/bash cladetime \ -c "ruff check" - name: run unit tests 🧪 run: | - docker run --entrypoint /bin/bash virus-clade-utils \ + docker run --entrypoint /bin/bash cladetime \ -c "pytest -k unit" diff --git a/.github/workflows/run-integration-tests.yaml b/.github/workflows/run-integration-tests.yaml index 1aae231..3b3b76e 100644 --- a/.github/workflows/run-integration-tests.yaml +++ b/.github/workflows/run-integration-tests.yaml @@ -15,9 +15,9 @@ jobs: - name: Build Docker image 🐳 run: | - docker build -t virus-clade-utils . + docker build -t cladetime . - name: run integration tests 🧪 run: | - docker run --entrypoint /bin/bash virus-clade-utils \ + docker run --entrypoint /bin/bash cladetime \ -c "pytest -k integration" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 98afa91..3fc56c5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ exclude: > (?x)( - ^src/virus_clade_utils/bin/| - ^src/virus_clade_utils/data/ + ^src/cladetime/bin/| + ^src/cladetime/data/ ) repos: - repo: https://github.com/astral-sh/ruff-pre-commit diff --git a/Dockerfile b/Dockerfile index 849ba7b..97872a2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ FROM nextstrain/nextclade:3.8.2 FROM python:3.12-slim-bookworm -COPY --from=0 /usr/bin/nextclade /opt/src/virus_clade_utils/bin/ +COPY --from=0 /usr/bin/nextclade /opt/src/cladetime/bin/ # create a user to run the app ARG USERNAME=docker-user @@ -23,10 +23,10 @@ RUN chown -R docker-user:docker-user /opt/ ENV PYTHONPATH "${PYTHONPATH}:/opt/" # Install the dataformat CLI tool -WORKDIR /opt/src/virus_clade_utils/bin/ +WORKDIR /opt/src/cladetime/bin/ ADD https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/v2/linux-amd64/dataformat ./dataformat RUN chmod +x ./dataformat -ENV PATH "${PATH}:/opt/src/virus_clade_utils/bin/" +ENV PATH "${PATH}:/opt/src/cladetime/bin/" # Install Python dependencies WORKDIR /opt/ @@ -47,7 +47,7 @@ RUN uv pip install --system polars-lts-cpu --no-cache-dir USER $USERNAME -COPY src/virus_clade_utils/ ./src/virus_clade_utils/ +COPY src/cladetime/ ./src/cladetime/ COPY tests/ ./tests/ ENTRYPOINT ["assign_clades"] diff --git a/README.md b/README.md index 0844149..927609b 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ -# Virus Clade Utils +# Cladetime -Virus Clade Utils is a wrapper around existing tools for downloading and working with virus genome sequences: +Cladetime is a wrapper around existing tools for downloading and working with virus genome sequences: * The [NCBI Datasets API](https://www.ncbi.nlm.nih.gov/datasets/docs/v2/reference-docs/rest-api/) provided by the National Institutes of Healh. * The [Nexclade command line interface (CLI)](https://docs.nextstrain.org/projects/nextclade/en/stable/user/nextclade-cli/index.html) provided by [Nextstrain](https://docs.nextstrain.org/en/latest/). This package was developed to provide data required for the [COVID-19 Variant Nowcast hub](https://github.com/reichlab/variant-nowcast-hub), where modelers and teams forecast the daily proportions of COVID-19 variants in US states. -We are releasing `virus-clade-utils` as a standalone package for use by others who may find the functionality useful. +We are releasing `cladetime` as a standalone package for use by others who may find the functionality useful. ## Usage @@ -24,7 +24,7 @@ This library contains two types of components: To use the interactive `CladeTime` object, install this package: ```bash - pip install git+https://github.com/reichlab/virus-clade-utils.git + pip install git+https://github.com/reichlab/cladetime.git ``` Once the package is installed, you can instantiate a `CladeTime` object in a Python console @@ -33,7 +33,7 @@ Once the package is installed, you can instantiate a `CladeTime` object in a Pyt #### Work with the latest Nextstrain Sars-Cov-2 sequence metadata and clade assignments ```python -In [1]: from virus_clade_utils.cladetime import CladeTime +In [1]: from cladetime.cladetime import CladeTime In [2]: ct = CladeTime() @@ -86,7 +86,7 @@ Out[9]: #### Work with point-in-time Nextstrain Sars-Cov-2 sequence metadata and clade assignments ```python -In [10]: from virus_clade_utils.cladetime import CladeTime +In [10]: from cladetime import CladeTime In [11]: ct = CladeTime(sequence_as_of="2024-08-31", tree_as_of="2024-08-01") @@ -118,12 +118,12 @@ Use the directions below to run the pipeline in a Docker container. 1. Clone this repository and change into the high-level directory: ```bash - cd virus-clade-utils + cd cladetime ``` 2. Build the Docker image: ```bash - docker build --platform=linux/amd64 -t virus-clade-utils . + docker build --platform=linux/amd64 -t cladetime . ``` 3. To run the target data pipeline, passing in required arguments: @@ -131,7 +131,7 @@ Use the directions below to run the pipeline in a Docker container. ```bash docker run --platform linux/amd64 \ -v $(pwd)/data:/home/docker-user/ \ - virus-clade-utils \ + cladetime \ --sequence-released-since-date 2024-07-16 \ --reference-tree-date 2024-07-16 \ --data-dir /home/docker-user @@ -147,7 +147,7 @@ The clade assignments will now be in the local directory that was mounted to the 1. Enter the container's bash shell: ```bash - docker run --platform linux/amd64 -it --entrypoint bash virus-clade-utils + docker run --platform linux/amd64 -it --entrypoint bash cladetime ``` 2. Once you're in the shell of the container: @@ -165,7 +165,7 @@ To run the test suite in the Docker container (built above): 1. Enter the container's bash shell: ```bash - docker run --platform linux/amd64 -it --entrypoint bash virus-clade-utils + docker run --platform linux/amd64 -it --entrypoint bash cladetime ``` 2. Once you're in the shell of the container, run the tests: @@ -199,7 +199,7 @@ Follow the directions below to set this project up on your local machine. 1. Clone this repository and change into the project's high-level directory: ```bash - cd virus-clade-utils + cd cladetime ``` 2. Create a Python virtual environment: diff --git a/pyproject.toml b/pyproject.toml index ba79255..a38d78c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] -name = "virus-clade-utils" -version = "0.1.0" +name = "cladetime" +version = "0.2.0" description = "Assign clades to viral genome sequences at a point in time." authors = [ {name = "Evan Ray", email="elray@umass.edu"}, @@ -43,11 +43,11 @@ dev = [ ] [project.urls] -Repository = "https://github.com/reichlab/virus-clade-utils.git" +Repository = "https://github.com/reichlab/cladetime.git" [project.entry-points."console_scripts"] -assign_clades = "virus_clade_utils.assign_clades:main" -clade_list = "virus_clade_utils.get_clade_list:main" +assign_clades = "cladetime.assign_clades:main" +clade_list = "cladetime.get_clade_list:main" [build-system] requires = ["setuptools>=64", "wheel"] @@ -68,7 +68,7 @@ line-length = 120 lint.extend-select = ["I"] [tools.setuptools] -packages = ["virus_clade_utils"] +packages = ["cladetime"] [tool.mypy] ignore_missing_imports = true diff --git a/requirements/requirements-dev.txt b/requirements/requirements-dev.txt index 9596d67..361606d 100644 --- a/requirements/requirements-dev.txt +++ b/requirements/requirements-dev.txt @@ -1,13 +1,13 @@ # This file was autogenerated by uv via the following command: # uv pip compile pyproject.toml --extra dev -o requirements/requirements-dev.txt awscli==1.32.116 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) boto3==1.34.116 # via - # virus-clade-utils (pyproject.toml) + # cladetime (pyproject.toml) # moto boto3-stubs==1.35.28 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) botocore==1.34.116 # via # awscli @@ -24,20 +24,20 @@ charset-normalizer==3.3.2 # via requests click==8.1.7 # via - # virus-clade-utils (pyproject.toml) + # cladetime (pyproject.toml) # rich-click cloudpathlib==0.18.1 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) colorama==0.4.6 # via awscli coverage==7.5.3 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) cryptography==43.0.1 # via moto docutils==0.16 # via awscli freezegun==1.5.1 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) idna==3.7 # via requests iniconfig==2.0.0 @@ -59,9 +59,9 @@ markupsafe==2.1.5 mdurl==0.1.2 # via markdown-it-py moto==5.0.15 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) mypy==1.10.1 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) mypy-boto3-s3==1.35.22 # via boto3-stubs mypy-extensions==1.0.0 @@ -73,13 +73,13 @@ numpy==1.26.4 packaging==24.0 # via pytest pandas==2.2.2 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) pluggy==1.5.0 # via pytest polars==1.6.0 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) pyarrow==16.1.0 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) pyasn1==0.6.0 # via rsa pycparser==2.22 @@ -88,10 +88,10 @@ pygments==2.18.0 # via rich pytest==8.2.1 # via - # virus-clade-utils (pyproject.toml) + # cladetime (pyproject.toml) # pytest-mock pytest-mock==3.14.0 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) python-dateutil==2.9.0.post0 # via # botocore @@ -106,21 +106,21 @@ pyyaml==6.0.1 # responses requests==2.32.3 # via - # virus-clade-utils (pyproject.toml) + # cladetime (pyproject.toml) # moto # responses responses==0.25.3 # via moto rich==13.7.1 # via - # virus-clade-utils (pyproject.toml) + # cladetime (pyproject.toml) # rich-click rich-click==1.8.2 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) rsa==4.7.2 # via awscli ruff==0.5.0 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) s3transfer==0.10.1 # via # awscli @@ -128,30 +128,32 @@ s3transfer==0.10.1 six==1.16.0 # via python-dateutil structlog==24.2.0 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) types-awscrt==0.21.5 # via botocore-stubs types-python-dateutil==2.9.0.20240906 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) types-requests==2.32.0.20240914 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) types-s3transfer==0.10.2 # via boto3-stubs typing-extensions==4.12.0 # via + # boto3-stubs # mypy + # mypy-boto3-s3 # rich-click tzdata==2024.1 # via pandas urllib3==2.2.1 # via - # virus-clade-utils (pyproject.toml) + # cladetime (pyproject.toml) # botocore # requests # responses # types-requests us==3.2.0 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) werkzeug==3.0.4 # via moto xmltodict==0.13.0 diff --git a/requirements/requirements.txt b/requirements/requirements.txt index ecd54a0..c5847db 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -1,9 +1,9 @@ # This file was autogenerated by uv via the following command: # uv pip compile pyproject.toml -o requirements/requirements.txt awscli==1.32.97 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) boto3==1.34.97 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) botocore==1.34.97 # via # awscli @@ -15,10 +15,10 @@ charset-normalizer==3.3.2 # via requests click==8.1.7 # via - # virus-clade-utils (pyproject.toml) + # cladetime (pyproject.toml) # rich-click cloudpathlib==0.18.1 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) colorama==0.4.6 # via awscli docutils==0.16 @@ -40,11 +40,11 @@ numpy==1.26.4 # pandas # pyarrow pandas==2.2.2 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) polars==1.6.0 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) pyarrow==16.0.0 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) pyasn1==0.6.0 # via rsa pygments==2.18.0 @@ -58,13 +58,13 @@ pytz==2024.1 pyyaml==6.0.1 # via awscli requests==2.32.3 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) rich==13.7.1 # via - # virus-clade-utils (pyproject.toml) + # cladetime (pyproject.toml) # rich-click rich-click==1.8.0 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) rsa==4.7.2 # via awscli s3transfer==0.10.1 @@ -74,15 +74,15 @@ s3transfer==0.10.1 six==1.16.0 # via python-dateutil structlog==24.1.0 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) typing-extensions==4.11.0 # via rich-click tzdata==2024.1 # via pandas urllib3==2.2.1 # via - # virus-clade-utils (pyproject.toml) + # cladetime (pyproject.toml) # botocore # requests us==3.2.0 - # via virus-clade-utils (pyproject.toml) + # via cladetime (pyproject.toml) diff --git a/src/virus_clade_utils/__init__.py b/src/cladetime/__init__.py similarity index 91% rename from src/virus_clade_utils/__init__.py rename to src/cladetime/__init__.py index cfae590..bcc450d 100644 --- a/src/virus_clade_utils/__init__.py +++ b/src/cladetime/__init__.py @@ -2,6 +2,10 @@ import structlog +from cladetime.cladetime import CladeTime + + +__all__ = ["CladeTime"] def setup_logging(): shared_processors = [ diff --git a/src/virus_clade_utils/_typing.py b/src/cladetime/_typing.py similarity index 100% rename from src/virus_clade_utils/_typing.py rename to src/cladetime/_typing.py diff --git a/src/virus_clade_utils/assign_clades.py b/src/cladetime/assign_clades.py similarity index 96% rename from src/virus_clade_utils/assign_clades.py rename to src/cladetime/assign_clades.py index e98c0a6..0bd5a76 100644 --- a/src/virus_clade_utils/assign_clades.py +++ b/src/cladetime/assign_clades.py @@ -8,9 +8,9 @@ import rich_click as click import structlog -from virus_clade_utils.util.config import Config -from virus_clade_utils.util.reference import get_nextclade_dataset -from virus_clade_utils.util.sequence import ( +from cladetime.util.config import Config +from cladetime.util.reference import get_nextclade_dataset +from cladetime.util.sequence import ( _unzip_sequence_package, get_covid_genome_data, parse_sequence_assignments, @@ -121,7 +121,7 @@ def merge_metadata(config: Config) -> pl.DataFrame: ) # TBD: include only the columns we need - # https://github.com/reichlab/virus-clade-utils/issues/11 + # https://github.com/reichlab/cladetime/issues/11 if len(config.assignment_file_columns) > 0: joined = joined.select(config.assignment_file_columns) diff --git a/src/virus_clade_utils/cladetime.py b/src/cladetime/cladetime.py similarity index 95% rename from src/virus_clade_utils/cladetime.py rename to src/cladetime/cladetime.py index 28ca0f5..22d24f5 100644 --- a/src/virus_clade_utils/cladetime.py +++ b/src/cladetime/cladetime.py @@ -5,10 +5,10 @@ import polars as pl import structlog -from virus_clade_utils.exceptions import CladeTimeInvalidDateError, CladeTimeInvalidURLError -from virus_clade_utils.util.config import Config -from virus_clade_utils.util.reference import _get_s3_object_url -from virus_clade_utils.util.sequence import _get_ncov_metadata, get_covid_genome_metadata +from cladetime.exceptions import CladeTimeInvalidDateError, CladeTimeInvalidURLError +from cladetime.util.config import Config +from cladetime.util.reference import _get_s3_object_url +from cladetime.util.sequence import _get_ncov_metadata, get_covid_genome_metadata logger = structlog.get_logger() diff --git a/src/virus_clade_utils/exceptions.py b/src/cladetime/exceptions.py similarity index 100% rename from src/virus_clade_utils/exceptions.py rename to src/cladetime/exceptions.py diff --git a/src/virus_clade_utils/get_clade_list.py b/src/cladetime/get_clade_list.py similarity index 95% rename from src/virus_clade_utils/get_clade_list.py rename to src/cladetime/get_clade_list.py index 86c90f7..a5e63be 100644 --- a/src/virus_clade_utils/get_clade_list.py +++ b/src/cladetime/get_clade_list.py @@ -7,15 +7,15 @@ import structlog from cloudpathlib import AnyPath -from virus_clade_utils.util.config import Config -from virus_clade_utils.util.sequence import ( +from cladetime.util.config import Config +from cladetime.util.sequence import ( download_covid_genome_metadata, filter_covid_genome_metadata, get_clade_counts, get_covid_genome_metadata, ) -from virus_clade_utils.util.session import _get_session -from virus_clade_utils.util.timing import time_function +from cladetime.util.session import _get_session +from cladetime.util.timing import time_function logger = structlog.get_logger() diff --git a/src/virus_clade_utils/util/__init__.py b/src/cladetime/util/__init__.py similarity index 100% rename from src/virus_clade_utils/util/__init__.py rename to src/cladetime/util/__init__.py diff --git a/src/virus_clade_utils/util/config.py b/src/cladetime/util/config.py similarity index 100% rename from src/virus_clade_utils/util/config.py rename to src/cladetime/util/config.py diff --git a/src/virus_clade_utils/util/reference.py b/src/cladetime/util/reference.py similarity index 100% rename from src/virus_clade_utils/util/reference.py rename to src/cladetime/util/reference.py diff --git a/src/virus_clade_utils/util/sequence.py b/src/cladetime/util/sequence.py similarity index 97% rename from src/virus_clade_utils/util/sequence.py rename to src/cladetime/util/sequence.py index 4d621c4..1057073 100644 --- a/src/virus_clade_utils/util/sequence.py +++ b/src/cladetime/util/sequence.py @@ -11,9 +11,9 @@ import us from requests import Session -from virus_clade_utils.util.reference import _get_s3_object_url -from virus_clade_utils.util.session import _check_response, _get_session -from virus_clade_utils.util.timing import time_function +from cladetime.util.reference import _get_s3_object_url +from cladetime.util.session import _check_response, _get_session +from cladetime.util.timing import time_function logger = structlog.get_logger() diff --git a/src/virus_clade_utils/util/session.py b/src/cladetime/util/session.py similarity index 100% rename from src/virus_clade_utils/util/session.py rename to src/cladetime/util/session.py diff --git a/src/virus_clade_utils/util/timing.py b/src/cladetime/util/timing.py similarity index 100% rename from src/virus_clade_utils/util/timing.py rename to src/cladetime/util/timing.py diff --git a/tests/conftest.py b/tests/conftest.py index 9075659..b5b15a2 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -3,9 +3,9 @@ import boto3 import pytest import requests +from cladetime.util.config import Config from freezegun import freeze_time from moto import mock_aws -from virus_clade_utils.util.config import Config @pytest.fixture diff --git a/tests/integration/test_assign_clades.py b/tests/integration/test_assign_clades.py index 96ad180..498a344 100644 --- a/tests/integration/test_assign_clades.py +++ b/tests/integration/test_assign_clades.py @@ -1,8 +1,8 @@ import datetime import click +from cladetime.assign_clades import main from click.testing import CliRunner -from virus_clade_utils.assign_clades import main # test below runs the entire pipeline diff --git a/tests/unit/test_cladetime.py b/tests/unit/test_cladetime.py index 590c1a2..0e55533 100644 --- a/tests/unit/test_cladetime.py +++ b/tests/unit/test_cladetime.py @@ -4,9 +4,9 @@ import dateutil.tz import pytest +from cladetime.cladetime import CladeTime +from cladetime.exceptions import CladeTimeInvalidDateError, CladeTimeInvalidURLError from freezegun import freeze_time -from virus_clade_utils.cladetime import CladeTime -from virus_clade_utils.exceptions import CladeTimeInvalidDateError, CladeTimeInvalidURLError def test_cladetime_no_args(): @@ -86,7 +86,7 @@ def test_cladetime_urls(s3_setup, test_config, sequence_as_of, expected_content) mock = MagicMock(return_value=test_config, name="CladeTime._get_config_mock") - with patch("virus_clade_utils.cladetime.CladeTime._get_config", mock): + with patch("cladetime.CladeTime._get_config", mock): with freeze_time("2024-09-02 00:00:00"): ct = CladeTime(sequence_as_of=sequence_as_of) for url in [ct.url_sequence, ct.url_sequence_metadata]: @@ -114,14 +114,14 @@ def test_cladetime_ncov_metadata(): @pytest.mark.skip("Need moto fixup to test S3 URLs") def test_cladetime_sequence_metadata(test_config): mock = MagicMock(return_value=test_config, name="CladeTime._get_config_mock") - with patch("virus_clade_utils.cladetime.CladeTime._get_config", mock): + with patch("cladetime.CladeTime._get_config", mock): ct = CladeTime() assert isinstance(ct.sequence_metadata) def test_cladetime_sequence_metadata_no_url(test_config): mock = MagicMock(return_value=test_config, name="CladeTime._get_config_mock") - with patch("virus_clade_utils.cladetime.CladeTime._get_config", mock): + with patch("cladetime.CladeTime._get_config", mock): ct = CladeTime() ct.url_sequence_metadata = None diff --git a/tests/unit/test_get_clade_list.py b/tests/unit/test_get_clade_list.py index bad8a26..f5940a1 100644 --- a/tests/unit/test_get_clade_list.py +++ b/tests/unit/test_get_clade_list.py @@ -2,7 +2,7 @@ from unittest.mock import MagicMock, patch import pytest -from virus_clade_utils.get_clade_list import main +from cladetime.get_clade_list import main @pytest.fixture @@ -33,7 +33,7 @@ def test_clade_list(test_file_path, tmp_path, threshold, weeks, max_clades, expe test_genome_metadata = test_file_path / "test_metadata.tsv" mock = MagicMock(return_value=test_genome_metadata, name="genome_metadata_download_mock") - with patch("virus_clade_utils.get_clade_list.download_covid_genome_metadata", mock): + with patch("cladetime.get_clade_list.download_covid_genome_metadata", mock): actual_list = main("some_bucket", "some_key", tmp_path, threshold, weeks, max_clades) assert set(expected_list) == set(actual_list) diff --git a/tests/unit/util/test_reference.py b/tests/unit/util/test_reference.py index 0a0e16a..a14a9b8 100644 --- a/tests/unit/util/test_reference.py +++ b/tests/unit/util/test_reference.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from virus_clade_utils.util.reference import _get_s3_object_url, get_nextclade_dataset +from cladetime.util.reference import _get_s3_object_url, get_nextclade_dataset @mock.patch("subprocess.run") diff --git a/tests/unit/util/test_sequence.py b/tests/unit/util/test_sequence.py index 6bd9382..b5f21b7 100644 --- a/tests/unit/util/test_sequence.py +++ b/tests/unit/util/test_sequence.py @@ -4,7 +4,7 @@ import polars as pl import pytest -from virus_clade_utils.util.sequence import ( +from cladetime.util.sequence import ( download_covid_genome_metadata, filter_covid_genome_metadata, get_covid_genome_metadata,