33import argparse
44import os .path
55from argparse import ArgumentParser , Namespace
6- from typing import Optional
6+ from typing import Optional , Callable
77
88import fs .copy
99from fs .base import FS
@@ -14,21 +14,20 @@ class RelicSgaCli(CliPluginGroup):
1414 GROUP = "relic.cli.sga"
1515
1616 def _create_parser (
17- self , command_group : Optional [_SubParsersAction ] = None
17+ self , command_group : Optional [_SubParsersAction ] = None
1818 ) -> ArgumentParser :
1919 if command_group is None :
2020 return ArgumentParser ("sga" )
2121 else :
2222 return command_group .add_parser ("sga" )
2323
2424
25-
26- def _arg_exists_err ( value ):
25+ def _arg_exists_err (value : str ) -> argparse .ArgumentTypeError :
2726 return argparse .ArgumentTypeError (f"The given path '{ value } ' does not exist!" )
2827
2928
30- def _get_dir_type_validator (exists :bool ):
31- def _dir_type (path : str ):
29+ def _get_dir_type_validator (exists : bool ) -> Callable [[ str ], str ] :
30+ def _dir_type (path : str ) -> str :
3231 if not os .path .exists (path ):
3332 if exists :
3433 raise _arg_exists_err (path )
@@ -43,8 +42,8 @@ def _dir_type(path: str):
4342 return _dir_type
4443
4544
46- def _get_file_type_validator (exists :Optional [bool ]):
47- def _file_type (path : str ):
45+ def _get_file_type_validator (exists : Optional [bool ]) -> Callable [[ str ], str ] :
46+ def _file_type (path : str ) -> str :
4847 if not os .path .exists (path ):
4948 if exists :
5049 raise _arg_exists_err (path )
@@ -61,16 +60,24 @@ def _file_type(path: str):
6160
6261class RelicSgaUnpackCli (CliPlugin ):
6362 def _create_parser (
64- self , command_group : Optional [_SubParsersAction ] = None
63+ self , command_group : Optional [_SubParsersAction ] = None
6564 ) -> ArgumentParser :
6665 parser : ArgumentParser
6766 if command_group is None :
6867 parser = ArgumentParser ("unpack" )
6968 else :
7069 parser = command_group .add_parser ("unpack" )
7170
72- parser .add_argument ("src_sga" , type = _get_file_type_validator (exists = True ), help = "Source SGA File" )
73- parser .add_argument ("out_dir" , type = _get_dir_type_validator (exists = False ), help = "Output Directory" )
71+ parser .add_argument (
72+ "src_sga" ,
73+ type = _get_file_type_validator (exists = True ),
74+ help = "Source SGA File" ,
75+ )
76+ parser .add_argument (
77+ "out_dir" ,
78+ type = _get_dir_type_validator (exists = False ),
79+ help = "Output Directory" ,
80+ )
7481
7582 return parser
7683
@@ -92,7 +99,7 @@ class RelicSgaPackCli(CliPluginGroup):
9299 GROUP = "relic.cli.sga.pack"
93100
94101 def _create_parser (
95- self , command_group : Optional [_SubParsersAction ] = None
102+ self , command_group : Optional [_SubParsersAction ] = None
96103 ) -> ArgumentParser :
97104 parser : ArgumentParser
98105 if command_group is None :
@@ -111,14 +118,14 @@ class RelicSgaRepackCli(CliPluginGroup):
111118 GROUP = "relic.cli.sga.repack"
112119
113120 def _create_parser (
114- self , command_group : Optional [_SubParsersAction ] = None
121+ self , command_group : Optional [_SubParsersAction ] = None
115122 ) -> ArgumentParser :
116123 parser : ArgumentParser
117124 desc = "Debug Command; reads and repacks an SGA archive."
118125 if command_group is None :
119126 parser = ArgumentParser ("repack" , description = desc )
120127 else :
121- parser = command_group .add_parser ("repack" , description = desc )
128+ parser = command_group .add_parser ("repack" , description = desc )
122129
123130 # pack further delegates to version plugins
124131
0 commit comments