diff --git a/Dockerfile b/Dockerfile index eb7104403968cd9421abea4ea7b71a65eefe1c78..21e7fe26ed0ffa19987ca6bd14c10d49efc3d0a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.7-slim-buster +FROM python:3.8-slim-buster RUN pip install \ cookiecutter==1.6.0 diff --git a/cookiecutter-docker.sh b/cookiecutter-docker.sh index b223bd4cd3c1c1bbfc343632b27837aaa30ec559..2880946ea018984cc98febad97b018dec5006321 100755 --- a/cookiecutter-docker.sh +++ b/cookiecutter-docker.sh @@ -62,5 +62,3 @@ run_cookiecutter() { process_args "$@" run_cookiecutter - -exit 0 diff --git a/cookiecutter.json b/cookiecutter.json index 075e5e5b07131b4009f2baed642d4b9dd3e44456..50dac8c221bc63b249262ef8bda00ad6b32ef09b 100644 --- a/cookiecutter.json +++ b/cookiecutter.json @@ -1,12 +1,12 @@ { - "full_name": "Steven Loria", - "email": "sloria1@gmail.com", - "github_username": "sloria", - "project_name": "My Flask App", - "app_name": "{{cookiecutter.project_name.lower().replace('-', '_').replace(' ', '_')}}", - "project_short_description": "A flasky app.", - "use_pipenv": ["no", "yes"], - "python_version": ["3.7", "3.6"], - "node_version": ["12", "10", "8"], - "use_heroku": ["no", "yes"] + "full_name": "Steven Loria", + "email": "sloria1@gmail.com", + "github_username": "sloria", + "project_name": "My Flask App", + "app_name": "{{cookiecutter.project_name.lower().replace('-', '_').replace(' ', '_')}}", + "project_short_description": "A flasky app.", + "use_pipenv": ["no", "yes"], + "python_version": ["3.8", "3.7", "3.6"], + "node_version": ["12", "10"], + "use_heroku": ["no", "yes"] } diff --git a/hooks/pre_gen_project.py b/hooks/pre_gen_project.py index 26c1340a900366baf4577a7dd74ebb887c40871b..57b2630315309008820e0cba2d3bb9f3f37fdf61 100644 --- a/hooks/pre_gen_project.py +++ b/hooks/pre_gen_project.py @@ -31,7 +31,7 @@ def validate_python_module_name(): module_name = "{{ cookiecutter.app_name }}" if not re.match(MODULE_REGEX, module_name): log_warning(module_name) - raise ValueError + sys.exit(1) if __name__ == "__main__": diff --git a/{{cookiecutter.app_name}}/tests/factories.py b/{{cookiecutter.app_name}}/tests/factories.py index 17d0203f88956714951d0481582e2ff5c048a761..40160d3377c6e0291b2c5cc8a34c2a25c123251e 100644 --- a/{{cookiecutter.app_name}}/tests/factories.py +++ b/{{cookiecutter.app_name}}/tests/factories.py @@ -20,8 +20,8 @@ class BaseFactory(SQLAlchemyModelFactory): class UserFactory(BaseFactory): """User factory.""" - username = Sequence(lambda n: "user{0}".format(n)) - email = Sequence(lambda n: "user{0}@example.com".format(n)) + username = Sequence(lambda n: f"user{n}") + email = Sequence(lambda n: f"user{n}@example.com") password = PostGenerationMethodCall("set_password", "example") active = True diff --git a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/app.py b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/app.py index e6eaaa6178f10843f5919df0bb305d3369ba41b2..dd05cc5eb61ac07712b872433a741b2ea5e943e5 100644 --- a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/app.py +++ b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/app.py @@ -61,7 +61,7 @@ def register_errorhandlers(app): """Render error template.""" # If a HTTPException, pull the `code` attribute; default to 500 error_code = getattr(error, "code", 500) - return render_template("{0}.html".format(error_code)), error_code + return render_template(f"{error_code}.html"), error_code for errcode in [401, 404, 500]: app.errorhandler(errcode)(render_error) diff --git a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/commands.py b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/commands.py index 9049219a1095b8197858c8465398b3e4b5da2edf..65b168b4389466c793de398fac5df60a57da53d7 100644 --- a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/commands.py +++ b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/commands.py @@ -49,7 +49,7 @@ def lint(fix_imports, check): def execute_tool(description, *args): """Execute a checking tool with its arguments.""" command_line = list(args) + files_and_directories - click.echo("{}: {}".format(description, " ".join(command_line))) + click.echo(f"{description}: {' '.join(command_line)}") rv = call(command_line) if rv != 0: exit(rv) diff --git a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/database.py b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/database.py index 17c612dad39b49828c4fbd97d5ff6a039cfbac94..435f955d853f4450a87fa5ce837177a07093b1e8 100644 --- a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/database.py +++ b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/database.py @@ -78,7 +78,7 @@ def reference_col( column_kwargs = column_kwargs or {} return Column( - db.ForeignKey("{0}.{1}".format(tablename, pk_name), **foreign_key_kwargs), + db.ForeignKey(f"{tablename}.{pk_name}", **foreign_key_kwargs), nullable=nullable, - **column_kwargs + **column_kwargs, ) diff --git a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/user/models.py b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/user/models.py index 6ee97c0db4317c9a2e331ed13060f05a8f5054ff..e9746c3c0c18778baf77a1cb9f2503a136adef05 100644 --- a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/user/models.py +++ b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/user/models.py @@ -29,7 +29,7 @@ class Role(SurrogatePK, Model): def __repr__(self): """Represent instance as a unique string.""" - return "<Role({name})>".format(name=self.name) + return f"<Role({self.name})>" class User(UserMixin, SurrogatePK, Model): @@ -65,8 +65,8 @@ class User(UserMixin, SurrogatePK, Model): @property def full_name(self): """Full user name.""" - return "{0} {1}".format(self.first_name, self.last_name) + return f"{self.first_name} {self.last_name}" def __repr__(self): """Represent instance as a unique string.""" - return "<User({username!r})>".format(username=self.username) + return f"<User({self.username!r})>" diff --git a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/utils.py b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/utils.py index 5e93055566feaa3be3f9b1177357c54c9e8c0716..6c91dd0ade6a0bb5bf5b0673e9c778cfe4239843 100644 --- a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/utils.py +++ b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/utils.py @@ -7,4 +7,4 @@ def flash_errors(form, category="warning"): """Flash all errors for a form.""" for field, errors in form.errors.items(): for error in errors: - flash("{0} - {1}".format(getattr(form, field).label.text, error), category) + flash(f"{getattr(form, field).label.text} - {error}", category)