From fb6abf7efbabaa12368ab8f95c763c36f6aad475 Mon Sep 17 00:00:00 2001 From: MatDagommer Date: Sun, 4 Jan 2026 12:24:22 +0100 Subject: [PATCH 1/2] =?UTF-8?q?feat(cli)=E2=9C=A8:=20Enable=20help=20messa?= =?UTF-8?q?ge=20when=20no=20arguments=20are=20provided=20to=20CLI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Set no_args_is_help=True in Typer app initialization to show help message when CLI is run without arguments. --- pyml_cli/cli/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyml_cli/cli/__init__.py b/pyml_cli/cli/__init__.py index 40336a1..72a6b07 100644 --- a/pyml_cli/cli/__init__.py +++ b/pyml_cli/cli/__init__.py @@ -9,7 +9,10 @@ from .project import init from .system import status -app = typer.Typer(pretty_exceptions_show_locals=False) +app = typer.Typer( + pretty_exceptions_show_locals=False, + no_args_is_help=True, +) app.command()(init) app.command()(status) From 156acc1c26514b7466d86f51f542641e71a836b5 Mon Sep 17 00:00:00 2001 From: MatDagommer Date: Mon, 5 Jan 2026 19:13:12 +0100 Subject: [PATCH 2/2] =?UTF-8?q?chore(template)=F0=9F=A7=B9:=20update=20.gi?= =?UTF-8?q?tignore=20to=20use=20standard=20Python=20template=20and=20move?= =?UTF-8?q?=20Dockerfile=20to=20.devcontainer=20directory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replaced custom .gitignore with a comprehensive Python .gitignore template for better coverage of common files to ignore. - Moved Dockerfile into the .devcontainer directory to align with devcontainer standards. --- .../{ => .devcontainer}/Dockerfile | 0 .../{{ cookiecutter.__repo_name }}/.gitignore | 178 +++++++++++++++--- 2 files changed, 151 insertions(+), 27 deletions(-) rename pyml_cli/templates/project/{{ cookiecutter.__repo_name }}/{ => .devcontainer}/Dockerfile (100%) diff --git a/pyml_cli/templates/project/{{ cookiecutter.__repo_name }}/Dockerfile b/pyml_cli/templates/project/{{ cookiecutter.__repo_name }}/.devcontainer/Dockerfile similarity index 100% rename from pyml_cli/templates/project/{{ cookiecutter.__repo_name }}/Dockerfile rename to pyml_cli/templates/project/{{ cookiecutter.__repo_name }}/.devcontainer/Dockerfile diff --git a/pyml_cli/templates/project/{{ cookiecutter.__repo_name }}/.gitignore b/pyml_cli/templates/project/{{ cookiecutter.__repo_name }}/.gitignore index 59d65ca..0fad171 100644 --- a/pyml_cli/templates/project/{{ cookiecutter.__repo_name }}/.gitignore +++ b/pyml_cli/templates/project/{{ cookiecutter.__repo_name }}/.gitignore @@ -1,27 +1,151 @@ -[tool.bumpversion] -current_version = "0.1.0" -parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)" -serialize = ["{major}.{minor}.{patch}"] -search = "{current_version}" -replace = "{new_version}" -regex = false -ignore_missing_version = false -ignore_missing_files = false -tag = true -sign_tags = false -tag_name = "v{new_version}" -tag_message = "Bump version: {current_version} → {new_version}" -allow_dirty = false -commit = true -message = "Bump version: {current_version} → {new_version}" -moveable_tags = [] -commit_args = "" -setup_hooks = [] -pre_commit_hooks = [] -post_commit_hooks = [] - -[[tool.bumpversion.files]] -filename = "pyproject.toml" - -[[tool.bumpversion.files]] -filename = "{{ cookiecutter.__module_name }}/version.py" + +# Created by https://www.toptal.com/developers/gitignore/api/python +# Edit at https://www.toptal.com/developers/gitignore?templates=python + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# End of https://www.toptal.com/developers/gitignore/api/python + +# Custom +oryx-build-commands.txt +.DS_Store +docs/cli.md +.pixi