From 94731f7b2b4bdc195e28acd308e95d3a47bc4d31 Mon Sep 17 00:00:00 2001 From: peterschmidt85 Date: Mon, 8 Dec 2025 18:30:48 +0100 Subject: [PATCH 1/9] [Verda] Rename datacrunch to verda #204 --- .github/workflows/catalogs.yml | 23 ++++--- README.md | 2 +- pyproject.toml | 6 +- src/gpuhunt/__main__.py | 10 ++- src/gpuhunt/_internal/catalog.py | 2 +- .../providers/{datacrunch.py => verda.py} | 14 ++--- src/integrity_tests/test_datacrunch.py | 4 +- src/tests/_internal/test_constraints.py | 16 ++--- .../{test_datacrunch.py => test_verda.py} | 62 +++++++++---------- 9 files changed, 71 insertions(+), 68 deletions(-) rename src/gpuhunt/providers/{datacrunch.py => verda.py} (89%) rename src/tests/providers/{test_datacrunch.py => test_verda.py} (85%) diff --git a/.github/workflows/catalogs.yml b/.github/workflows/catalogs.yml index dcd7b7d..ac4a4ef 100644 --- a/.github/workflows/catalogs.yml +++ b/.github/workflows/catalogs.yml @@ -70,8 +70,8 @@ jobs: path: azure.csv retention-days: 1 - catalog-datacrunch: - name: Collect DataCrunch catalog + catalog-verda: + name: Collect Verda catalog runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -81,17 +81,22 @@ jobs: - name: Install dependencies run: | pip install pip -U - pip install -e '.[datacrunch]' + pip install -e '.[verda]' - name: Collect catalog working-directory: src env: - DATACRUNCH_CLIENT_ID: ${{ secrets.DATACRUNCH_CLIENT_ID }} - DATACRUNCH_CLIENT_SECRET: ${{ secrets.DATACRUNCH_CLIENT_SECRET }} - run: python -m gpuhunt datacrunch --output ../datacrunch.csv + VERDA_CLIENT_ID: ${{ secrets.VERDA_CLIENT_ID }} + VERDA_CLIENT_SECRET: ${{ secrets.VERDA_CLIENT_SECRET }} + run: | + python -m gpuhunt verda --output ../verda.csv + # Copy for backward compatibility + cp ../verda.csv ../datacrunch.csv - uses: actions/upload-artifact@v4 with: - name: catalogs-datacrunch - path: datacrunch.csv + name: catalogs-verda + path: | + verda.csv + datacrunch.csv retention-days: 1 catalog-gcp: @@ -252,7 +257,7 @@ jobs: needs: - catalog-aws - catalog-azure - - catalog-datacrunch + - catalog-verda - catalog-gcp - catalog-lambdalabs - catalog-nebius diff --git a/README.md b/README.md index 813fbd2..263cf79 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ print(*items, sep="\n") * Azure * CloudRift * Cudo Compute -* DataCrunch +* Verda * GCP * LambdaLabs * Nebius diff --git a/pyproject.toml b/pyproject.toml index 51b545a..b0390b3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,10 +52,10 @@ oci = [ "oci", "pydantic>=1.10.10,<2.0.0", ] -datacrunch = [ - "datacrunch" +verda = [ + "verda" ] -all = ["gpuhunt[aws,azure,datacrunch,gcp,maybe_nebius,oci]"] +all = ["gpuhunt[aws,azure,verda,gcp,maybe_nebius,oci]"] dev = [ "pre-commit", "pytest~=7.0", diff --git a/src/gpuhunt/__main__.py b/src/gpuhunt/__main__.py index 229ab1c..fa85c56 100644 --- a/src/gpuhunt/__main__.py +++ b/src/gpuhunt/__main__.py @@ -15,7 +15,7 @@ def main(): "azure", "cloudrift", "cudo", - "datacrunch", + "verda", "digitalocean", "gcp", "hotaisle", @@ -49,12 +49,10 @@ def main(): from gpuhunt.providers.cloudrift import CloudRiftProvider provider = CloudRiftProvider() - elif args.provider == "datacrunch": - from gpuhunt.providers.datacrunch import DataCrunchProvider + elif args.provider == "verda": + from gpuhunt.providers.verda import VerdaProvider - provider = DataCrunchProvider( - os.getenv("DATACRUNCH_CLIENT_ID"), os.getenv("DATACRUNCH_CLIENT_SECRET") - ) + provider = VerdaProvider(os.getenv("VERDA_CLIENT_ID"), os.getenv("VERDA_CLIENT_SECRET")) elif args.provider == "digitalocean": from gpuhunt.providers.digitalocean import DigitalOceanProvider diff --git a/src/gpuhunt/_internal/catalog.py b/src/gpuhunt/_internal/catalog.py index 7239f04..07f69bf 100644 --- a/src/gpuhunt/_internal/catalog.py +++ b/src/gpuhunt/_internal/catalog.py @@ -24,7 +24,7 @@ OFFLINE_PROVIDERS = [ "aws", "azure", - "datacrunch", + "verda", "gcp", "lambdalabs", "nebius", diff --git a/src/gpuhunt/providers/datacrunch.py b/src/gpuhunt/providers/verda.py similarity index 89% rename from src/gpuhunt/providers/datacrunch.py rename to src/gpuhunt/providers/verda.py index 97e0991..54aa8fb 100644 --- a/src/gpuhunt/providers/datacrunch.py +++ b/src/gpuhunt/providers/verda.py @@ -5,8 +5,8 @@ from collections.abc import Iterable from typing import Optional -from datacrunch import DataCrunchClient -from datacrunch.instance_types.instance_types import InstanceType +from verda import VerdaClient +from verda.instance_types import InstanceType from gpuhunt import QueryFilter, RawCatalogItem from gpuhunt.providers import AbstractProvider @@ -19,11 +19,11 @@ ] -class DataCrunchProvider(AbstractProvider): - NAME = "datacrunch" +class VerdaProvider(AbstractProvider): + NAME = "verda" def __init__(self, client_id: str, client_secret: str) -> None: - self.datacrunch_client = DataCrunchClient(client_id, client_secret) + self.VERDA_client = VerdaClient(client_id, client_secret) def get( self, query_filter: Optional[QueryFilter] = None, balance_resources: bool = True @@ -38,10 +38,10 @@ def get( return sorted(instances, key=lambda x: x.price) def _get_instance_types(self) -> list[InstanceType]: - return self.datacrunch_client.instance_types.get() + return self.VERDA_client.instance_types.get() def _get_locations(self) -> list[dict]: - return self.datacrunch_client.locations.get() + return self.VERDA_client.locations.get() @classmethod def filter(cls, offers: list[RawCatalogItem]) -> list[RawCatalogItem]: diff --git a/src/integrity_tests/test_datacrunch.py b/src/integrity_tests/test_datacrunch.py index 0ab76ac..8b8d158 100644 --- a/src/integrity_tests/test_datacrunch.py +++ b/src/integrity_tests/test_datacrunch.py @@ -4,12 +4,12 @@ import pytest -from gpuhunt.providers.datacrunch import ALL_AMD_GPUS, GPU_MAP +from gpuhunt.providers.verda import ALL_AMD_GPUS, GPU_MAP @pytest.fixture def data_rows(catalog_dir: Path) -> list[dict]: - file = catalog_dir / "datacrunch.csv" + file = catalog_dir / "verda.csv" reader = csv.DictReader(file.open()) return list(reader) diff --git a/src/tests/_internal/test_constraints.py b/src/tests/_internal/test_constraints.py index 5c5057c..c8d58eb 100644 --- a/src/tests/_internal/test_constraints.py +++ b/src/tests/_internal/test_constraints.py @@ -27,7 +27,7 @@ def item() -> CatalogItem: @pytest.fixture def cpu_items() -> list[CatalogItem]: - datacrunch = CatalogItem( + verda = CatalogItem( instance_name="CPU.120V.480G", location="ICE-01", price=3.0, @@ -38,7 +38,7 @@ def cpu_items() -> list[CatalogItem]: gpu_name=None, gpu_memory=None, spot=False, - provider="datacrunch", + provider="verda", disk_size=None, ) aws = CatalogItem( @@ -55,7 +55,7 @@ def cpu_items() -> list[CatalogItem]: provider="aws", disk_size=None, ) - return [datacrunch, aws] + return [verda, aws] class TestMatches: @@ -154,19 +154,19 @@ def test_ti_gpu(self): assert matches(item, QueryFilter(gpu_name=["RTX3060TI"])) def test_provider(self, cpu_items): - assert matches(cpu_items[0], QueryFilter(provider=["datacrunch"])) - assert matches(cpu_items[0], QueryFilter(provider=["DataCrunch"])) + assert matches(cpu_items[0], QueryFilter(provider=["verda"])) + assert matches(cpu_items[0], QueryFilter(provider=["verda"])) assert not matches(cpu_items[0], QueryFilter(provider=["aws"])) assert matches(cpu_items[1], QueryFilter(provider=["aws"])) assert matches(cpu_items[1], QueryFilter(provider=["AWS"])) - assert not matches(cpu_items[1], QueryFilter(provider=["datacrunch"])) + assert not matches(cpu_items[1], QueryFilter(provider=["verda"])) def test_provider_with_filter_setattr(self, cpu_items): q = QueryFilter() - q.provider = ["datacrunch"] + q.provider = ["verda"] assert matches(cpu_items[0], q) - q.provider = ["DataCrunch"] + q.provider = ["verda"] assert matches(cpu_items[0], q) q.provider = ["aws"] assert not matches(cpu_items[0], q) diff --git a/src/tests/providers/test_datacrunch.py b/src/tests/providers/test_verda.py similarity index 85% rename from src/tests/providers/test_datacrunch.py rename to src/tests/providers/test_verda.py index 789de7e..75b204e 100644 --- a/src/tests/providers/test_datacrunch.py +++ b/src/tests/providers/test_verda.py @@ -4,9 +4,9 @@ import gpuhunt._internal.catalog as internal_catalog from gpuhunt import AcceleratorVendor, Catalog, CatalogItem, RawCatalogItem -from gpuhunt.providers.datacrunch import ( - DataCrunchProvider, +from gpuhunt.providers.verda import ( InstanceType, + VerdaProvider, generate_instances, get_gpu_name, transform_instance, @@ -15,7 +15,7 @@ @pytest.fixture def raw_instance_types() -> list[dict]: - # datacrunch.instance_types.get() + # verda.instance_types.get() one_gpu = { "best_for": [ "Gargantuan ML models", @@ -103,7 +103,7 @@ def raw_instance_types() -> list[dict]: @pytest.fixture def availabilities() -> list[dict]: - # datacrunch.instances.get_availabilities(is_spot=True) + # verda.instances.get_availabilities(is_spot=True) data = [ { "location_code": "FIN-01", @@ -142,7 +142,7 @@ def availabilities() -> list[dict]: @pytest.fixture def locations(): - # datacrunch.locations.get() + # verda.locations.get() return [ {"code": "FIN-01", "name": "Finland 1", "country_code": "FI"}, {"code": "FIN-02", "name": "Finland 2", "country_code": "FI"}, @@ -185,7 +185,7 @@ def test_gpu_name(caplog): def transform(raw_catalog_items: list[RawCatalogItem]) -> list[CatalogItem]: items = [] for raw in raw_catalog_items: - item = CatalogItem(provider="datacrunch", **dataclasses.asdict(raw)) + item = CatalogItem(provider="verda", **dataclasses.asdict(raw)) items.append(item) return items @@ -195,16 +195,16 @@ def test_available_query(mocker, raw_instance_types): instance_type = instance_types(raw_instance_types[0]) - mocker.patch("datacrunch.DataCrunchClient.__init__", return_value=None) - datacrunch = DataCrunchProvider("EXAMPLE", "EXAMPLE") - datacrunch._get_instance_types = mocker.Mock(return_value=[instance_type]) - datacrunch._get_locations = mocker.Mock(return_value=[{"code": "FIN-01"}]) + mocker.patch("verda.VerdaClient.__init__", return_value=None) + verda = VerdaProvider("EXAMPLE", "EXAMPLE") + verda._get_instance_types = mocker.Mock(return_value=[instance_type]) + verda._get_locations = mocker.Mock(return_value=[{"code": "FIN-01"}]) - internal_catalog.ONLINE_PROVIDERS = ["datacrunch"] + internal_catalog.ONLINE_PROVIDERS = ["verda"] internal_catalog.OFFLINE_PROVIDERS = [] - catalog.add_provider(datacrunch) - query_result = catalog.query(provider=["datacrunch"]) + catalog.add_provider(verda) + query_result = catalog.query(provider=["verda"]) assert len(query_result) == 2 @@ -219,7 +219,7 @@ def test_available_query(mocker, raw_instance_types): gpu_name="H100", gpu_memory=80.0, spot=True, - provider="datacrunch", + provider="verda", disk_size=None, ) expected_non_spot = CatalogItem( @@ -233,7 +233,7 @@ def test_available_query(mocker, raw_instance_types): gpu_name="H100", gpu_memory=80.0, spot=False, - provider="datacrunch", + provider="verda", disk_size=None, ) assert [r for r in query_result if r.spot] == [expected_spot] @@ -246,16 +246,16 @@ def test_available_query_with_instance(mocker, raw_instance_types): instance_type = instance_types(raw_instance_types[-1]) print(instance_type) - mocker.patch("datacrunch.DataCrunchClient.__init__", return_value=None) - datacrunch = DataCrunchProvider("EXAMPLE", "EXAMPLE") - datacrunch._get_instance_types = mocker.Mock(return_value=[instance_type]) - datacrunch._get_locations = mocker.Mock(return_value=[{"code": "FIN-01"}]) + mocker.patch("verda.VerdaClient.__init__", return_value=None) + verda = VerdaProvider("EXAMPLE", "EXAMPLE") + verda._get_instance_types = mocker.Mock(return_value=[instance_type]) + verda._get_locations = mocker.Mock(return_value=[{"code": "FIN-01"}]) - internal_catalog.ONLINE_PROVIDERS = ["datacrunch"] + internal_catalog.ONLINE_PROVIDERS = ["verda"] internal_catalog.OFFLINE_PROVIDERS = [] - catalog.add_provider(datacrunch) - query_result = catalog.query(provider=["datacrunch"]) + catalog.add_provider(verda) + query_result = catalog.query(provider=["verda"]) print(query_result) @@ -272,7 +272,7 @@ def test_available_query_with_instance(mocker, raw_instance_types): gpu_name="V100", gpu_memory=16.0, spot=True, - provider="datacrunch", + provider="verda", disk_size=None, ) expected_non_spot = CatalogItem( @@ -286,7 +286,7 @@ def test_available_query_with_instance(mocker, raw_instance_types): gpu_name="V100", gpu_memory=16.0, spot=False, - provider="datacrunch", + provider="verda", disk_size=None, ) @@ -343,16 +343,16 @@ def test_order(mocker, raw_instance_types): types = map(instance_types, raw_instance_types) - mocker.patch("datacrunch.DataCrunchClient.__init__", return_value=None) - datacrunch = DataCrunchProvider("EXAMPLE", "EXAMPLE") - datacrunch._get_instance_types = mocker.Mock(return_value=list(types)) - datacrunch._get_locations = mocker.Mock(return_value=[{"code": "FIN-01"}]) + mocker.patch("verda.VerdaClient.__init__", return_value=None) + verda = VerdaProvider("EXAMPLE", "EXAMPLE") + verda._get_instance_types = mocker.Mock(return_value=list(types)) + verda._get_locations = mocker.Mock(return_value=[{"code": "FIN-01"}]) - internal_catalog.ONLINE_PROVIDERS = ["datacrunch"] + internal_catalog.ONLINE_PROVIDERS = ["verda"] internal_catalog.OFFLINE_PROVIDERS = [] - catalog.add_provider(datacrunch) - query_result = catalog.query(provider=["datacrunch"]) + catalog.add_provider(verda) + query_result = catalog.query(provider=["verda"]) assert len(query_result) == 8 From 34a8d89408984cee5e77f7d54df2e3d8b2db1bb4 Mon Sep 17 00:00:00 2001 From: peterschmidt85 Date: Mon, 8 Dec 2025 18:36:53 +0100 Subject: [PATCH 2/9] [Verda] Rename datacrunch to verda #204 --- pyproject.toml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b0390b3..0848f8f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ authors = [ ] description = "A catalog of GPU pricing for different cloud providers" readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.10" classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", @@ -55,7 +55,10 @@ oci = [ verda = [ "verda" ] -all = ["gpuhunt[aws,azure,verda,gcp,maybe_nebius,oci]"] +maybe_verda = [ + 'verda; python_version>="3.10"', +] +all = ["gpuhunt[aws,azure,verda,gcp,maybe_nebius,maybe_verda,oci]"] dev = [ "pre-commit", "pytest~=7.0", From 923f01ec484cd9b160af1e4b7c5d99526dbeac7b Mon Sep 17 00:00:00 2001 From: peterschmidt85 Date: Mon, 8 Dec 2025 18:39:59 +0100 Subject: [PATCH 3/9] [Verda] Rename datacrunch to verda #204 --- .github/workflows/test.yml | 2 +- src/integrity_tests/{test_datacrunch.py => test_verda.py} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/integrity_tests/{test_datacrunch.py => test_verda.py} (100%) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 931366e..78a9dbb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,7 +47,7 @@ jobs: run: | IGNORE= if [[ "${{ matrix.python-version }}" == "3.9" ]]; then - IGNORE="--ignore src/gpuhunt/providers/nebius.py" + IGNORE="--ignore src/gpuhunt/providers/nebius.py --ignore src/gpuhunt/providers/verda.py" fi pytest --doctest-modules src/gpuhunt $IGNORE - name: Run pytest diff --git a/src/integrity_tests/test_datacrunch.py b/src/integrity_tests/test_verda.py similarity index 100% rename from src/integrity_tests/test_datacrunch.py rename to src/integrity_tests/test_verda.py From 47306475b23b3c28553434f653b850b6547052f6 Mon Sep 17 00:00:00 2001 From: peterschmidt85 Date: Mon, 8 Dec 2025 18:53:59 +0100 Subject: [PATCH 4/9] [Verda] Rename datacrunch to verda #204 --- pyproject.toml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0848f8f..1873a35 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ authors = [ ] description = "A catalog of GPU pricing for different cloud providers" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.9" classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", @@ -42,9 +42,6 @@ gcp = [ # Nebius requires Python 3.10. On 3.9: # `pip install gpuhunt[nebius]` is expected to fail # `pip install gpuhunt[all]` is expected to ignore Nebius -nebius = [ - "nebius>=0.2.40,<0.4", -] maybe_nebius = [ 'nebius>=0.2.40,<0.4; python_version>="3.10"', ] @@ -52,9 +49,6 @@ oci = [ "oci", "pydantic>=1.10.10,<2.0.0", ] -verda = [ - "verda" -] maybe_verda = [ 'verda; python_version>="3.10"', ] From 92002de56d457bfbed8681607264799362b73b7e Mon Sep 17 00:00:00 2001 From: peterschmidt85 Date: Mon, 8 Dec 2025 19:02:45 +0100 Subject: [PATCH 5/9] [Verda] Rename datacrunch to verda #204 --- .github/workflows/test.yml | 6 +++++- src/tests/providers/test_providers.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 78a9dbb..6f6a8ec 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,4 +52,8 @@ jobs: pytest --doctest-modules src/gpuhunt $IGNORE - name: Run pytest run: | - pytest src/tests + IGNORE= + if [[ "${{ matrix.python-version }}" == "3.9" ]]; then + IGNORE="--ignore src/tests/providers/test_verda.py" + fi + pytest src/tests $IGNORE diff --git a/src/tests/providers/test_providers.py b/src/tests/providers/test_providers.py index 3425b64..b5fae8d 100644 --- a/src/tests/providers/test_providers.py +++ b/src/tests/providers/test_providers.py @@ -14,7 +14,7 @@ def providers(): """List of all provider classes""" members = [] for module_info in pkgutil.walk_packages(gpuhunt.providers.__path__): - if sys.version_info < (3, 10) and module_info.name == "nebius": + if sys.version_info < (3, 10) and module_info.name in ["nebius", "verda"]: continue module = importlib.import_module( f".{module_info.name}", From fc8dca29d18a6e1176c789d9b7f0dc64914b7a79 Mon Sep 17 00:00:00 2001 From: peterschmidt85 Date: Mon, 8 Dec 2025 19:05:18 +0100 Subject: [PATCH 6/9] [Verda] Rename datacrunch to verda #204 --- src/tests/providers/test_providers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/providers/test_providers.py b/src/tests/providers/test_providers.py index b5fae8d..b6754e2 100644 --- a/src/tests/providers/test_providers.py +++ b/src/tests/providers/test_providers.py @@ -48,7 +48,7 @@ def test_all_providers_have_a_names(providers): def test_catalog_providers(providers): CATALOG_PROVIDERS = OFFLINE_PROVIDERS + ONLINE_PROVIDERS if sys.version_info < (3, 10): - CATALOG_PROVIDERS = [p for p in CATALOG_PROVIDERS if p != "nebius"] + CATALOG_PROVIDERS = [p for p in CATALOG_PROVIDERS if p not in ["nebius", "verda"]] names = [p.NAME for p in providers] assert set(CATALOG_PROVIDERS) == set(names) assert len(CATALOG_PROVIDERS) == len(names) From 7309705ac2c4519c96bdc816fa1643f66fdee1d0 Mon Sep 17 00:00:00 2001 From: peterschmidt85 Date: Tue, 9 Dec 2025 09:37:10 +0100 Subject: [PATCH 7/9] [Verda] Rename datacrunch to verda #204 --- pyproject.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 1873a35..654660c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,6 +42,9 @@ gcp = [ # Nebius requires Python 3.10. On 3.9: # `pip install gpuhunt[nebius]` is expected to fail # `pip install gpuhunt[all]` is expected to ignore Nebius +nebius = [ + "nebius>=0.2.40,<0.4", +] maybe_nebius = [ 'nebius>=0.2.40,<0.4; python_version>="3.10"', ] @@ -49,6 +52,9 @@ oci = [ "oci", "pydantic>=1.10.10,<2.0.0", ] +verda = [ + 'verda', +] maybe_verda = [ 'verda; python_version>="3.10"', ] From 8699e6b4e25ecc426f26b6191daf1c0799db83bb Mon Sep 17 00:00:00 2001 From: peterschmidt85 Date: Tue, 9 Dec 2025 09:38:15 +0100 Subject: [PATCH 8/9] [Verda] Rename datacrunch to verda #204 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 654660c..72c2c43 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,7 +58,7 @@ verda = [ maybe_verda = [ 'verda; python_version>="3.10"', ] -all = ["gpuhunt[aws,azure,verda,gcp,maybe_nebius,maybe_verda,oci]"] +all = ["gpuhunt[aws,azure,maybe_verda,gcp,maybe_nebius,oci]"] dev = [ "pre-commit", "pytest~=7.0", From df2833b963fc10970b95390a67b62b3cdb78ddb4 Mon Sep 17 00:00:00 2001 From: peterschmidt85 Date: Tue, 9 Dec 2025 10:06:03 +0100 Subject: [PATCH 9/9] [Verda] Rename datacrunch to verda #204 --- src/gpuhunt/providers/verda.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gpuhunt/providers/verda.py b/src/gpuhunt/providers/verda.py index 54aa8fb..b62684d 100644 --- a/src/gpuhunt/providers/verda.py +++ b/src/gpuhunt/providers/verda.py @@ -23,7 +23,7 @@ class VerdaProvider(AbstractProvider): NAME = "verda" def __init__(self, client_id: str, client_secret: str) -> None: - self.VERDA_client = VerdaClient(client_id, client_secret) + self.verda_client = VerdaClient(client_id, client_secret) def get( self, query_filter: Optional[QueryFilter] = None, balance_resources: bool = True @@ -38,10 +38,10 @@ def get( return sorted(instances, key=lambda x: x.price) def _get_instance_types(self) -> list[InstanceType]: - return self.VERDA_client.instance_types.get() + return self.verda_client.instance_types.get() def _get_locations(self) -> list[dict]: - return self.VERDA_client.locations.get() + return self.verda_client.locations.get() @classmethod def filter(cls, offers: list[RawCatalogItem]) -> list[RawCatalogItem]: