From 2b14aa68d04bf1fb5fbe5dbd7adb9d1c1663a19b Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Tue, 21 Jul 2020 08:17:31 +0200 Subject: Created a __dump__ function in BlockDevice. Can be used to safely dump the class into a JSON object. Building a json_encoder which checks if the object hasattr(obj, '__dump__') before calling would be ideal --- archinstall/lib/disk.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'archinstall/lib') diff --git a/archinstall/lib/disk.py b/archinstall/lib/disk.py index c6fba8ce..7cd8dd0f 100644 --- a/archinstall/lib/disk.py +++ b/archinstall/lib/disk.py @@ -17,6 +17,21 @@ class BlockDevice(): self.info = info self.part_cache = OrderedDict() + def __repr__(self, *args, **kwargs): + return f"BlockDevice({self.device})" + + def __getitem__(self, key, *args, **kwargs): + if not key in self.info: + raise KeyError(f'{self} does not contain information: "{key}"') + return self.info[key] + + def __dump__(self): + return { + 'path' : self.path, + 'info' : self.info, + 'partition_cache' : self.part_cache + } + @property def device(self): """ @@ -69,13 +84,6 @@ class BlockDevice(): all_partitions = self.partitions return [all_partitions[k] for k in all_partitions] - def __repr__(self, *args, **kwargs): - return f"BlockDevice({self.device})" - - def __getitem__(self, key, *args, **kwargs): - if not key in self.info: - raise KeyError(f'{self} does not contain information: "{key}"') - return self.info[key] class Partition(): def __init__(self, path, part_id=None, size=-1, filesystem=None, mountpoint=None, encrypted=False): -- cgit v1.2.3-70-g09d2