-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcli.py
104 lines (89 loc) · 3 KB
/
cli.py
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import typer
from djangowiz.core import ModelExtractor, ProjectGenerator
app = typer.Typer()
@app.command()
def generate_files(
app_name: str,
project_name: str,
model_file: str,
single_file: bool = False,
overwrite: bool = False,
template_dir: str = None,
):
model_names = ModelExtractor.extract_model_names(model_file)
generator = ProjectGenerator(app_name, project_name, model_names, template_dir)
generator.generate_all(single_file, overwrite)
print(
f"Files for {len(model_names)} models have been generated in the {app_name} directory."
)
@app.command()
def generate_core_files(
app_name: str,
project_name: str,
model_file: str,
single_file: bool = False,
overwrite: bool = False,
template_dir: str = None,
):
model_names = ModelExtractor.extract_model_names(model_file)
generator = ProjectGenerator(app_name, project_name, model_names, template_dir)
generator.generate_core_files(single_file, overwrite)
print(
f"Serializers, viewsets, and routes for {len(model_names)} models have been generated in the {app_name} directory."
)
@app.command()
def generate_serializers(
app_name: str,
project_name: str,
model_file: str,
single_file: bool = False,
overwrite: bool = False,
template_dir: str = None,
):
model_names = ModelExtractor.extract_model_names(model_file)
generator = ProjectGenerator(app_name, project_name, model_names, template_dir)
generator.generate_serializers(single_file, overwrite)
print(
f"Serializers for {len(model_names)} models have been generated in the {app_name} directory."
)
@app.command()
def generate_viewsets(
app_name: str,
project_name: str,
model_file: str,
single_file: bool = False,
overwrite: bool = False,
template_dir: str = None,
):
model_names = ModelExtractor.extract_model_names(model_file)
generator = ProjectGenerator(app_name, project_name, model_names, template_dir)
generator.generate_viewsets(single_file, overwrite)
print(
f"Viewsets for {len(model_names)} models have been generated in the {app_name} directory."
)
@app.command()
def generate_urls(
app_name: str,
project_name: str,
model_file: str,
overwrite: bool = False,
template_dir: str = None,
):
model_names = ModelExtractor.extract_model_names(model_file)
generator = ProjectGenerator(app_name, project_name, model_names, template_dir)
generator.generate_urls(overwrite)
print(f"URLs have been generated in the {app_name} directory.")
@app.command()
def generate_routes(
app_name: str,
project_name: str,
model_file: str,
overwrite: bool = False,
template_dir: str = None,
):
model_names = ModelExtractor.extract_model_names(model_file)
generator = ProjectGenerator(app_name, project_name, model_names, template_dir)
generator.generate_routes(overwrite)
print(f"Routes have been generated in the {app_name} directory.")
if __name__ == "__main__":
app()