Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolve circular imports and restore top-level imports #462

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 12 additions & 17 deletions linode_api4/objects/linode.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,19 @@
from linode_api4 import util
from linode_api4.common import load_and_validate_keys
from linode_api4.errors import UnexpectedResponseError
from linode_api4.objects import (
Base,
DerivedBase,
Image,
JSONObject,
Property,
Region,
)
from linode_api4.objects.base import MappedObject
from linode_api4.objects.base import Base, MappedObject, Property
from linode_api4.objects.dbase import DerivedBase
from linode_api4.objects.filtering import FilterableAttribute
from linode_api4.objects.networking import IPAddress, IPv6Range, VPCIPAddress
from linode_api4.objects.serializable import StrEnum
from linode_api4.objects.image import Image
from linode_api4.objects.networking import (
Firewall,
IPAddress,
IPv6Range,
VPCIPAddress,
)
from linode_api4.objects.nodebalancer import NodeBalancer
from linode_api4.objects.region import Region
from linode_api4.objects.serializable import JSONObject, StrEnum
from linode_api4.objects.vpc import VPC, VPCSubnet
from linode_api4.paginated_list import PaginatedList

Expand Down Expand Up @@ -1618,9 +1619,6 @@ def firewalls(self):
:returns: A List of Firewalls of the Linode Instance.
:rtype: List[Firewall]
"""
from linode_api4.objects import ( # pylint: disable=import-outside-toplevel
Firewall,
)

result = self._client.get(
"{}/firewalls".format(Instance.api_endpoint), model=self
Expand All @@ -1640,9 +1638,6 @@ def nodebalancers(self):
:returns: A List of Nodebalancers of the Linode Instance.
:rtype: List[Nodebalancer]
"""
from linode_api4.objects import ( # pylint: disable=import-outside-toplevel
NodeBalancer,
)

result = self._client.get(
"{}/nodebalancers".format(Instance.api_endpoint), model=self
Expand Down
5 changes: 4 additions & 1 deletion linode_api4/objects/networking.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@

from linode_api4.common import Price, RegionPrice
from linode_api4.errors import UnexpectedResponseError
from linode_api4.objects import Base, DerivedBase, JSONObject, Property, Region
from linode_api4.objects.base import Base, Property
from linode_api4.objects.dbase import DerivedBase
from linode_api4.objects.region import Region
from linode_api4.objects.serializable import JSONObject


class IPv6Pool(Base):
Expand Down
10 changes: 3 additions & 7 deletions linode_api4/objects/nodebalancer.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,10 @@

from linode_api4.common import Price, RegionPrice
from linode_api4.errors import UnexpectedResponseError
from linode_api4.objects import (
Base,
DerivedBase,
MappedObject,
Property,
Region,
)
from linode_api4.objects.base import Base, MappedObject, Property
from linode_api4.objects.dbase import DerivedBase
from linode_api4.objects.networking import Firewall, IPAddress
from linode_api4.objects.region import Region


class NodeBalancerType(Base):
Expand Down
4 changes: 3 additions & 1 deletion linode_api4/objects/volume.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from linode_api4.common import Price, RegionPrice
from linode_api4.errors import UnexpectedResponseError
from linode_api4.objects import Base, Instance, Property, Region
from linode_api4.objects.base import Base, Property
from linode_api4.objects.linode import Instance, Region
from linode_api4.objects.region import Region


class VolumeType(Base):
Expand Down
6 changes: 1 addition & 5 deletions linode_api4/objects/vpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from linode_api4.errors import UnexpectedResponseError
from linode_api4.objects import Base, DerivedBase, Property, Region
from linode_api4.objects.networking import VPCIPAddress
from linode_api4.objects.serializable import JSONObject
from linode_api4.paginated_list import PaginatedList

Expand Down Expand Up @@ -110,11 +111,6 @@ def ips(self) -> PaginatedList:
:rtype: PaginatedList of VPCIPAddress
"""

# need to avoid circular import
from linode_api4.objects import ( # pylint: disable=import-outside-toplevel
VPCIPAddress,
)

return self._client._get_and_filter(
VPCIPAddress, endpoint="/vpcs/{}/ips".format(self.id)
)