25
25
from click_default_group import DefaultGroup
26
26
27
27
28
+ def _existing_path_before_colon (_ctx : object , _value : object , path : str ) -> str :
29
+ prefix , _ , _ = path .partition (":" )
30
+ if not Path (prefix ).is_file ():
31
+ msg = "{prefix!r} must be an exiting path"
32
+ raise click .BadParameter (msg )
33
+
34
+ return path
35
+
36
+
28
37
@click .group (context_settings = CONTEXT_SETTINGS , cls = DefaultGroup , default = "browse" )
29
38
@click .version_option (version = VERSION )
30
39
def main () -> None :
@@ -34,7 +43,7 @@ def main() -> None:
34
43
35
44
36
45
@main .command ()
37
- @click .argument ("filename" , type = click . Path ( exists = True ) )
46
+ @click .argument ("filename" , callback = _existing_path_before_colon )
38
47
def tree (filename : str ) -> None :
39
48
"""
40
49
Display a tree.
@@ -59,7 +68,7 @@ def new_func(*args: Any, **kwargs: Any) -> Any:
59
68
60
69
61
70
@main .command ()
62
- @click .argument ("filename" , type = click . Path ( exists = True ) )
71
+ @click .argument ("filename" , callback = _existing_path_before_colon )
63
72
@click .option (
64
73
"--iterm" , is_flag = True , help = "Display an iTerm plot (requires [iterm] extra)."
65
74
)
@@ -100,7 +109,7 @@ def plot(filename: str, iterm: bool) -> None:
100
109
101
110
102
111
@main .command ()
103
- @click .argument ("filename" , type = click . Path ( exists = True ) )
112
+ @click .argument ("filename" , callback = _existing_path_before_colon )
104
113
def browse (filename : str ) -> None :
105
114
"""
106
115
Display a TUI.
0 commit comments