Skip to content

Commit c795c8e

Browse files
committed
remove various optional attributes and fix user defined defaults
1 parent f255b65 commit c795c8e

24 files changed

+393
-287
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ env:
77
install:
88
- pip3 install flake8-mutable flake8-builtins flake8-mypy
99
script:
10-
- flake8 --exclude=__init__.py --ignore=E203,W391
10+
- flake8 --exclude=".*" --exclude=__init__.py --ignore=E203,W391

.travis/mypy-stubs/libzfs.pyi

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# NOTE: This dynamically typed stub was automatically generated by stubgen.
44

55
from datetime import date
6-
from typing import Any
6+
from typing import Any, List, Dict, Optional
77

88
DatasetType = ... # type: Any
99
DiffFileType = ... # type: Any
@@ -54,21 +54,21 @@ class ZFS:
5454
datasets = ... # type: Any
5555
errno = ... # type: Any
5656
errstr = ... # type: Any
57-
pools = ... # type: Any
57+
pools: List[ZFSPool] = ...
5858
snapshots = ... # type: Any
5959
__pyx_vtable__ = ... # type: Any
60-
def __init__(self, *args, **kwargs): ...
60+
def __init__(self, *args, **kwargs) -> None: ...
6161
def create(self, *args, **kwargs): ...
6262
def describe_resume_token(self, *args, **kwargs): ...
63-
def destroy(self, *args, **kwargs): ...
63+
def destroy(self, name: str) -> None: ...
6464
def export_pool(self, *args, **kwargs): ...
6565
def find_import(self, *args, **kwargs): ...
6666
def generate_history_opts(self, *args, **kwargs): ...
6767
def get(self, *args, **kwargs): ...
68-
def get_dataset(self, *args, **kwargs): ...
69-
def get_dataset_by_path(self, *args, **kwargs): ...
68+
def get_dataset(self, name: str) -> ZFSDataset: ...
69+
def get_dataset_by_path(self, *args, **kwargs) -> ZFSDataset: ...
7070
def get_object(self, *args, **kwargs): ...
71-
def get_snapshot(self, *args, **kwargs): ...
71+
def get_snapshot(self, name: str) -> ZFSSnapshot: ...
7272
def history_vdevs_list(self, *args, **kwargs): ...
7373
def import_pool(self, *args, **kwargs): ...
7474
def receive(self, *args, **kwargs): ...
@@ -88,23 +88,28 @@ class ZFSBookmark(ZFSObject):
8888

8989
class ZFSDataset(ZFSObject):
9090
bookmarks = ... # type: Any
91-
children = ... # type: Any
91+
children: List[ZFSDataset] = ...
9292
children_recursive = ... # type: Any
9393
dependents = ... # type: Any
94-
mountpoint = ... # type: Any
95-
snapshots = ... # type: Any
94+
mountpoint: str = ...
95+
snapshots: List[ZFSSnapshot]= ...
9696
snapshots_recursive = ... # type: Any
9797
__pyx_vtable__ = ... # type: Any
9898
def __init__(self, *args, **kwargs): ...
9999
def destroy_snapshot(self, *args, **kwargs): ...
100100
def diff(self, *args, **kwargs): ...
101101
def get_send_progress(self, *args, **kwargs): ...
102-
def mount(self, *args, **kwargs): ...
103-
def mount_recursive(self, *args, **kwargs): ...
102+
def mount(self, *args, **kwargs) -> None: ...
103+
def mount_recursive(self, *args, **kwargs) -> None: ...
104104
def promote(self, *args, **kwargs): ...
105105
def receive(self, *args, **kwargs): ...
106106
def send(self, *args, **kwargs): ...
107-
def snapshot(self, *args, **kwargs): ...
107+
def snapshot(
108+
self,
109+
name: str,
110+
fsopts: Optional[Dict[str, str]],
111+
recursive: bool=False
112+
) -> None: ...
108113
def umount(self, *args, **kwargs): ...
109114
def umount_recursive(self, *args, **kwargs): ...
110115
def __getstate__(self): ...
@@ -167,8 +172,8 @@ class ZFSPool:
167172
def __init__(self, *args, **kwargs): ...
168173
def attach_vdevs(self, *args, **kwargs): ...
169174
def clear(self, *args, **kwargs): ...
170-
def create(self, *args, **kwargs): ...
171-
def delete(self, *args, **kwargs): ...
175+
def create(self, *args, **kwargs) -> None: ...
176+
def delete(self, *args, **kwargs) -> None: ...
172177
def start_scrub(self, *args, **kwargs): ...
173178
def stop_scrub(self, *args, **kwargs): ...
174179
def upgrade(self, *args, **kwargs): ...
@@ -193,14 +198,14 @@ class ZFSProperty:
193198
def __setstate_cython__(self, *args, **kwargs): ...
194199

195200
class ZFSPropertyDict(dict):
196-
def __init__(self, *args, **kwargs): ...
197-
def get(self, *args, **kwargs): ...
201+
def __init__(self, *args, **kwargs) -> None: ...
202+
def get(self, *args, **kwargs) -> ZFSProperty: ...
198203
def has_key(self, *args, **kwargs): ...
199204
def items(self, *args, **kwargs): ...
200205
def iterkeys(self, *args, **kwargs): ...
201206
def itervalues(self, *args, **kwargs): ...
202207
def keys(self, *args, **kwargs): ...
203-
def refresh(self, *args, **kwargs): ...
208+
def refresh(self) -> None: ...
204209
def setdefault(self, *args, **kwargs): ...
205210
def update(self, *args, **kwargs): ...
206211
def values(self, *args, **kwargs): ...
@@ -214,16 +219,16 @@ class ZFSPropertyDict(dict):
214219

215220
class ZFSSnapshot(ZFSObject):
216221
holds = ... # type: Any
217-
mountpoint = ... # type: Any
222+
mountpoint: str = ...
218223
parent = ... # type: Any
219-
snapshot_name = ... # type: Any
220-
def __init__(self, *args, **kwargs): ...
224+
snapshot_name: str = ...
225+
def __init__(self, *args, **kwargs) -> None: ...
221226
def bookmark(self, *args, **kwargs): ...
222-
def clone(self, *args, **kwargs): ...
227+
def clone(self, name: str, opts: Optional[Dict[str, str]]) -> None: ...
223228
def delete(self, *args, **kwargs): ...
224229
def hold(self, *args, **kwargs): ...
225230
def release(self, *args, **kwargs): ...
226-
def rollback(self, *args, **kwargs): ...
231+
def rollback(self, force: bool=False) -> None: ...
227232
def send(self, *args, **kwargs): ...
228233
def __getstate__(self): ...
229234
def __reduce_cython__(self, *args, **kwargs): ...
@@ -234,7 +239,7 @@ class ZFSUserProperty(ZFSProperty):
234239
rawvalue = ... # type: Any
235240
source = ... # type: Any
236241
value = ... # type: Any
237-
def __init__(self, *args, **kwargs): ...
242+
def __init__(self, *args, **kwargs) -> None: ...
238243
def __reduce_cython__(self, *args, **kwargs): ...
239244
def __setstate_cython__(self, *args, **kwargs): ...
240245

.travis/mypy-stubs/texttable.pyi

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#
33
# NOTE: This dynamically typed stub was automatically generated by stubgen.
44

5-
from typing import Any
5+
from typing import Any, List
66

77
class ArraySizeError(Exception):
88
msg = ... # type: Any
@@ -15,14 +15,18 @@ class Texttable:
1515
VLINES = ... # type: Any
1616
def __init__(self, max_width: int = ...) -> None: ...
1717
def reset(self): ...
18-
def set_chars(self, array): ...
18+
def set_chars(self, array: List): ...
1919
def set_deco(self, deco): ...
20-
def set_cols_align(self, array): ...
21-
def set_cols_valign(self, array): ...
22-
def set_cols_dtype(self, array): ...
23-
def set_cols_width(self, array): ...
20+
def set_cols_align(self, array: List): ...
21+
def set_cols_valign(self, array: List): ...
22+
def set_cols_dtype(self, array: List): ...
23+
def set_cols_width(self, array: List): ...
2424
def set_precision(self, width): ...
25-
def header(self, array): ...
26-
def add_row(self, array): ...
27-
def add_rows(self, rows, header: bool = ...): ...
28-
def draw(self): ...
25+
def header(self, array: List): ...
26+
def add_row(self, array: List): ...
27+
def add_rows(
28+
self,
29+
rows: List[List[str]],
30+
header: bool = ...
31+
): ...
32+
def draw(self) -> str: ...

.travis/mypy-stubs/ucl.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ UCL_EMIT_JSON_COMPACT = ... # type: int
88
UCL_EMIT_MSGPACK = ... # type: int
99
UCL_EMIT_YAML = ... # type: int
1010

11-
def dump(*args, **kwargs): ...
12-
def load(*args, **kwargs): ...
11+
def dump(*args, **kwargs) -> str: ...
12+
def load(*args, **kwargs) -> dict: ...
1313
def validate(*args, **kwargs): ...

iocage/cli/create.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def cli(ctx, release, template, count, props, pkglist, basejail, basejail_type,
144144
errors = False
145145
for i in range(count):
146146

147-
jail = iocage.lib.Jail.Jail(
147+
jail = iocage.lib.Jail.JailGenerator(
148148
jail_data,
149149
logger=logger,
150150
host=host,
@@ -158,6 +158,7 @@ def cli(ctx, release, template, count, props, pkglist, basejail, basejail_type,
158158
msg = f"{jail.humanreadable_name} successfully created!{suffix}"
159159
logger.log(msg)
160160
except:
161+
raise
161162
msg = f"{jail.humanreadable_name} could not be created!{suffix}"
162163
logger.warn(msg)
163164

iocage/cli/set.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ def cli(
4848
) -> None:
4949
"""Get a list of jails and print the property."""
5050

51-
logger: libiocage.lib.Logger.Logger = ctx.parent.logger
51+
parent: typing.Any = ctx.parent
52+
logger: iocage.lib.Logger.Logger = parent.logger
5253
host = iocage.lib.Host.HostGenerator(logger=logger)
5354

5455
# Defaults
@@ -70,15 +71,15 @@ def cli(
7071

7172
updated_jail_count = 0
7273

73-
for jail in ioc_jails:
74+
for ioc_jail in ioc_jails: # type: iocage.lib.Jail.JailGenerator
7475

75-
updated_properties = set_properties(props, jail)
76+
updated_properties = set_properties(props, ioc_jail)
7677

7778
if len(updated_properties) == 0:
78-
logger.screen(f"Jail '{jail.humanreadable_name}' unchanged")
79+
logger.screen(f"Jail '{ioc_jail.humanreadable_name}' unchanged")
7980
else:
8081
logger.screen(
81-
f"Jail '{jail.humanreadable_name}' updated: " +
82+
f"Jail '{ioc_jail.humanreadable_name}' updated: " +
8283
", ".join(updated_properties)
8384
)
8485

@@ -92,7 +93,7 @@ def cli(
9293

9394

9495
def set_properties(
95-
properties: typing.List[str],
96+
properties: typing.Iterable[str],
9697
target: 'iocage.lib.LaunchableResource.LaunchableResource'
9798
) -> set:
9899

@@ -111,6 +112,7 @@ def set_properties(
111112
del target.config[key]
112113
updated_properties.add(key)
113114
except:
115+
raise
114116
pass
115117

116118
if len(updated_properties) > 0:

iocage/cli/start.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ def start_jails(jails, logger, print_function):
9898

9999
except Exception:
100100
failed_jails.append(jail)
101-
raise
102101
continue
103102

104103
logger.log(f"{jail.humanreadable_name} running as JID {jail.jid}")

iocage/lib/Config/File.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
class ConfigFile(iocage.lib.Config.Prototype.Prototype):
2828

29-
_file: str = None
29+
_file: str
3030

3131
def __init__(
3232
self,
@@ -38,7 +38,9 @@ def __init__(
3838
self,
3939
logger=logger
4040
)
41-
self._file = file
41+
42+
if file is not None:
43+
self._file = file
4244

4345
@property
4446
def file(self) -> str:

iocage/lib/Config/Jail/BaseConfig.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class BaseConfig(dict):
7272

7373
def __init__(
7474
self,
75-
logger: 'iocage.lib.Logger.Logger'=None,
75+
logger: 'iocage.lib.Logger.Logger'=None
7676
) -> None:
7777

7878
dict.__init__(self)
@@ -484,20 +484,27 @@ def set(self, key: str, value, **kwargs) -> bool:
484484
485485
bool: True if the JailConfig was changed
486486
"""
487+
hash_before: typing.Any
488+
hash_after: typing.Any
489+
490+
existed_before = key in self.user_data
487491

488492
try:
489493
hash_before = str(self.__getitem_user(key)).__hash__()
490494
except Exception:
491495
hash_before = None
492-
pass
493496

494497
self.__setitem__(key, value, **kwargs)
495498

499+
exists_after = key in self.user_data
500+
496501
try:
497502
hash_after = str(self.__getitem_user(key)).__hash__()
498503
except Exception:
499504
hash_after = None
500-
pass
505+
506+
if existed_before != exists_after:
507+
return True
501508

502509
return (hash_before != hash_after)
503510

@@ -506,7 +513,7 @@ def user_data(self) -> dict:
506513
return self.data
507514

508515
def __str__(self) -> str:
509-
return iocage.lib.helpers.to_json(self.user_data)
516+
return iocage.lib.helpers.to_json(self.data)
510517

511518
def __dir__(self) -> list:
512519

0 commit comments

Comments
 (0)