# AI : Faceswap : Source : lib #### `cli/actions.py` ``` ``` #### `cli/args.py` ✔ ``` FaceSwapArgs __init__( subparser, command ) script = ScriptExecutor( command ) parser = subparser.add_parser( command ) parser.set_defaults( func = script.execute_script ) ``` #### `cli/args_extract_convert.py` ``` ExtractConvertArgs < FaceSwapArgs ExtractArgs < ExtractConvertArgs ConvertArgs < ExtractConvertArgs ``` #### `cli/args_train.py` ``` TrainArgs < FaceSwapArgs ``` #### `cli/launcher.py` ✔ ``` ScriptExecutor __init__( command ) _command = command.lower() execute_script( arguments ) script = _import_script() process = script( arguments ) process.process() _import_script() mod = f"scripts.{ _command.lower() }" return getattr( import_module( mod ), _command.title() ) ``` #### `multithreading.py` ``` FSThread < threading.Thread __init__( target = None, name = None, args = (), kwargs = None, daemon = None ) super() run() _target( *_args, **_kwargs ) MultiThread __init__( target, *args, thread_count = 1, name = None, **kwargs ) _threads = [] start() for idx in range( _thread_count ): thread = FSThread( name = f"{ _name }_{ idx }", ... ) thread.start() _threads.append( thread ) ``` #### `queue_manager.py` ``` EventQueue < queue.Queue ... _QueueManager ... queue_manager = _QueueManager() ``` #### `serializer.py` ``` # s = get_serializer( "json" ) # data = s.load( file ) # s.save( file, data ) Serializer # ABC; use get_serializer | get_serializer_from_filename ... get_serializer( serializer ) npy -> _NPYSerializer() compressed -> _CompressedSerializer() json -> _JSONSerializer() pickle -> _PickleSerializer() yaml -> _YAMLSerializer() get_serializer_from_filename( filename ) .json -> _JSONSerializer() .p, .pickle -> _PickleSerializer() .npy -> _NPYSerializer() .fsa -> _CompressedSerializer() .yaml, .yml -> _YAMLSerializer() ```