@@ -108,13 +108,11 @@ def build(self) -> Sequence[GeneratorError]:
108108 """Create the project from templates"""
109109
110110 print (f"Generating { self .project_dir } " )
111- if self .config .overwrite :
112- shutil .rmtree (self .project_dir , ignore_errors = True )
113-
114111 try :
115112 self .project_dir .mkdir ()
116113 except FileExistsError :
117- return [GeneratorError (detail = "Directory already exists. Delete it or use the --overwrite option." )]
114+ if not self .config .overwrite :
115+ return [GeneratorError (detail = "Directory already exists. Delete it or use the --overwrite option." )]
118116 self ._create_package ()
119117 self ._build_metadata ()
120118 self ._build_models ()
@@ -158,7 +156,7 @@ def _get_errors(self) -> list[GeneratorError]:
158156
159157 def _create_package (self ) -> None :
160158 if self .package_dir != self .project_dir :
161- self .package_dir .mkdir ()
159+ self .package_dir .mkdir (exist_ok = True )
162160 # Package __init__.py
163161 package_init = self .package_dir / "__init__.py"
164162
@@ -214,6 +212,7 @@ def _build_setup_py(self) -> None:
214212 def _build_models (self ) -> None :
215213 # Generate models
216214 models_dir = self .package_dir / "models"
215+ shutil .rmtree (models_dir , ignore_errors = True )
217216 models_dir .mkdir ()
218217 models_init = models_dir / "__init__.py"
219218 imports = []
@@ -259,6 +258,7 @@ def _build_api(self) -> None:
259258
260259 # Generate endpoints
261260 api_dir = self .package_dir / "api"
261+ shutil .rmtree (api_dir , ignore_errors = True )
262262 api_dir .mkdir ()
263263 api_init_path = api_dir / "__init__.py"
264264 api_init_template = self .env .get_template ("api_init.py.jinja" )
0 commit comments