Skip to content

Commit 2b27e56

Browse files
authored
Refactor ModificationStatus (#4422)
* Use UPPER_CASE for ModificationStatus member names * Use StrEnum for ModificationStatus * Replace LvmVolumeStatus with ModificationStatus
1 parent a52bfc3 commit 2b27e56

File tree

6 files changed

+40
-50
lines changed

6 files changed

+40
-50
lines changed

archinstall/lib/disk/device_handler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ def _setup_partition(
342342
) -> None:
343343
# when we require a delete and the partition to be (re)created
344344
# already exists then we have to delete it first
345-
if requires_delete and part_mod.status in [ModificationStatus.Modify, ModificationStatus.Delete]:
345+
if requires_delete and part_mod.status in [ModificationStatus.MODIFY, ModificationStatus.DELETE]:
346346
info(f'Delete existing partition: {part_mod.safe_dev_path}')
347347
part_info = self.find_partition(part_mod.safe_dev_path)
348348

@@ -351,7 +351,7 @@ def _setup_partition(
351351

352352
disk.deletePartition(part_info.partition)
353353

354-
if part_mod.status == ModificationStatus.Delete:
354+
if part_mod.status == ModificationStatus.DELETE:
355355
return
356356

357357
start_sector = part_mod.start.convert(

archinstall/lib/disk/disk_menu.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
LvmLayoutType,
2424
LvmVolume,
2525
LvmVolumeGroup,
26-
LvmVolumeStatus,
2726
ModificationStatus,
2827
PartitionFlag,
2928
PartitionModification,
@@ -503,7 +502,7 @@ def _boot_partition(sector_size: SectorSize, using_gpt: bool) -> PartitionModifi
503502

504503
# boot partition
505504
return PartitionModification(
506-
status=ModificationStatus.Create,
505+
status=ModificationStatus.CREATE,
507506
type=PartitionType.Primary,
508507
start=start,
509508
length=size,
@@ -655,7 +654,7 @@ async def suggest_single_disk_layout(
655654
root_length = available_space - root_start
656655

657656
root_partition = PartitionModification(
658-
status=ModificationStatus.Create,
657+
status=ModificationStatus.CREATE,
659658
type=PartitionType.Primary,
660659
start=root_start,
661660
length=root_length,
@@ -680,7 +679,7 @@ async def suggest_single_disk_layout(
680679
flags.append(PartitionFlag.LINUX_HOME)
681680

682681
home_partition = PartitionModification(
683-
status=ModificationStatus.Create,
682+
status=ModificationStatus.CREATE,
684683
type=PartitionType.Primary,
685684
start=home_start,
686685
length=home_length,
@@ -765,7 +764,7 @@ async def suggest_multi_disk_layout(
765764

766765
# add root partition to the root device
767766
root_partition = PartitionModification(
768-
status=ModificationStatus.Create,
767+
status=ModificationStatus.CREATE,
769768
type=PartitionType.Primary,
770769
start=root_start,
771770
length=root_length,
@@ -787,7 +786,7 @@ async def suggest_multi_disk_layout(
787786

788787
# add home partition to home device
789788
home_partition = PartitionModification(
790-
status=ModificationStatus.Create,
789+
status=ModificationStatus.CREATE,
791790
type=PartitionType.Primary,
792791
start=home_start,
793792
length=home_length,
@@ -851,7 +850,7 @@ async def suggest_lvm_layout(
851850
lvm_vol_group = LvmVolumeGroup(vg_grp_name, pvs=other_part)
852851

853852
root_vol = LvmVolume(
854-
status=LvmVolumeStatus.Create,
853+
status=ModificationStatus.CREATE,
855854
name='root',
856855
fs_type=filesystem_type,
857856
length=root_vol_size,
@@ -864,7 +863,7 @@ async def suggest_lvm_layout(
864863

865864
if home_volume:
866865
home_vol = LvmVolume(
867-
status=LvmVolumeStatus.Create,
866+
status=ModificationStatus.CREATE,
868867
name='home',
869868
fs_type=filesystem_type,
870869
length=home_vol_size,

archinstall/lib/disk/partitioning_menu.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def table_data(self) -> dict[str, str]:
5757
return self.segment.table_data()
5858

5959
part_mod = PartitionModification(
60-
status=ModificationStatus.Create,
60+
status=ModificationStatus.CREATE,
6161
type=PartitionType._Unknown,
6262
start=self.segment.start,
6363
length=self.segment.length,
@@ -209,7 +209,7 @@ async def _run_actions_on_entry(self, entry: DiskSegment) -> None:
209209
@override
210210
def selected_action_display(self, selection: DiskSegment) -> str:
211211
if isinstance(selection.segment, PartitionModification):
212-
if selection.segment.status == ModificationStatus.Create:
212+
if selection.segment.status == ModificationStatus.CREATE:
213213
return tr('Partition - New')
214214
elif selection.segment.is_delete() and selection.segment.dev_path:
215215
title = tr('Partition') + '\n\n'
@@ -357,7 +357,7 @@ def _delete_partition(
357357
data: list[DiskSegment],
358358
) -> list[DiskSegment]:
359359
if entry.is_exists_or_modify():
360-
entry.status = ModificationStatus.Delete
360+
entry.status = ModificationStatus.DELETE
361361
part_mods = self.get_part_mods(data)
362362
else:
363363
part_mods = [d.segment for d in data if isinstance(d.segment, PartitionModification) and d.segment != entry]
@@ -391,10 +391,10 @@ async def _set_btrfs_subvolumes(self, partition: PartitionModification) -> None:
391391
async def _prompt_formatting(self, partition: PartitionModification) -> None:
392392
# an existing partition can toggle between Exist or Modify
393393
if partition.is_modify():
394-
partition.status = ModificationStatus.Exist
394+
partition.status = ModificationStatus.EXIST
395395
return
396396
elif partition.exists():
397-
partition.status = ModificationStatus.Modify
397+
partition.status = ModificationStatus.MODIFY
398398

399399
# If we mark a partition for formatting, but the format is CRYPTO LUKS, there's no point in formatting it really
400400
# without asking the user which inner-filesystem they want to use. Since the flag 'encrypted' = True is already set,
@@ -526,7 +526,7 @@ async def _create_new_partition(self, free_space: FreeSpace) -> PartitionModific
526526
mountpoint = await self._prompt_mountpoint()
527527

528528
partition = PartitionModification(
529-
status=ModificationStatus.Create,
529+
status=ModificationStatus.CREATE,
530530
type=PartitionType.Primary,
531531
start=free_space.start,
532532
length=length,

archinstall/lib/models/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
LvmLayoutType,
1616
LvmVolume,
1717
LvmVolumeGroup,
18-
LvmVolumeStatus,
1918
ModificationStatus,
2019
PartitionFlag,
2120
PartitionModification,
@@ -57,7 +56,6 @@
5756
'LvmLayoutType',
5857
'LvmVolume',
5958
'LvmVolumeGroup',
60-
'LvmVolumeStatus',
6159
'MirrorConfiguration',
6260
'MirrorRegion',
6361
'ModificationStatus',

archinstall/lib/models/device.py

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -164,15 +164,15 @@ def parse_arg(
164164
continue
165165

166166
first = non_delete_partitions[0]
167-
if first.status == ModificationStatus.Create and not first.start.is_valid_start():
167+
if first.status == ModificationStatus.CREATE and not first.start.is_valid_start():
168168
raise ValueError('First partition must start at no less than 1 MiB')
169169

170170
for i, current_partition in enumerate(non_delete_partitions[1:], start=1):
171171
previous_partition = non_delete_partitions[i - 1]
172-
if current_partition.status == ModificationStatus.Create and current_partition.start < previous_partition.end:
172+
if current_partition.status == ModificationStatus.CREATE and current_partition.start < previous_partition.end:
173173
raise ValueError('Partitions overlap')
174174

175-
create_partitions = [part_mod for part_mod in non_delete_partitions if part_mod.status == ModificationStatus.Create]
175+
create_partitions = [part_mod for part_mod in non_delete_partitions if part_mod.status == ModificationStatus.CREATE]
176176

177177
if not create_partitions:
178178
continue
@@ -819,11 +819,11 @@ def installation_pkg(self) -> str | None:
819819
return None
820820

821821

822-
class ModificationStatus(Enum):
823-
Exist = 'existing'
824-
Modify = 'modify'
825-
Delete = 'delete'
826-
Create = 'create'
822+
class ModificationStatus(StrEnum):
823+
EXIST = 'existing'
824+
MODIFY = auto()
825+
DELETE = auto()
826+
CREATE = auto()
827827

828828

829829
class _PartitionModificationSerialization(TypedDict):
@@ -868,7 +868,7 @@ def __post_init__(self) -> None:
868868
if self.is_exists_or_modify() and not self.dev_path:
869869
raise ValueError('If partition marked as existing a path must be set')
870870

871-
if self.fs_type is None and self.status == ModificationStatus.Modify:
871+
if self.fs_type is None and self.status == ModificationStatus.MODIFY:
872872
raise ValueError('FS type must not be empty on modifications with status type modify')
873873

874874
@override
@@ -911,7 +911,7 @@ def from_existing_partition(cls, partition_info: _PartitionInfo) -> Self:
911911
subvol_mods = []
912912

913913
return cls(
914-
status=ModificationStatus.Exist,
914+
status=ModificationStatus.EXIST,
915915
type=partition_info.type,
916916
start=partition_info.start,
917917
length=partition_info.length,
@@ -961,23 +961,23 @@ def is_swap(self) -> bool:
961961
return self.fs_type == FilesystemType.LINUX_SWAP
962962

963963
def is_modify(self) -> bool:
964-
return self.status == ModificationStatus.Modify
964+
return self.status == ModificationStatus.MODIFY
965965

966966
def is_delete(self) -> bool:
967-
return self.status == ModificationStatus.Delete
967+
return self.status == ModificationStatus.DELETE
968968

969969
def exists(self) -> bool:
970-
return self.status == ModificationStatus.Exist
970+
return self.status == ModificationStatus.EXIST
971971

972972
def is_exists_or_modify(self) -> bool:
973973
return self.status in [
974-
ModificationStatus.Exist,
975-
ModificationStatus.Delete,
976-
ModificationStatus.Modify,
974+
ModificationStatus.EXIST,
975+
ModificationStatus.DELETE,
976+
ModificationStatus.MODIFY,
977977
]
978978

979979
def is_create_or_modify(self) -> bool:
980-
return self.status in [ModificationStatus.Create, ModificationStatus.Modify]
980+
return self.status in [ModificationStatus.CREATE, ModificationStatus.MODIFY]
981981

982982
@property
983983
def mapper_name(self) -> str | None:
@@ -1088,13 +1088,6 @@ def contains_lv(self, lv: LvmVolume) -> bool:
10881088
return lv in self.volumes
10891089

10901090

1091-
class LvmVolumeStatus(Enum):
1092-
Exist = 'existing'
1093-
Modify = 'modify'
1094-
Delete = 'delete'
1095-
Create = 'create'
1096-
1097-
10981091
class _LvmVolumeSerialization(TypedDict):
10991092
obj_id: str
11001093
status: str
@@ -1108,7 +1101,7 @@ class _LvmVolumeSerialization(TypedDict):
11081101

11091102
@dataclass
11101103
class LvmVolume:
1111-
status: LvmVolumeStatus
1104+
status: ModificationStatus
11121105
name: str
11131106
fs_type: FilesystemType
11141107
length: Size
@@ -1177,7 +1170,7 @@ def relative_mountpoint(self) -> Path:
11771170
@classmethod
11781171
def parse_arg(cls, arg: _LvmVolumeSerialization) -> Self:
11791172
volume = cls(
1180-
status=LvmVolumeStatus(arg['status']),
1173+
status=ModificationStatus(arg['status']),
11811174
name=arg['name'],
11821175
fs_type=FilesystemType(arg['fs_type']),
11831176
length=Size.parse_args(arg['length']),
@@ -1215,13 +1208,13 @@ def table_data(self) -> dict[str, str]:
12151208
return part_mod
12161209

12171210
def is_modify(self) -> bool:
1218-
return self.status == LvmVolumeStatus.Modify
1211+
return self.status == ModificationStatus.MODIFY
12191212

12201213
def exists(self) -> bool:
1221-
return self.status == LvmVolumeStatus.Exist
1214+
return self.status == ModificationStatus.EXIST
12221215

12231216
def is_exists_or_modify(self) -> bool:
1224-
return self.status in [LvmVolumeStatus.Exist, LvmVolumeStatus.Modify]
1217+
return self.status in [ModificationStatus.EXIST, ModificationStatus.MODIFY]
12251218

12261219
def is_root(self) -> bool:
12271220
if self.mountpoint is not None:

examples/full_automated_installation.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
# create a new boot partition
3939
boot_partition = PartitionModification(
40-
status=ModificationStatus.Create,
40+
status=ModificationStatus.CREATE,
4141
type=PartitionType.Primary,
4242
start=Size(1, Unit.MiB, device.device_info.sector_size),
4343
length=Size(512, Unit.MiB, device.device_info.sector_size),
@@ -49,7 +49,7 @@
4949

5050
# create a root partition
5151
root_partition = PartitionModification(
52-
status=ModificationStatus.Create,
52+
status=ModificationStatus.CREATE,
5353
type=PartitionType.Primary,
5454
start=Size(513, Unit.MiB, device.device_info.sector_size),
5555
length=Size(20, Unit.GiB, device.device_info.sector_size),
@@ -64,7 +64,7 @@
6464

6565
# create a new home partition
6666
home_partition = PartitionModification(
67-
status=ModificationStatus.Create,
67+
status=ModificationStatus.CREATE,
6868
type=PartitionType.Primary,
6969
start=start_home,
7070
length=length_home,

0 commit comments

Comments
 (0)