Coverage for src/probable_fiesta/app/main.py: 83%
41 statements
« prev ^ index » next coverage.py v7.1.0, created at 2023-01-30 18:57 -0500
« prev ^ index » next coverage.py v7.1.0, created at 2023-01-30 18:57 -0500
1""""Main module for probable_fiesta app."""
2import sys
4from ..config.variables import PackageDef as pd
5from ..config.variables import VariablesDef as vd
6from ..app.builder.app_builder import AppBuilder
7from ..app.builder.context import Context
8from ..command.builder.command_builder import CommandBuilder
9from ..config.default_config import get_config
10from ..command.builder.command import Command
11from ..app.builder.app_abstract_machine import AppMachine
12from ..cli.builder.parser_builder import ParserBuilder
13from ..command.builder.command_factory import CommandFactory
14from ..command.builder.command_queue import CommandQueue
15from ..cli.builder.args_parse import Parser
18def use_app_machine(args=None):
19 print("using app machine")
20 app_machine = AppMachine()
21 my_app = app_machine.prepare_default_app()
22 print(f"\n->Running sample app: {my_app}")
23 #my_app.run()
24 #history = my_app.context.command_queue.get_history()
25 #print(history)
28def main(args=None):
29 """Main function for probable_fiesta app.
32 Args:
33 args (list): List of arguments. Defaults to None.
34 """
35 # Get args from cli if not provided
36 if not args:
37 args = sys.argv[1:]
39 default_config = get_config(log_name="probable_fiesta")
41 aB = AppBuilder()
42 # [oui_la_la], ["oui la la"]
43 clean_args, clean_argv = aB.arguments.clean_arg_function(args)
44 if len(clean_argv) == 0:
45 clean_argv.append(None)
48 aB = AppBuilder()
49 main_app = aB\
50 .name\
51 .set_name("main_app")\
52 .arguments\
53 .set_arguments(args)\
54 .args_parser\
55 .add_argument("--test-app", type=str, help="test app builder")\
56 .add_argument("--version", action='store_true', help="show version builder")\
57 .add_argument("--repeat", type=str, help="repeat input")\
58 .context\
59 .add_context(Context.Factory().new_context(
60 "test_app",
61 CommandQueue.new(
62 [CommandFactory.new_command("test_app_func", lambda x: x, "repeated")]
63 )))\
64 .add_context(Context.Factory().new_context(
65 "version",
66 CommandQueue.new(
67 [CommandFactory.new_command("version", get_version, None)]
68 )))\
69 .add_context(Context.Factory().new_context(
70 "repeat",
71 CommandQueue.new(
72 [CommandFactory.new_command("repeat", repeat, clean_argv[0])]
73 )))\
74 .config\
75 .set_config(default_config)\
76 .validate()\
77 .build()
78 #print(main_app)
80 #use_app_machine()
82 # Get parser error
83 if main_app.args_parser.error:
84 return main_app.args_parser.error
86 # Run main app
87 #print(f"\n->Running main app: {main_app}")
88 #print("WILL RUN COMMANDS:", main_app.cleaned_args)
89 for command in main_app.cleaned_args:
90 main_app.run(command)
92 # Create second argument parser
93 #pa = main_app.args_parser.get_parsed_args()
94 #print(pa)
95 #validated = vars(pa)
96 #print(validated)
97 #keys = validated.keys()
98 #print("keys: ", keys)
99 #print("VS ARGS: ", args)
100 #tmp_parser = Parser.Factory.new()
101 #my_args = tmp_parser.parser.parse_args(args)
102 #print("My Args PARSER: ", my_args)
103 #my_args = vars(my_args)
104 #for command in my_args.keys():
105 #print("command: ", command)
106 #main_app.run(command)
108 # Get command execution history
109 #history = main_app.context.command_queue.get_history()
110 #print(history)
112 # Get command execution history new
113 history_new = main_app.get_run_history()
114 print(history_new)
116 # Return command execution history
117 return history_new
119# Get current name and version from config
120def get_version() -> str:
121 """Get package version.
123 Returns:
124 str: Current package version.
125 """
126 return f"{pd.NAME} v.{vd.VERSION}"
128def repeat(x):
129 return(f"Repeating: {x}")
131if __name__ == "__main__":
132 main(sys.argv[1:])