Skip to content

Commit

Permalink
feat: reexport references in parent ressources modules (#256)
Browse files Browse the repository at this point in the history
* feat: reexport references in ressources module

* refactor: use new module hierarchy for imports

* style: run isort on the new imports

* refactor: use new module hierarchy for imports in tests and docs

* style: run isort on the new imports

* fix: add missing reexport

* refactor: use new module hierarchy imports in client
  • Loading branch information
jooola committed Jul 24, 2023
1 parent 23b3607 commit 854c12b
Show file tree
Hide file tree
Showing 92 changed files with 346 additions and 207 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ Here is an example that creates a server and list them:

```python
from hcloud import Client
from hcloud.images.domain import Image
from hcloud.server_types.domain import ServerType
from hcloud.images import Image
from hcloud.server_types import ServerType

client = Client(token="{YOUR_API_TOKEN}") # Please paste your API token here

Expand Down
4 changes: 2 additions & 2 deletions examples/create_server.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from __future__ import annotations

from hcloud import Client
from hcloud.images.domain import Image
from hcloud.server_types.domain import ServerType
from hcloud.images import Image
from hcloud.server_types import ServerType

# Please paste your API token here between the quotes
client = Client(token="{YOUR_API_TOKEN}")
Expand Down
4 changes: 2 additions & 2 deletions examples/usage_oop.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from __future__ import annotations

from hcloud import Client
from hcloud.images.domain import Image
from hcloud.server_types.domain import ServerType
from hcloud.images import Image
from hcloud.server_types import ServerType

# Create a client
client = Client(token="project-token")
Expand Down
8 changes: 4 additions & 4 deletions examples/usage_procedurale.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from __future__ import annotations

from hcloud import Client
from hcloud.images.domain import Image
from hcloud.server_types.domain import ServerType
from hcloud.servers.domain import Server
from hcloud.volumes.domain import Volume
from hcloud.images import Image
from hcloud.server_types import ServerType
from hcloud.servers import Server
from hcloud.volumes import Volume

client = Client(token="project-token")

Expand Down
34 changes: 17 additions & 17 deletions hcloud/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,23 @@

from .__version__ import VERSION
from ._exceptions import APIException
from .actions.client import ActionsClient
from .certificates.client import CertificatesClient
from .datacenters.client import DatacentersClient
from .firewalls.client import FirewallsClient
from .floating_ips.client import FloatingIPsClient
from .images.client import ImagesClient
from .isos.client import IsosClient
from .load_balancer_types.client import LoadBalancerTypesClient
from .load_balancers.client import LoadBalancersClient
from .locations.client import LocationsClient
from .networks.client import NetworksClient
from .placement_groups.client import PlacementGroupsClient
from .primary_ips.client import PrimaryIPsClient
from .server_types.client import ServerTypesClient
from .servers.client import ServersClient
from .ssh_keys.client import SSHKeysClient
from .volumes.client import VolumesClient
from .actions import ActionsClient
from .certificates import CertificatesClient
from .datacenters import DatacentersClient
from .firewalls import FirewallsClient
from .floating_ips import FloatingIPsClient
from .images import ImagesClient
from .isos import IsosClient
from .load_balancer_types import LoadBalancerTypesClient
from .load_balancers import LoadBalancersClient
from .locations import LocationsClient
from .networks import NetworksClient
from .placement_groups import PlacementGroupsClient
from .primary_ips import PrimaryIPsClient
from .server_types import ServerTypesClient
from .servers import ServersClient
from .ssh_keys import SSHKeysClient
from .volumes import VolumesClient


class Client:
Expand Down
9 changes: 9 additions & 0 deletions hcloud/actions/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from __future__ import annotations

from .client import ActionsClient, ActionsPageResult, BoundAction # noqa: F401
from .domain import ( # noqa: F401
Action,
ActionException,
ActionFailedException,
ActionTimeoutException,
)
3 changes: 1 addition & 2 deletions hcloud/actions/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
import time
from typing import TYPE_CHECKING, NamedTuple

from ..core.client import BoundModelBase, ClientEntityBase
from ..core.domain import Meta
from ..core import BoundModelBase, ClientEntityBase, Meta
from .domain import Action, ActionFailedException, ActionTimeoutException

if TYPE_CHECKING:
Expand Down
2 changes: 1 addition & 1 deletion hcloud/actions/domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from dateutil.parser import isoparse

from .._exceptions import HCloudException
from ..core.domain import BaseDomain
from ..core import BaseDomain


class Action(BaseDomain):
Expand Down
13 changes: 13 additions & 0 deletions hcloud/certificates/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from __future__ import annotations

from .client import ( # noqa: F401
BoundCertificate,
CertificatesClient,
CertificatesPageResult,
)
from .domain import ( # noqa: F401
Certificate,
CreateManagedCertificateResponse,
ManagedCertificateError,
ManagedCertificateStatus,
)
5 changes: 2 additions & 3 deletions hcloud/certificates/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@

from typing import TYPE_CHECKING, NamedTuple

from ..actions.client import ActionsPageResult, BoundAction
from ..core.client import BoundModelBase, ClientEntityBase, GetEntityByNameMixin
from ..core.domain import Meta
from ..actions import ActionsPageResult, BoundAction
from ..core import BoundModelBase, ClientEntityBase, GetEntityByNameMixin, Meta
from .domain import (
Certificate,
CreateManagedCertificateResponse,
Expand Down
2 changes: 1 addition & 1 deletion hcloud/certificates/domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from dateutil.parser import isoparse

from ..core.domain import BaseDomain, DomainIdentityMixin
from ..core import BaseDomain, DomainIdentityMixin


class Certificate(BaseDomain, DomainIdentityMixin):
Expand Down
4 changes: 4 additions & 0 deletions hcloud/core/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from __future__ import annotations

from .client import BoundModelBase, ClientEntityBase, GetEntityByNameMixin # noqa: F401
from .domain import BaseDomain, DomainIdentityMixin, Meta, Pagination # noqa: F401
8 changes: 8 additions & 0 deletions hcloud/datacenters/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from __future__ import annotations

from .client import ( # noqa: F401
BoundDatacenter,
DatacentersClient,
DatacentersPageResult,
)
from .domain import Datacenter, DatacenterServerTypes # noqa: F401
7 changes: 3 additions & 4 deletions hcloud/datacenters/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@

from typing import TYPE_CHECKING, NamedTuple

from ..core.client import BoundModelBase, ClientEntityBase, GetEntityByNameMixin
from ..core.domain import Meta
from ..locations.client import BoundLocation
from ..server_types.client import BoundServerType
from ..core import BoundModelBase, ClientEntityBase, GetEntityByNameMixin, Meta
from ..locations import BoundLocation
from ..server_types import BoundServerType
from .domain import Datacenter, DatacenterServerTypes

if TYPE_CHECKING:
Expand Down
2 changes: 1 addition & 1 deletion hcloud/datacenters/domain.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from __future__ import annotations

from ..core.domain import BaseDomain, DomainIdentityMixin
from ..core import BaseDomain, DomainIdentityMixin


class Datacenter(BaseDomain, DomainIdentityMixin):
Expand Down
3 changes: 3 additions & 0 deletions hcloud/deprecation/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from __future__ import annotations

from .domain import DeprecationInfo # noqa: F401
2 changes: 1 addition & 1 deletion hcloud/deprecation/domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from dateutil.parser import isoparse

from ..core.domain import BaseDomain
from ..core import BaseDomain


class DeprecationInfo(BaseDomain):
Expand Down
10 changes: 10 additions & 0 deletions hcloud/firewalls/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from __future__ import annotations

from .client import BoundFirewall, FirewallsClient, FirewallsPageResult # noqa: F401
from .domain import ( # noqa: F401
CreateFirewallResponse,
Firewall,
FirewallResource,
FirewallResourceLabelSelector,
FirewallRule,
)
7 changes: 3 additions & 4 deletions hcloud/firewalls/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@

from typing import TYPE_CHECKING, NamedTuple

from ..actions.client import ActionsPageResult, BoundAction
from ..core.client import BoundModelBase, ClientEntityBase, GetEntityByNameMixin
from ..core.domain import Meta
from ..actions import ActionsPageResult, BoundAction
from ..core import BoundModelBase, ClientEntityBase, GetEntityByNameMixin, Meta
from .domain import (
CreateFirewallResponse,
Firewall,
Expand Down Expand Up @@ -40,7 +39,7 @@ def __init__(self, client, data, complete=True):

applied_to = data.get("applied_to", [])
if applied_to:
from ..servers.client import BoundServer
from ..servers import BoundServer

ats = []
for a in applied_to:
Expand Down
2 changes: 1 addition & 1 deletion hcloud/firewalls/domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from dateutil.parser import isoparse

from ..core.domain import BaseDomain
from ..core import BaseDomain


class Firewall(BaseDomain):
Expand Down
8 changes: 8 additions & 0 deletions hcloud/floating_ips/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from __future__ import annotations

from .client import ( # noqa: F401
BoundFloatingIP,
FloatingIPsClient,
FloatingIPsPageResult,
)
from .domain import CreateFloatingIPResponse, FloatingIP # noqa: F401
9 changes: 4 additions & 5 deletions hcloud/floating_ips/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@

from typing import TYPE_CHECKING, NamedTuple

from ..actions.client import ActionsPageResult, BoundAction
from ..core.client import BoundModelBase, ClientEntityBase, GetEntityByNameMixin
from ..core.domain import Meta
from ..locations.client import BoundLocation
from ..actions import ActionsPageResult, BoundAction
from ..core import BoundModelBase, ClientEntityBase, GetEntityByNameMixin, Meta
from ..locations import BoundLocation
from .domain import CreateFloatingIPResponse, FloatingIP

if TYPE_CHECKING:
Expand All @@ -18,7 +17,7 @@ class BoundFloatingIP(BoundModelBase):
model = FloatingIP

def __init__(self, client, data, complete=True):
from ..servers.client import BoundServer
from ..servers import BoundServer

server = data.get("server")
if server is not None:
Expand Down
2 changes: 1 addition & 1 deletion hcloud/floating_ips/domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from dateutil.parser import isoparse

from ..core.domain import BaseDomain
from ..core import BaseDomain


class FloatingIP(BaseDomain):
Expand Down
3 changes: 3 additions & 0 deletions hcloud/helpers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from __future__ import annotations

from .labels import LabelValidator # noqa: F401
4 changes: 4 additions & 0 deletions hcloud/images/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from __future__ import annotations

from .client import BoundImage, ImagesClient, ImagesPageResult # noqa: F401
from .domain import CreateImageResponse, Image # noqa: F401
7 changes: 3 additions & 4 deletions hcloud/images/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@

from typing import TYPE_CHECKING, NamedTuple

from ..actions.client import ActionsPageResult, BoundAction
from ..core.client import BoundModelBase, ClientEntityBase, GetEntityByNameMixin
from ..core.domain import Meta
from ..actions import ActionsPageResult, BoundAction
from ..core import BoundModelBase, ClientEntityBase, GetEntityByNameMixin, Meta
from .domain import Image

if TYPE_CHECKING:
Expand All @@ -17,7 +16,7 @@ class BoundImage(BoundModelBase):
model = Image

def __init__(self, client, data):
from ..servers.client import BoundServer
from ..servers import BoundServer

created_from = data.get("created_from")
if created_from is not None:
Expand Down
2 changes: 1 addition & 1 deletion hcloud/images/domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from dateutil.parser import isoparse

from ..core.domain import BaseDomain, DomainIdentityMixin
from ..core import BaseDomain, DomainIdentityMixin


class Image(BaseDomain, DomainIdentityMixin):
Expand Down
4 changes: 4 additions & 0 deletions hcloud/isos/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from __future__ import annotations

from .client import BoundIso, IsosClient, IsosPageResult # noqa: F401
from .domain import Iso # noqa: F401
3 changes: 1 addition & 2 deletions hcloud/isos/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
from typing import TYPE_CHECKING, NamedTuple
from warnings import warn

from ..core.client import BoundModelBase, ClientEntityBase, GetEntityByNameMixin
from ..core.domain import Meta
from ..core import BoundModelBase, ClientEntityBase, GetEntityByNameMixin, Meta
from .domain import Iso

if TYPE_CHECKING:
Expand Down
2 changes: 1 addition & 1 deletion hcloud/isos/domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from dateutil.parser import isoparse

from ..core.domain import BaseDomain, DomainIdentityMixin
from ..core import BaseDomain, DomainIdentityMixin


class Iso(BaseDomain, DomainIdentityMixin):
Expand Down
8 changes: 8 additions & 0 deletions hcloud/load_balancer_types/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from __future__ import annotations

from .client import ( # noqa: F401
BoundLoadBalancerType,
LoadBalancerTypesClient,
LoadBalancerTypesPageResult,
)
from .domain import LoadBalancerType # noqa: F401
3 changes: 1 addition & 2 deletions hcloud/load_balancer_types/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

from typing import TYPE_CHECKING, NamedTuple

from ..core.client import BoundModelBase, ClientEntityBase, GetEntityByNameMixin
from ..core.domain import Meta
from ..core import BoundModelBase, ClientEntityBase, GetEntityByNameMixin, Meta
from .domain import LoadBalancerType

if TYPE_CHECKING:
Expand Down
2 changes: 1 addition & 1 deletion hcloud/load_balancer_types/domain.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from __future__ import annotations

from ..core.domain import BaseDomain, DomainIdentityMixin
from ..core import BaseDomain, DomainIdentityMixin


class LoadBalancerType(BaseDomain, DomainIdentityMixin):
Expand Down
23 changes: 23 additions & 0 deletions hcloud/load_balancers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from __future__ import annotations

from .client import ( # noqa: F401
BoundLoadBalancer,
LoadBalancersClient,
LoadBalancersPageResult,
)
from .domain import ( # noqa: F401
CreateLoadBalancerResponse,
IPv4Address,
IPv6Network,
LoadBalancer,
LoadBalancerAlgorithm,
LoadBalancerHealtCheckHttp,
LoadBalancerHealthCheck,
LoadBalancerService,
LoadBalancerServiceHttp,
LoadBalancerTarget,
LoadBalancerTargetIP,
LoadBalancerTargetLabelSelector,
PrivateNet,
PublicNetwork,
)
Loading

0 comments on commit 854c12b

Please sign in to comment.