Repository: archlinux/archinstall

Issue:
Error on manual partitioning in the Menu class
I encountered this error on master with `Select harddrive` -> `Select disk layout` -> `Select what to do` 

```
 * Menu options must be of type string * 
invalid parameter at Menu() call was at <manage_new_and_existing_partitions>
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/archinstall/archinstall/__main__.py", line 15, in <module>
    archinstall.run_as_a_module()
  File "/archinstall/./archinstall/__init__.py", line 272, in run_as_a_module
    script.execute()
  File "/archinstall/archinstall/lib/profiles.py", line 194, in execute
    self.spec.loader.exec_module(sys.modules[self.namespace])
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/archinstall/archinstall/examples/guided.py", line 264, in <module>
    ask_user_questions()
  File "/archinstall/archinstall/examples/guided.py", line 92, in ask_user_questions
    global_menu.run()
  File "/archinstall/archinstall/lib/menu/selection_menu.py", line 270, in run
    if not self._process_selection(selection):
  File "/archinstall/archinstall/lib/menu/selection_menu.py", line 287, in _process_selection
    return self.exec_option(selector_name,selector)
  File "/archinstall/archinstall/lib/menu/selection_menu.py", line 307, in exec_option
    result = selector.func()
  File "/archinstall/archinstall/lib/menu/selection_menu.py", line 440, in <lambda>
    lambda: select_disk_layout(
  File "/archinstall/archinstall/lib/user_interaction.py", line 792, in select_disk_layout
    return select_individual_blockdevice_usage(block_devices)
  File "/archinstall/archinstall/lib/user_interaction.py", line 768, in select_individual_blockdevice_usage
    layout = manage_new_and_existing_partitions(device)
  File "/archinstall/archinstall/lib/user_interaction.py", line 630, in manage_new_and_existing_partitions
    task = Menu(title, modes, sort=False).run()
  File "/archinstall/archinstall/lib/menu/menu.py", line 78, in __init__
    raise RequirementError('Menu.__init__() requires the options to be of type string')
archinstall.lib.exceptions.RequirementError: Menu.__init__() requires the options to be of type string
```


Discussion:

Resolving patch:
diff --git a/archinstall/lib/user_interaction.py b/archinstall/lib/user_interaction.py
--- a/archinstall/lib/user_interaction.py
+++ b/archinstall/lib/user_interaction.py
@@ -522,7 +522,7 @@ def ask_for_main_filesystem_format(advanced_options=False):
 	return choice
 
 
-def current_partition_layout(partitions :List[Partition], with_idx :bool = False) -> Dict[str, Any]:
+def current_partition_layout(partitions :List[Partition], with_idx :bool = False) -> str:
 	def do_padding(name, max_len):
 		spaces = abs(len(str(name)) - max_len) + 2
 		pad_left = int(spaces / 2)
@@ -563,7 +563,7 @@ def do_padding(name, max_len):
 
 		current_layout += f'{row[:-1]}\n'
 
-	title = _('Current partition layout')
+	title = str(_('Current partition layout'))
 	return f'\n\n{title}:\n\n{current_layout}'
 
 
@@ -597,15 +597,15 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
 	# Test code: [part.__dump__() for part in block_device.partitions.values()]
 	# TODO: Squeeze in BTRFS subvolumes here
 
-	new_partition = _('Create a new partition')
-	suggest_partition_layout = _('Suggest partition layout')
-	delete_partition = _('Delete a partition')
-	delete_all_partitions = _('Clear/Delete all partitions')
-	assign_mount_point = _('Assign mount-point for a partition')
-	mark_formatted = _('Mark/Unmark a partition to be formatted (wipes data)')
-	mark_encrypted = _('Mark/Unmark a partition as encrypted')
-	mark_bootable = _('Mark/Unmark a partition as bootable (automatic for /boot)')
-	set_filesystem_partition = _('Set desired filesystem for a partition')
+	new_partition = str(_('Create a new partition'))
+	suggest_partition_layout = str(_('Suggest partition layout'))
+	delete_partition = str(_('Delete a partition'))
+	delete_all_partitions = str(_('Clear/Delete all partitions'))
+	assign_mount_point = str(_('Assign mount-point for a partition'))
+	mark_formatted = str(_('Mark/Unmark a partition to be formatted (wipes data)'))
+	mark_encrypted = str(_('Mark/Unmark a partition as encrypted'))
+	mark_bootable = str(_('Mark/Unmark a partition as bootable (automatic for /boot)'))
+	set_filesystem_partition = str(_('Set desired filesystem for a partition'))
 
 	while True:
 		modes = [new_partition, suggest_partition_layout]


Test patch: