-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcli.py
More file actions
37 lines (30 loc) · 1.29 KB
/
cli.py
File metadata and controls
37 lines (30 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import argparse
from pprint import pprint
from pathlib import Path
global_dictionary = {"modules_dictionary": {},
"classes_dictionary": {},
"functions_dictionary": {}}
parser = argparse.ArgumentParser()
parser.add_argument("file_name", help="analyzes inserted python file")
parser.add_argument("-c", "--class_name", help="provides details for a class | Usage: module.class")
parser.add_argument("-f", "--function_name", help="provides details for a function")
parser.add_argument("-m", "--module_name", help="provides details for a module | Usage: module")
args = parser.parse_args()
filePath = Path(args.file_name)
def main():
non_file_name_args = {k: v for k, v in vars(args).items() if k != "file_name" and v not in (None, False)}
if not non_file_name_args:
moduleOutput(filePath.stem)
else:
if args.class_name:
classOutput()
if args.function_name:
functionOutput()
if args.module_name:
moduleOutput(args.module_name)
def moduleOutput(moduleName):
pprint(global_dictionary["modules_dictionary"][moduleName])
def classOutput():
pprint(global_dictionary["classes_dictionary"][args.class_name])
def functionOutput():
pprint(global_dictionary["functions_dictionary"][args.function_name])