From e4f251f138a9bfbefb814afb29b84c3103d72e16 Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 9 Nov 2024 16:23:02 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20Ready=20to=20clone=20and=20code.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/rename_project.sh | 10 +++++----- .gitea/template.yml | 1 - ABOUT_THIS_TEMPLATE.md | 4 ++-- CONTRIBUTING.md | 8 ++++---- Containerfile | 2 +- MANIFEST.in | 2 +- Makefile | 20 ++++++++++---------- README.md | 18 +++++++++--------- mkdocs.yml | 2 +- project_name/__main__.py | 6 ------ {project_name => python}/VERSION | 0 {project_name => python}/__init__.py | 0 python/__main__.py | 6 ++++++ {project_name => python}/base.py | 6 +++--- {project_name => python}/cli.py | 4 ++-- setup.py | 16 ++++++++-------- tests/test_base.py | 4 ++-- 17 files changed, 54 insertions(+), 55 deletions(-) delete mode 100644 .gitea/template.yml delete mode 100644 project_name/__main__.py rename {project_name => python}/VERSION (100%) rename {project_name => python}/__init__.py (100%) create mode 100644 python/__main__.py rename {project_name => python}/base.py (68%) rename {project_name => python}/cli.py (87%) diff --git a/.gitea/rename_project.sh b/.gitea/rename_project.sh index b5ede16..b1b11bc 100755 --- a/.gitea/rename_project.sh +++ b/.gitea/rename_project.sh @@ -16,10 +16,10 @@ echo "Description: $description"; echo "Renaming project..." -original_author="author_name" -original_name="project_name" -original_urlname="project_urlname" -original_description="project_description" +original_author="Templates" +original_name="python" +original_urlname="Python" +original_description="Awesome python created by Templates" # for filename in $(find . -name "*.*") for filename in $(git ls-files) do @@ -30,7 +30,7 @@ do echo "Renamed $filename" done -mv project_name $name +mv python $name # This command runs only once on GHA! rm -rf .gitea/template.yml diff --git a/.gitea/template.yml b/.gitea/template.yml deleted file mode 100644 index 3386bee..0000000 --- a/.gitea/template.yml +++ /dev/null @@ -1 +0,0 @@ -author: rochacbruno diff --git a/ABOUT_THIS_TEMPLATE.md b/ABOUT_THIS_TEMPLATE.md index b5db2cc..15ad690 100644 --- a/ABOUT_THIS_TEMPLATE.md +++ b/ABOUT_THIS_TEMPLATE.md @@ -32,7 +32,7 @@ Lets take a look at the structure of this template: ├── Makefile # A collection of utilities to manage the project ├── MANIFEST.in # A list of files to include in a package ├── mkdocs.yml # Configuration for documentation site -├── project_name # The main python package for the project +├── python # The main python package for the project │   ├── base.py # The base module for the project │   ├── __init__.py # This tells Python that this is a package │   ├── __main__.py # The entry point for the project @@ -109,7 +109,7 @@ I had to do some tricks to read that version variable inside the setuptools I decided to keep the version in a static file because it is easier to read from wherever I want without the need to install the package. -e.g: `cat project_name/VERSION` will get the project version without harming +e.g: `cat python/VERSION` will get the project version without harming with module imports or anything else, it is useful for CI, logs and debugging. ### Why to include `tests`, `history` and `Containerfile` as part of the release? diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0d0dd72..f0e9e07 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # How to develop on this project -project_name welcomes contributions from the community. +python welcomes contributions from the community. **You need PYTHON3!** @@ -8,9 +8,9 @@ This instructions are for linux base systems. (Linux, MacOS, BSD, etc.) ## Setting up your own fork of this repo. - On github interface click on `Fork` button. -- Clone your fork of this repo. `git clone git@github.com:YOUR_GIT_USERNAME/project_urlname.git` -- Enter the directory `cd project_urlname` -- Add upstream repo `git remote add upstream https://github.com/author_name/project_urlname` +- Clone your fork of this repo. `git clone git@github.com:YOUR_GIT_USERNAME/Python.git` +- Enter the directory `cd Python` +- Add upstream repo `git remote add upstream https://github.com/Templates/Python` ## Setting up your own virtual environment diff --git a/Containerfile b/Containerfile index 83bb605..3f20213 100644 --- a/Containerfile +++ b/Containerfile @@ -2,4 +2,4 @@ FROM python:3.7-slim COPY . /app WORKDIR /app RUN pip install . -CMD ["project_name"] +CMD ["python"] diff --git a/MANIFEST.in b/MANIFEST.in index ef198d6..35eed1c 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,4 +2,4 @@ include LICENSE include HISTORY.md include Containerfile graft tests -graft project_name +graft python diff --git a/Makefile b/Makefile index 6e2897e..e45b3d0 100644 --- a/Makefile +++ b/Makefile @@ -26,20 +26,20 @@ install: ## Install the project in dev mode. .PHONY: fmt fmt: ## Format code using black & isort. - $(ENV_PREFIX)isort project_name/ - $(ENV_PREFIX)black -l 79 project_name/ + $(ENV_PREFIX)isort python/ + $(ENV_PREFIX)black -l 79 python/ $(ENV_PREFIX)black -l 79 tests/ .PHONY: lint lint: ## Run pep8, black, mypy linters. - $(ENV_PREFIX)flake8 project_name/ - $(ENV_PREFIX)black -l 79 --check project_name/ + $(ENV_PREFIX)flake8 python/ + $(ENV_PREFIX)black -l 79 --check python/ $(ENV_PREFIX)black -l 79 --check tests/ - $(ENV_PREFIX)mypy --ignore-missing-imports project_name/ + $(ENV_PREFIX)mypy --ignore-missing-imports python/ .PHONY: test test: lint ## Run tests and generate coverage report. - $(ENV_PREFIX)pytest -v --cov-config .coveragerc --cov=project_name -l --tb=short --maxfail=1 tests/ + $(ENV_PREFIX)pytest -v --cov-config .coveragerc --cov=python -l --tb=short --maxfail=1 tests/ $(ENV_PREFIX)coverage xml $(ENV_PREFIX)coverage html @@ -78,9 +78,9 @@ virtualenv: ## Create a virtual environment. release: ## Create a new tag for release. @echo "WARNING: This operation will create s version tag and push to github" @read -p "Version? (provide the next x.y.z semver) : " TAG - @echo "$${TAG}" > project_name/VERSION + @echo "$${TAG}" > python/VERSION @$(ENV_PREFIX)gitchangelog > HISTORY.md - @git add project_name/VERSION HISTORY.md + @git add python/VERSION HISTORY.md @git commit -m "release: version $${TAG} 🚀" @echo "creating git tag : $${TAG}" @git tag $${TAG} @@ -101,7 +101,7 @@ switch-to-poetry: ## Switch to poetry package manager. @poetry init --no-interaction --name=a_flask_test --author=rochacbruno @echo "" >> pyproject.toml @echo "[tool.poetry.scripts]" >> pyproject.toml - @echo "project_name = 'project_name.__main__:main'" >> pyproject.toml + @echo "python = 'python.__main__:main'" >> pyproject.toml @cat requirements.txt | while read in; do poetry add --no-interaction "$${in}"; done @cat requirements-test.txt | while read in; do poetry add --no-interaction "$${in}" --dev; done @poetry install --no-interaction @@ -109,7 +109,7 @@ switch-to-poetry: ## Switch to poetry package manager. @mv requirements* .gitea/backup @mv setup.py .gitea/backup @echo "You have switched to https://python-poetry.org/ package manager." - @echo "Please run 'poetry shell' or 'poetry run project_name'" + @echo "Please run 'poetry shell' or 'poetry run python'" .PHONY: init init: ## Initialize the project based on an application template. diff --git a/README.md b/README.md index 27ed1b0..9d781ce 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ See also 1. Choose a name for your project (e.g. `my_awesome_project` recommendation is to use all lowercase and underscores separation for repo names.) -2. Replace all text instances of "project_name" in this repo with your new name +2. Replace all text instances of "python" in this repo with your new name 3. If you want Automatic Release to [PyPI](https://pypi.org) On the new repository `settings->secrets` add your `PYPI_API_TOKEN` (get the tokens on PyPI website) 4. Read the file [CONTRIBUTING.md](CONTRIBUTING.md) @@ -35,7 +35,7 @@ See also - 🧪 Testing structure using [pytest](https://docs.pytest.org/en/latest/) - ✅ Code linting using [flake8](https://flake8.pycqa.org/en/latest/) - 🛳️ Automatic release to [PyPI](https://pypi.org) using [twine](https://twine.readthedocs.io/en/latest/) and github actions. -- 🎯 Entry points to execute your program using `python -m ` or `$ project_name` with basic CLI argument parsing. +- 🎯 Entry points to execute your program using `python -m ` or `$ python` with basic CLI argument parsing. - 🔄 Continuous integration using [Github Actions](.gitea/workflows/) with jobs to lint, test and release your project on Linux, Mac and Windows environments. > Curious about architectural decisions on this template? read [ABOUT_THIS_TEMPLATE.md](ABOUT_THIS_TEMPLATE.md) @@ -46,30 +46,30 @@ See also --- -# project_name +# python -project_description +Awesome python created by Templates ## Install it from PyPI ```bash -pip install project_name +pip install python ``` ## Usage ```py -from project_name import BaseClass -from project_name import base_function +from python import BaseClass +from python import base_function BaseClass().base_method() base_function() ``` ```bash -$ python -m project_name +$ python -m python #or -$ project_name +$ python ``` ## Development diff --git a/mkdocs.yml b/mkdocs.yml index 33a69ca..b1371ed 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,2 +1,2 @@ -site_name: project_name +site_name: python theme: readthedocs diff --git a/project_name/__main__.py b/project_name/__main__.py deleted file mode 100644 index 2ba8b18..0000000 --- a/project_name/__main__.py +++ /dev/null @@ -1,6 +0,0 @@ -"""Entry point for project_name.""" - -from project_name.cli import main # pragma: no cover - -if __name__ == "__main__": # pragma: no cover - main() diff --git a/project_name/VERSION b/python/VERSION similarity index 100% rename from project_name/VERSION rename to python/VERSION diff --git a/project_name/__init__.py b/python/__init__.py similarity index 100% rename from project_name/__init__.py rename to python/__init__.py diff --git a/python/__main__.py b/python/__main__.py new file mode 100644 index 0000000..0507c95 --- /dev/null +++ b/python/__main__.py @@ -0,0 +1,6 @@ +"""Entry point for python.""" + +from python.cli import main # pragma: no cover + +if __name__ == "__main__": # pragma: no cover + main() diff --git a/project_name/base.py b/python/base.py similarity index 68% rename from project_name/base.py rename to python/base.py index ac590b9..c2f8410 100644 --- a/project_name/base.py +++ b/python/base.py @@ -1,7 +1,7 @@ """ -project_name base module. +python base module. -This is the principal module of the project_name project. +This is the principal module of the python project. here you put your main classes and objects. Be creative! do whatever you want! @@ -14,4 +14,4 @@ and then choose `flask` as template. """ # example constant variable -NAME = "project_name" +NAME = "python" diff --git a/project_name/cli.py b/python/cli.py similarity index 87% rename from project_name/cli.py rename to python/cli.py index 66e9ca1..32b5b5e 100644 --- a/project_name/cli.py +++ b/python/cli.py @@ -1,4 +1,4 @@ -"""CLI interface for project_name project. +"""CLI interface for python project. Be creative! do whatever you want! @@ -12,7 +12,7 @@ Be creative! do whatever you want! def main(): # pragma: no cover """ The main function executes on commands: - `python -m project_name` and `$ project_name `. + `python -m python` and `$ python `. This is your program's entry point. diff --git a/setup.py b/setup.py index 6d0388b..809cb02 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -"""Python setup.py for project_name package""" +"""Python setup.py for python package""" import io import os from setuptools import find_packages, setup @@ -6,7 +6,7 @@ from setuptools import find_packages, setup def read(*paths, **kwargs): """Read the contents of a text file safely. - >>> read("project_name", "VERSION") + >>> read("python", "VERSION") '0.1.0' >>> read("README.md") ... @@ -30,17 +30,17 @@ def read_requirements(path): setup( - name="project_name", - version=read("project_name", "VERSION"), - description="project_description", - url="https://git.disi.dev/author_name/project_urlname/", + name="python", + version=read("python", "VERSION"), + description="Awesome python created by Templates", + url="https://git.disi.dev/Templates/Python/", long_description=read("README.md"), long_description_content_type="text/markdown", - author="author_name", + author="Templates", packages=find_packages(exclude=["tests", ".gitea"]), install_requires=read_requirements("requirements.txt"), entry_points={ - "console_scripts": ["project_name = project_name.__main__:main"] + "console_scripts": ["python = python.__main__:main"] }, extras_require={"test": read_requirements("requirements-test.txt")}, ) diff --git a/tests/test_base.py b/tests/test_base.py index f1b765f..58b2aa4 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -1,5 +1,5 @@ -from project_name.base import NAME +from python.base import NAME def test_base(): - assert NAME == "project_name" + assert NAME == "python"