Add an option filter for short options and option aliases
Marco Ricci

Marco Ricci commited on 2026-08-16 16:09:04
Zeige 1 geänderte Dateien mit 21 Einfügungen und 0 Löschungen.

... ...
@@ -90,6 +90,27 @@ class CLIOption:
90 90
     command-line.
91 91
     """
92 92
 
93
+    def remove_short(self) -> CLIOption:
94
+        new_names = [name for name in self.names if name.startswith("--")]
95
+        if new_names == self.names:
96
+            return self
97
+        return CLIOption(
98
+            names=tuple(new_names),
99
+            help=self.help,
100
+            has_argument=self.has_argument,
101
+            eager=self.eager,
102
+        )
103
+
104
+    def remove_aliases(self) -> CLIOption:
105
+        if len(self.names) == 1:
106
+            return self
107
+        return CLIOption(
108
+            names=self.names[:1],
109
+            help=self.help,
110
+            has_argument=self.has_argument,
111
+            eager=self.eager,
112
+        )
113
+
93 114
 
94 115
 @dataclasses.dataclass(frozen=True)
95 116
 class CLIOptionGroup:
96 117