Skip to content

Commit 39b0496

Browse files
committed
Fix mutable argument defaults
1 parent 50d1937 commit 39b0496

File tree

4 files changed

+28
-13
lines changed

4 files changed

+28
-13
lines changed

upcloud_api/cloud_manager/object_storage_mixin.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from typing import List, Optional
2+
13
from upcloud_api.object_storage import ObjectStorage
24
from upcloud_api.utils import convert_datetime_string_to_object
35

@@ -82,14 +84,14 @@ def get_object_storage_network_statistics(
8284
object_storage,
8385
datetime_from,
8486
datetime_to=None,
85-
interval=None,
86-
bucket=[],
87-
filename=[],
88-
method=[],
89-
status=[],
90-
group_by=[],
91-
order_by=[],
92-
limit=None,
87+
interval: Optional[int] = None,
88+
bucket: Optional[List[str]] = None,
89+
filename: Optional[List[str]] = None,
90+
method: Optional[List[str]] = None,
91+
status: Optional[List[int]] = None,
92+
group_by: Optional[List[str]] = None,
93+
order_by: Optional[List[str]] = None,
94+
limit: Optional[int] = None,
9395
):
9496
"""
9597
The network usage of an Object Storage device is metered and can be reviewed using the statistics request.

upcloud_api/cloud_manager/storage_mixin.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,18 @@ def get_storage(self, storage):
3737
return Storage(cloud_manager=self, **res['storage'])
3838

3939
def create_storage(
40-
self, size=10, tier='maxiops', title='Storage disk', zone='fi-hel1', backup_rule={}
40+
self,
41+
size=10,
42+
tier='maxiops',
43+
title='Storage disk',
44+
zone='fi-hel1',
45+
backup_rule: Optional[dict] = None,
4146
):
4247
"""
4348
Create a Storage object. Returns an object based on the API's response.
4449
"""
50+
if backup_rule is None:
51+
backup_rule = {}
4552
body = {
4653
'storage': {
4754
'size': size,
@@ -54,7 +61,7 @@ def create_storage(
5461
res = self.post_request('/storage', body)
5562
return Storage(cloud_manager=self, **res['storage'])
5663

57-
def _modify_storage(self, storage, size, title, backup_rule={}):
64+
def _modify_storage(self, storage, size, title, backup_rule: Optional[dict] = None):
5865
body = {'storage': {}}
5966
if size:
6067
body['storage']['size'] = size
@@ -64,7 +71,7 @@ def _modify_storage(self, storage, size, title, backup_rule={}):
6471
body['storage']['backup_rule'] = backup_rule
6572
return self.put_request('/storage/' + str(storage), body)
6673

67-
def modify_storage(self, storage, size, title, backup_rule={}):
74+
def modify_storage(self, storage, size, title, backup_rule: Optional[dict] = None):
6875
"""
6976
Modify a Storage object. Returns an object based on the API's response.
7077
"""

upcloud_api/cloud_manager/tag_mixin.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from typing import Optional
2+
13
from upcloud_api.tag import Tag
24

35

@@ -18,12 +20,14 @@ def get_tag(self, name):
1820
res = self.get_request('/tag/' + name)
1921
return Tag(cloud_manager=self, **res['tag'])
2022

21-
def create_tag(self, name, description=None, servers=[]):
23+
def create_tag(self, name, description=None, servers: Optional[list] = None):
2224
"""
2325
Create a new Tag. Only name is mandatory.
2426
2527
Returns the created Tag object.
2628
"""
29+
if servers is None:
30+
servers = []
2731
servers = [str(server) for server in servers]
2832
body = {'tag': Tag(name, description, servers).to_dict()}
2933
res = self.post_request('/tag', body)

upcloud_api/tag.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ class Tag(UpCloudResource):
1515

1616
ATTRIBUTES = {'name': None, 'description': None, 'servers': []}
1717

18-
def __init__(self, name, description=None, servers=[], **kwargs):
18+
def __init__(self, name, description=None, servers=None, **kwargs):
1919
"""Init with Tag('tagname', 'description', [servers]) syntax."""
20+
if servers is None:
21+
servers = []
2022
super().__init__(name=name, description=description, servers=servers, **kwargs)
2123

2224
def _reset(self, **kwargs):

0 commit comments

Comments
 (0)