Skip to content

Commit

Permalink
Resolve circular imports and restore top-level imports
Browse files Browse the repository at this point in the history
  • Loading branch information
zliang-akamai committed Sep 25, 2024
1 parent dddecc8 commit ddea427
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 31 deletions.
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)
)

0 comments on commit ddea427

Please sign in to comment.