From 6418c82e760454e2e52b015f6bb3c42f072f55d8 Mon Sep 17 00:00:00 2001 From: jo Date: Tue, 12 Aug 2025 11:58:43 +0200 Subject: [PATCH 1/4] feat: renamed ClientEntityBase to BaseResourceClient --- hcloud/core/__init__.py | 5 +++-- hcloud/core/client.py | 21 ++++++++++++++++++++- tests/unit/core/test_client.py | 8 ++++---- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/hcloud/core/__init__.py b/hcloud/core/__init__.py index b553546a..d2d22686 100644 --- a/hcloud/core/__init__.py +++ b/hcloud/core/__init__.py @@ -1,12 +1,13 @@ from __future__ import annotations -from .client import BoundModelBase, ClientEntityBase +from .client import BaseResourceClient, BoundModelBase, ClientEntityBase from .domain import BaseDomain, DomainIdentityMixin, Meta, Pagination __all__ = [ + "BaseDomain", + "BaseResourceClient", "BoundModelBase", "ClientEntityBase", - "BaseDomain", "DomainIdentityMixin", "Meta", "Pagination", diff --git a/hcloud/core/client.py b/hcloud/core/client.py index 0b86c837..4552ca73 100644 --- a/hcloud/core/client.py +++ b/hcloud/core/client.py @@ -1,12 +1,13 @@ from __future__ import annotations +import warnings from typing import TYPE_CHECKING, Any, Callable if TYPE_CHECKING: from .._client import Client -class ClientEntityBase: +class BaseResourceClient: _client: Client max_per_page: int = 50 @@ -50,6 +51,24 @@ def _get_first_by(self, **kwargs): # type: ignore[no-untyped-def] return entities[0] if entities else None +class ClientEntityBase(BaseResourceClient): + """ + Kept for backward compatibility. + + .. deprecated:: 2.6.0 + Use :class:``hcloud.core.client.BaseResourceClient`` instead. + """ + + def __init__(self, client: Client): + warnings.warn( + "The 'hcloud.core.client.ClientEntityBase' class is deprecated, please use the " + "'hcloud.core.client.BaseResourceClient' class instead.", + DeprecationWarning, + stacklevel=2, + ) + super().__init__(client) + + class BoundModelBase: """Bound Model Base""" diff --git a/tests/unit/core/test_client.py b/tests/unit/core/test_client.py index 4a6542eb..755f4e5b 100644 --- a/tests/unit/core/test_client.py +++ b/tests/unit/core/test_client.py @@ -6,7 +6,7 @@ import pytest from hcloud.actions import ActionsPageResult -from hcloud.core import BaseDomain, BoundModelBase, ClientEntityBase, Meta +from hcloud.core import BaseDomain, BaseResourceClient, BoundModelBase, Meta class TestBoundModelBase: @@ -99,7 +99,7 @@ def test_equality(self, bound_model_class, client): assert bound_model_a != bound_model_b.data_model -class TestClientEntityBase: +class TestBaseResourceClient: @pytest.fixture() def client_class_constructor(self): def constructor(json_content_function): @@ -107,7 +107,7 @@ class CandiesPageResult(NamedTuple): candies: list[Any] meta: Meta - class CandiesClient(ClientEntityBase): + class CandiesClient(BaseResourceClient): def get_list(self, status=None, page=None, per_page=None): json_content = json_content_function(page) results = [ @@ -122,7 +122,7 @@ def get_list(self, status=None, page=None, per_page=None): @pytest.fixture() def client_class_with_actions_constructor(self): def constructor(json_content_function): - class CandiesClient(ClientEntityBase): + class CandiesClient(BaseResourceClient): def get_actions_list(self, status, page=None, per_page=None): json_content = json_content_function(page) results = [ From 9eacc951df8f99b82a3298008ac3cc7f99765bea Mon Sep 17 00:00:00 2001 From: jo Date: Tue, 12 Aug 2025 15:19:21 +0200 Subject: [PATCH 2/4] refactor: rename all ClientEntityBase to BaseResourceClient --- hcloud/actions/client.py | 4 ++-- hcloud/certificates/client.py | 4 ++-- hcloud/core/client.py | 2 +- hcloud/datacenters/client.py | 4 ++-- hcloud/firewalls/client.py | 4 ++-- hcloud/floating_ips/client.py | 4 ++-- hcloud/images/client.py | 4 ++-- hcloud/isos/client.py | 4 ++-- hcloud/load_balancer_types/client.py | 4 ++-- hcloud/load_balancers/client.py | 4 ++-- hcloud/locations/client.py | 4 ++-- hcloud/networks/client.py | 4 ++-- hcloud/placement_groups/client.py | 4 ++-- hcloud/primary_ips/client.py | 4 ++-- hcloud/server_types/client.py | 4 ++-- hcloud/servers/client.py | 4 ++-- hcloud/ssh_keys/client.py | 4 ++-- hcloud/volumes/client.py | 4 ++-- 18 files changed, 35 insertions(+), 35 deletions(-) diff --git a/hcloud/actions/client.py b/hcloud/actions/client.py index 7ec192c8..1538c28d 100644 --- a/hcloud/actions/client.py +++ b/hcloud/actions/client.py @@ -4,7 +4,7 @@ import warnings from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from .domain import Action, ActionFailedException, ActionTimeoutException if TYPE_CHECKING: @@ -50,7 +50,7 @@ class ActionsPageResult(NamedTuple): meta: Meta -class ResourceActionsClient(ClientEntityBase): +class ResourceActionsClient(BaseResourceClient): _resource: str def __init__(self, client: Client, resource: str | None): diff --git a/hcloud/certificates/client.py b/hcloud/certificates/client.py index cb1aef58..21c05ecc 100644 --- a/hcloud/certificates/client.py +++ b/hcloud/certificates/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from .domain import ( Certificate, CreateManagedCertificateResponse, @@ -103,7 +103,7 @@ class CertificatesPageResult(NamedTuple): meta: Meta -class CertificatesClient(ClientEntityBase): +class CertificatesClient(BaseResourceClient): _client: Client actions: ResourceActionsClient diff --git a/hcloud/core/client.py b/hcloud/core/client.py index 4552ca73..f14a8144 100644 --- a/hcloud/core/client.py +++ b/hcloud/core/client.py @@ -76,7 +76,7 @@ class BoundModelBase: def __init__( self, - client: ClientEntityBase, + client: BaseResourceClient, data: dict, complete: bool = True, ): diff --git a/hcloud/datacenters/client.py b/hcloud/datacenters/client.py index 935a7c77..ec5c6a45 100644 --- a/hcloud/datacenters/client.py +++ b/hcloud/datacenters/client.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from ..locations import BoundLocation from ..server_types import BoundServerType from .domain import Datacenter, DatacenterServerTypes @@ -55,7 +55,7 @@ class DatacentersPageResult(NamedTuple): meta: Meta -class DatacentersClient(ClientEntityBase): +class DatacentersClient(BaseResourceClient): _client: Client def get_by_id(self, id: int) -> BoundDatacenter: diff --git a/hcloud/firewalls/client.py b/hcloud/firewalls/client.py index ae365a4b..16ce27b3 100644 --- a/hcloud/firewalls/client.py +++ b/hcloud/firewalls/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from .domain import ( CreateFirewallResponse, Firewall, @@ -183,7 +183,7 @@ class FirewallsPageResult(NamedTuple): meta: Meta -class FirewallsClient(ClientEntityBase): +class FirewallsClient(BaseResourceClient): _client: Client actions: ResourceActionsClient diff --git a/hcloud/floating_ips/client.py b/hcloud/floating_ips/client.py index 9306ac2f..53b425ec 100644 --- a/hcloud/floating_ips/client.py +++ b/hcloud/floating_ips/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from ..locations import BoundLocation from .domain import CreateFloatingIPResponse, FloatingIP @@ -139,7 +139,7 @@ class FloatingIPsPageResult(NamedTuple): meta: Meta -class FloatingIPsClient(ClientEntityBase): +class FloatingIPsClient(BaseResourceClient): _client: Client actions: ResourceActionsClient diff --git a/hcloud/images/client.py b/hcloud/images/client.py index 36c59e06..2596f185 100644 --- a/hcloud/images/client.py +++ b/hcloud/images/client.py @@ -4,7 +4,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from .domain import Image if TYPE_CHECKING: @@ -112,7 +112,7 @@ class ImagesPageResult(NamedTuple): meta: Meta -class ImagesClient(ClientEntityBase): +class ImagesClient(BaseResourceClient): _client: Client actions: ResourceActionsClient diff --git a/hcloud/isos/client.py b/hcloud/isos/client.py index 31620d8f..50739d41 100644 --- a/hcloud/isos/client.py +++ b/hcloud/isos/client.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from .domain import Iso if TYPE_CHECKING: @@ -20,7 +20,7 @@ class IsosPageResult(NamedTuple): meta: Meta -class IsosClient(ClientEntityBase): +class IsosClient(BaseResourceClient): _client: Client def get_by_id(self, id: int) -> BoundIso: diff --git a/hcloud/load_balancer_types/client.py b/hcloud/load_balancer_types/client.py index 5f332c6e..8ed250e8 100644 --- a/hcloud/load_balancer_types/client.py +++ b/hcloud/load_balancer_types/client.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from .domain import LoadBalancerType if TYPE_CHECKING: @@ -20,7 +20,7 @@ class LoadBalancerTypesPageResult(NamedTuple): meta: Meta -class LoadBalancerTypesClient(ClientEntityBase): +class LoadBalancerTypesClient(BaseResourceClient): _client: Client def get_by_id(self, id: int) -> BoundLoadBalancerType: diff --git a/hcloud/load_balancers/client.py b/hcloud/load_balancers/client.py index 2de1c2d7..761d4031 100644 --- a/hcloud/load_balancers/client.py +++ b/hcloud/load_balancers/client.py @@ -7,7 +7,7 @@ from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient from ..certificates import BoundCertificate -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from ..load_balancer_types import BoundLoadBalancerType from ..locations import BoundLocation from ..metrics import Metrics @@ -369,7 +369,7 @@ class LoadBalancersPageResult(NamedTuple): meta: Meta -class LoadBalancersClient(ClientEntityBase): +class LoadBalancersClient(BaseResourceClient): _client: Client actions: ResourceActionsClient diff --git a/hcloud/locations/client.py b/hcloud/locations/client.py index 411a184d..75ba25a4 100644 --- a/hcloud/locations/client.py +++ b/hcloud/locations/client.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from .domain import Location if TYPE_CHECKING: @@ -20,7 +20,7 @@ class LocationsPageResult(NamedTuple): meta: Meta -class LocationsClient(ClientEntityBase): +class LocationsClient(BaseResourceClient): _client: Client def get_by_id(self, id: int) -> BoundLocation: diff --git a/hcloud/networks/client.py b/hcloud/networks/client.py index c446ae6b..956b8101 100644 --- a/hcloud/networks/client.py +++ b/hcloud/networks/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from .domain import Network, NetworkRoute, NetworkSubnet if TYPE_CHECKING: @@ -166,7 +166,7 @@ class NetworksPageResult(NamedTuple): meta: Meta -class NetworksClient(ClientEntityBase): +class NetworksClient(BaseResourceClient): _client: Client actions: ResourceActionsClient diff --git a/hcloud/placement_groups/client.py b/hcloud/placement_groups/client.py index 0c53724f..6b719058 100644 --- a/hcloud/placement_groups/client.py +++ b/hcloud/placement_groups/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import BoundAction -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from .domain import CreatePlacementGroupResponse, PlacementGroup if TYPE_CHECKING: @@ -43,7 +43,7 @@ class PlacementGroupsPageResult(NamedTuple): meta: Meta -class PlacementGroupsClient(ClientEntityBase): +class PlacementGroupsClient(BaseResourceClient): _client: Client def get_by_id(self, id: int) -> BoundPlacementGroup: diff --git a/hcloud/primary_ips/client.py b/hcloud/primary_ips/client.py index 818737c5..0171535e 100644 --- a/hcloud/primary_ips/client.py +++ b/hcloud/primary_ips/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import BoundAction, ResourceActionsClient -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from .domain import CreatePrimaryIPResponse, PrimaryIP if TYPE_CHECKING: @@ -97,7 +97,7 @@ class PrimaryIPsPageResult(NamedTuple): meta: Meta -class PrimaryIPsClient(ClientEntityBase): +class PrimaryIPsClient(BaseResourceClient): _client: Client actions: ResourceActionsClient diff --git a/hcloud/server_types/client.py b/hcloud/server_types/client.py index 6901d995..62ebe6f5 100644 --- a/hcloud/server_types/client.py +++ b/hcloud/server_types/client.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from .domain import ServerType if TYPE_CHECKING: @@ -20,7 +20,7 @@ class ServerTypesPageResult(NamedTuple): meta: Meta -class ServerTypesClient(ClientEntityBase): +class ServerTypesClient(BaseResourceClient): _client: Client def get_by_id(self, id: int) -> BoundServerType: diff --git a/hcloud/servers/client.py b/hcloud/servers/client.py index 397b0bf2..ef98b197 100644 --- a/hcloud/servers/client.py +++ b/hcloud/servers/client.py @@ -6,7 +6,7 @@ from dateutil.parser import isoparse from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from ..datacenters import BoundDatacenter from ..firewalls import BoundFirewall from ..floating_ips import BoundFloatingIP @@ -482,7 +482,7 @@ class ServersPageResult(NamedTuple): meta: Meta -class ServersClient(ClientEntityBase): +class ServersClient(BaseResourceClient): _client: Client actions: ResourceActionsClient diff --git a/hcloud/ssh_keys/client.py b/hcloud/ssh_keys/client.py index 12064ea9..a1340722 100644 --- a/hcloud/ssh_keys/client.py +++ b/hcloud/ssh_keys/client.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from .domain import SSHKey if TYPE_CHECKING: @@ -41,7 +41,7 @@ class SSHKeysPageResult(NamedTuple): meta: Meta -class SSHKeysClient(ClientEntityBase): +class SSHKeysClient(BaseResourceClient): _client: Client def get_by_id(self, id: int) -> BoundSSHKey: diff --git a/hcloud/volumes/client.py b/hcloud/volumes/client.py index 371a8bd1..a51d42d6 100644 --- a/hcloud/volumes/client.py +++ b/hcloud/volumes/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BoundModelBase, ClientEntityBase, Meta +from ..core import BaseResourceClient, BoundModelBase, Meta from ..locations import BoundLocation from .domain import CreateVolumeResponse, Volume @@ -135,7 +135,7 @@ class VolumesPageResult(NamedTuple): meta: Meta -class VolumesClient(ClientEntityBase): +class VolumesClient(BaseResourceClient): _client: Client actions: ResourceActionsClient From a3e60e56a60d6621596dd180f08d1ff7e8d78b90 Mon Sep 17 00:00:00 2001 From: jo Date: Thu, 14 Aug 2025 14:39:19 +0200 Subject: [PATCH 3/4] rename to ResourceClientBase --- hcloud/actions/client.py | 4 ++-- hcloud/certificates/client.py | 4 ++-- hcloud/core/__init__.py | 4 ++-- hcloud/core/client.py | 10 +++++----- hcloud/datacenters/client.py | 4 ++-- hcloud/firewalls/client.py | 4 ++-- hcloud/floating_ips/client.py | 4 ++-- hcloud/images/client.py | 4 ++-- hcloud/isos/client.py | 4 ++-- hcloud/load_balancer_types/client.py | 4 ++-- hcloud/load_balancers/client.py | 4 ++-- hcloud/locations/client.py | 4 ++-- hcloud/networks/client.py | 4 ++-- hcloud/placement_groups/client.py | 4 ++-- hcloud/primary_ips/client.py | 4 ++-- hcloud/server_types/client.py | 4 ++-- hcloud/servers/client.py | 4 ++-- hcloud/ssh_keys/client.py | 4 ++-- hcloud/volumes/client.py | 4 ++-- tests/unit/core/test_client.py | 8 ++++---- 20 files changed, 45 insertions(+), 45 deletions(-) diff --git a/hcloud/actions/client.py b/hcloud/actions/client.py index 1538c28d..e9033323 100644 --- a/hcloud/actions/client.py +++ b/hcloud/actions/client.py @@ -4,7 +4,7 @@ import warnings from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from .domain import Action, ActionFailedException, ActionTimeoutException if TYPE_CHECKING: @@ -50,7 +50,7 @@ class ActionsPageResult(NamedTuple): meta: Meta -class ResourceActionsClient(BaseResourceClient): +class ResourceActionsClient(ResourceClientBase): _resource: str def __init__(self, client: Client, resource: str | None): diff --git a/hcloud/certificates/client.py b/hcloud/certificates/client.py index 21c05ecc..06423995 100644 --- a/hcloud/certificates/client.py +++ b/hcloud/certificates/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from .domain import ( Certificate, CreateManagedCertificateResponse, @@ -103,7 +103,7 @@ class CertificatesPageResult(NamedTuple): meta: Meta -class CertificatesClient(BaseResourceClient): +class CertificatesClient(ResourceClientBase): _client: Client actions: ResourceActionsClient diff --git a/hcloud/core/__init__.py b/hcloud/core/__init__.py index d2d22686..7e2911ae 100644 --- a/hcloud/core/__init__.py +++ b/hcloud/core/__init__.py @@ -1,11 +1,11 @@ from __future__ import annotations -from .client import BaseResourceClient, BoundModelBase, ClientEntityBase +from .client import BoundModelBase, ClientEntityBase, ResourceClientBase from .domain import BaseDomain, DomainIdentityMixin, Meta, Pagination __all__ = [ "BaseDomain", - "BaseResourceClient", + "ResourceClientBase", "BoundModelBase", "ClientEntityBase", "DomainIdentityMixin", diff --git a/hcloud/core/client.py b/hcloud/core/client.py index f14a8144..9b52f368 100644 --- a/hcloud/core/client.py +++ b/hcloud/core/client.py @@ -7,7 +7,7 @@ from .._client import Client -class BaseResourceClient: +class ResourceClientBase: _client: Client max_per_page: int = 50 @@ -51,18 +51,18 @@ def _get_first_by(self, **kwargs): # type: ignore[no-untyped-def] return entities[0] if entities else None -class ClientEntityBase(BaseResourceClient): +class ClientEntityBase(ResourceClientBase): """ Kept for backward compatibility. .. deprecated:: 2.6.0 - Use :class:``hcloud.core.client.BaseResourceClient`` instead. + Use :class:``hcloud.core.client.ResourceClientBase`` instead. """ def __init__(self, client: Client): warnings.warn( "The 'hcloud.core.client.ClientEntityBase' class is deprecated, please use the " - "'hcloud.core.client.BaseResourceClient' class instead.", + "'hcloud.core.client.ResourceClientBase' class instead.", DeprecationWarning, stacklevel=2, ) @@ -76,7 +76,7 @@ class BoundModelBase: def __init__( self, - client: BaseResourceClient, + client: ResourceClientBase, data: dict, complete: bool = True, ): diff --git a/hcloud/datacenters/client.py b/hcloud/datacenters/client.py index ec5c6a45..4a1b0434 100644 --- a/hcloud/datacenters/client.py +++ b/hcloud/datacenters/client.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from ..locations import BoundLocation from ..server_types import BoundServerType from .domain import Datacenter, DatacenterServerTypes @@ -55,7 +55,7 @@ class DatacentersPageResult(NamedTuple): meta: Meta -class DatacentersClient(BaseResourceClient): +class DatacentersClient(ResourceClientBase): _client: Client def get_by_id(self, id: int) -> BoundDatacenter: diff --git a/hcloud/firewalls/client.py b/hcloud/firewalls/client.py index 16ce27b3..2157e8f5 100644 --- a/hcloud/firewalls/client.py +++ b/hcloud/firewalls/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from .domain import ( CreateFirewallResponse, Firewall, @@ -183,7 +183,7 @@ class FirewallsPageResult(NamedTuple): meta: Meta -class FirewallsClient(BaseResourceClient): +class FirewallsClient(ResourceClientBase): _client: Client actions: ResourceActionsClient diff --git a/hcloud/floating_ips/client.py b/hcloud/floating_ips/client.py index 53b425ec..824cfdbb 100644 --- a/hcloud/floating_ips/client.py +++ b/hcloud/floating_ips/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from ..locations import BoundLocation from .domain import CreateFloatingIPResponse, FloatingIP @@ -139,7 +139,7 @@ class FloatingIPsPageResult(NamedTuple): meta: Meta -class FloatingIPsClient(BaseResourceClient): +class FloatingIPsClient(ResourceClientBase): _client: Client actions: ResourceActionsClient diff --git a/hcloud/images/client.py b/hcloud/images/client.py index 2596f185..c7af92d9 100644 --- a/hcloud/images/client.py +++ b/hcloud/images/client.py @@ -4,7 +4,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from .domain import Image if TYPE_CHECKING: @@ -112,7 +112,7 @@ class ImagesPageResult(NamedTuple): meta: Meta -class ImagesClient(BaseResourceClient): +class ImagesClient(ResourceClientBase): _client: Client actions: ResourceActionsClient diff --git a/hcloud/isos/client.py b/hcloud/isos/client.py index 50739d41..abb28617 100644 --- a/hcloud/isos/client.py +++ b/hcloud/isos/client.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from .domain import Iso if TYPE_CHECKING: @@ -20,7 +20,7 @@ class IsosPageResult(NamedTuple): meta: Meta -class IsosClient(BaseResourceClient): +class IsosClient(ResourceClientBase): _client: Client def get_by_id(self, id: int) -> BoundIso: diff --git a/hcloud/load_balancer_types/client.py b/hcloud/load_balancer_types/client.py index 8ed250e8..3691e419 100644 --- a/hcloud/load_balancer_types/client.py +++ b/hcloud/load_balancer_types/client.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from .domain import LoadBalancerType if TYPE_CHECKING: @@ -20,7 +20,7 @@ class LoadBalancerTypesPageResult(NamedTuple): meta: Meta -class LoadBalancerTypesClient(BaseResourceClient): +class LoadBalancerTypesClient(ResourceClientBase): _client: Client def get_by_id(self, id: int) -> BoundLoadBalancerType: diff --git a/hcloud/load_balancers/client.py b/hcloud/load_balancers/client.py index 761d4031..5553352f 100644 --- a/hcloud/load_balancers/client.py +++ b/hcloud/load_balancers/client.py @@ -7,7 +7,7 @@ from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient from ..certificates import BoundCertificate -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from ..load_balancer_types import BoundLoadBalancerType from ..locations import BoundLocation from ..metrics import Metrics @@ -369,7 +369,7 @@ class LoadBalancersPageResult(NamedTuple): meta: Meta -class LoadBalancersClient(BaseResourceClient): +class LoadBalancersClient(ResourceClientBase): _client: Client actions: ResourceActionsClient diff --git a/hcloud/locations/client.py b/hcloud/locations/client.py index 75ba25a4..6adb980a 100644 --- a/hcloud/locations/client.py +++ b/hcloud/locations/client.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from .domain import Location if TYPE_CHECKING: @@ -20,7 +20,7 @@ class LocationsPageResult(NamedTuple): meta: Meta -class LocationsClient(BaseResourceClient): +class LocationsClient(ResourceClientBase): _client: Client def get_by_id(self, id: int) -> BoundLocation: diff --git a/hcloud/networks/client.py b/hcloud/networks/client.py index 956b8101..b8248d7a 100644 --- a/hcloud/networks/client.py +++ b/hcloud/networks/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from .domain import Network, NetworkRoute, NetworkSubnet if TYPE_CHECKING: @@ -166,7 +166,7 @@ class NetworksPageResult(NamedTuple): meta: Meta -class NetworksClient(BaseResourceClient): +class NetworksClient(ResourceClientBase): _client: Client actions: ResourceActionsClient diff --git a/hcloud/placement_groups/client.py b/hcloud/placement_groups/client.py index 6b719058..a5524afe 100644 --- a/hcloud/placement_groups/client.py +++ b/hcloud/placement_groups/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import BoundAction -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from .domain import CreatePlacementGroupResponse, PlacementGroup if TYPE_CHECKING: @@ -43,7 +43,7 @@ class PlacementGroupsPageResult(NamedTuple): meta: Meta -class PlacementGroupsClient(BaseResourceClient): +class PlacementGroupsClient(ResourceClientBase): _client: Client def get_by_id(self, id: int) -> BoundPlacementGroup: diff --git a/hcloud/primary_ips/client.py b/hcloud/primary_ips/client.py index 0171535e..b3985e56 100644 --- a/hcloud/primary_ips/client.py +++ b/hcloud/primary_ips/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import BoundAction, ResourceActionsClient -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from .domain import CreatePrimaryIPResponse, PrimaryIP if TYPE_CHECKING: @@ -97,7 +97,7 @@ class PrimaryIPsPageResult(NamedTuple): meta: Meta -class PrimaryIPsClient(BaseResourceClient): +class PrimaryIPsClient(ResourceClientBase): _client: Client actions: ResourceActionsClient diff --git a/hcloud/server_types/client.py b/hcloud/server_types/client.py index 62ebe6f5..1f1a7de3 100644 --- a/hcloud/server_types/client.py +++ b/hcloud/server_types/client.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from .domain import ServerType if TYPE_CHECKING: @@ -20,7 +20,7 @@ class ServerTypesPageResult(NamedTuple): meta: Meta -class ServerTypesClient(BaseResourceClient): +class ServerTypesClient(ResourceClientBase): _client: Client def get_by_id(self, id: int) -> BoundServerType: diff --git a/hcloud/servers/client.py b/hcloud/servers/client.py index ef98b197..89c0c4eb 100644 --- a/hcloud/servers/client.py +++ b/hcloud/servers/client.py @@ -6,7 +6,7 @@ from dateutil.parser import isoparse from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from ..datacenters import BoundDatacenter from ..firewalls import BoundFirewall from ..floating_ips import BoundFloatingIP @@ -482,7 +482,7 @@ class ServersPageResult(NamedTuple): meta: Meta -class ServersClient(BaseResourceClient): +class ServersClient(ResourceClientBase): _client: Client actions: ResourceActionsClient diff --git a/hcloud/ssh_keys/client.py b/hcloud/ssh_keys/client.py index a1340722..a68b5153 100644 --- a/hcloud/ssh_keys/client.py +++ b/hcloud/ssh_keys/client.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from .domain import SSHKey if TYPE_CHECKING: @@ -41,7 +41,7 @@ class SSHKeysPageResult(NamedTuple): meta: Meta -class SSHKeysClient(BaseResourceClient): +class SSHKeysClient(ResourceClientBase): _client: Client def get_by_id(self, id: int) -> BoundSSHKey: diff --git a/hcloud/volumes/client.py b/hcloud/volumes/client.py index a51d42d6..15a71c4d 100644 --- a/hcloud/volumes/client.py +++ b/hcloud/volumes/client.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, NamedTuple from ..actions import ActionsPageResult, BoundAction, ResourceActionsClient -from ..core import BaseResourceClient, BoundModelBase, Meta +from ..core import BoundModelBase, Meta, ResourceClientBase from ..locations import BoundLocation from .domain import CreateVolumeResponse, Volume @@ -135,7 +135,7 @@ class VolumesPageResult(NamedTuple): meta: Meta -class VolumesClient(BaseResourceClient): +class VolumesClient(ResourceClientBase): _client: Client actions: ResourceActionsClient diff --git a/tests/unit/core/test_client.py b/tests/unit/core/test_client.py index 755f4e5b..72e90879 100644 --- a/tests/unit/core/test_client.py +++ b/tests/unit/core/test_client.py @@ -6,7 +6,7 @@ import pytest from hcloud.actions import ActionsPageResult -from hcloud.core import BaseDomain, BaseResourceClient, BoundModelBase, Meta +from hcloud.core import BaseDomain, BoundModelBase, Meta, ResourceClientBase class TestBoundModelBase: @@ -99,7 +99,7 @@ def test_equality(self, bound_model_class, client): assert bound_model_a != bound_model_b.data_model -class TestBaseResourceClient: +class TestResourceClientBase: @pytest.fixture() def client_class_constructor(self): def constructor(json_content_function): @@ -107,7 +107,7 @@ class CandiesPageResult(NamedTuple): candies: list[Any] meta: Meta - class CandiesClient(BaseResourceClient): + class CandiesClient(ResourceClientBase): def get_list(self, status=None, page=None, per_page=None): json_content = json_content_function(page) results = [ @@ -122,7 +122,7 @@ def get_list(self, status=None, page=None, per_page=None): @pytest.fixture() def client_class_with_actions_constructor(self): def constructor(json_content_function): - class CandiesClient(BaseResourceClient): + class CandiesClient(ResourceClientBase): def get_actions_list(self, status, page=None, per_page=None): json_content = json_content_function(page) results = [ From 0546dea68ac0399ac39fe8748584182119ba1d2e Mon Sep 17 00:00:00 2001 From: jo Date: Thu, 14 Aug 2025 14:41:10 +0200 Subject: [PATCH 4/4] sort entries --- hcloud/core/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hcloud/core/__init__.py b/hcloud/core/__init__.py index 7e2911ae..4fb66e86 100644 --- a/hcloud/core/__init__.py +++ b/hcloud/core/__init__.py @@ -5,10 +5,10 @@ __all__ = [ "BaseDomain", - "ResourceClientBase", "BoundModelBase", "ClientEntityBase", "DomainIdentityMixin", "Meta", "Pagination", + "ResourceClientBase", ]