generated from Templates/Python
✅ Ready to clone and code.
This commit is contained in:
parent
e0913490c3
commit
a01f457da3
@ -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="Projects"
|
||||
original_name="python_test_project"
|
||||
original_urlname="python_test_project"
|
||||
original_description="Awesome python_test_project created by Projects"
|
||||
# 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_test_project $name
|
||||
|
||||
# This command runs only once on GHA!
|
||||
rm -rf .gitea/template.yml
|
||||
|
@ -1 +0,0 @@
|
||||
author: rochacbruno
|
@ -23,4 +23,4 @@ jobs:
|
||||
SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST }}
|
||||
with:
|
||||
args: >
|
||||
-Dsonar.projectKey=project_name
|
||||
-Dsonar.projectKey=python_test_project
|
@ -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_test_project # 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
|
||||
@ -106,7 +106,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_test_project/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?
|
||||
|
@ -1,6 +1,6 @@
|
||||
# How to develop on this project
|
||||
|
||||
project_name welcomes contributions from the community.
|
||||
python_test_project 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 gitea interface click on `Fork` button.
|
||||
- Clone your fork of this repo. `git clone git@git.disi.dev:YOUR_GIT_USERNAME/project_urlname.git`
|
||||
- Enter the directory `cd project_urlname`
|
||||
- Add upstream repo `git remote add upstream https://git.disi.dev/author_name/project_urlname`
|
||||
- Clone your fork of this repo. `git clone git@git.disi.dev:YOUR_GIT_USERNAME/python_test_project.git`
|
||||
- Enter the directory `cd python_test_project`
|
||||
- Add upstream repo `git remote add upstream https://git.disi.dev/Projects/python_test_project`
|
||||
|
||||
## Setting up your own virtual environment
|
||||
|
||||
|
@ -2,4 +2,4 @@ FROM python:3.7-slim
|
||||
COPY . /app
|
||||
WORKDIR /app
|
||||
RUN pip install .
|
||||
CMD ["project_name"]
|
||||
CMD ["python_test_project"]
|
||||
|
@ -2,4 +2,4 @@ include LICENSE
|
||||
include HISTORY.md
|
||||
include Containerfile
|
||||
graft tests
|
||||
graft project_name
|
||||
graft python_test_project
|
||||
|
20
Makefile
20
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_test_project/
|
||||
$(ENV_PREFIX)black -l 79 python_test_project/
|
||||
$(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_test_project/
|
||||
$(ENV_PREFIX)black -l 79 --check python_test_project/
|
||||
$(ENV_PREFIX)black -l 79 --check tests/
|
||||
$(ENV_PREFIX)mypy --ignore-missing-imports project_name/
|
||||
$(ENV_PREFIX)mypy --ignore-missing-imports python_test_project/
|
||||
|
||||
.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_test_project -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 a version tag and push to gitea"
|
||||
@read -p "Version? (provide the next x.y.z semver) : " TAG
|
||||
@echo "$${TAG}" > project_name/VERSION
|
||||
@echo "$${TAG}" > python_test_project/VERSION
|
||||
@$(ENV_PREFIX)gitchangelog > HISTORY.md
|
||||
@git add project_name/VERSION HISTORY.md
|
||||
@git add python_test_project/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_test_project = 'python_test_project.__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_test_project'"
|
||||
|
||||
.PHONY: init
|
||||
init: ## Initialize the project based on an application template.
|
||||
|
12
README.md
12
README.md
@ -1,21 +1,21 @@
|
||||
# project_name
|
||||
# python_test_project
|
||||
|
||||
project_description
|
||||
Awesome python_test_project created by Projects
|
||||
|
||||
## Usage
|
||||
|
||||
```py
|
||||
from project_name import BaseClass
|
||||
from project_name import base_function
|
||||
from python_test_project import BaseClass
|
||||
from python_test_project import base_function
|
||||
|
||||
BaseClass().base_method()
|
||||
base_function()
|
||||
```
|
||||
|
||||
```bash
|
||||
$ python -m project_name
|
||||
$ python -m python_test_project
|
||||
#or
|
||||
$ project_name
|
||||
$ python_test_project
|
||||
```
|
||||
|
||||
## Development
|
||||
|
@ -1,2 +1,2 @@
|
||||
site_name: project_name
|
||||
site_name: python_test_project
|
||||
theme: readthedocs
|
||||
|
@ -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()
|
6
python_test_project/__main__.py
Normal file
6
python_test_project/__main__.py
Normal file
@ -0,0 +1,6 @@
|
||||
"""Entry point for python_test_project."""
|
||||
|
||||
from python_test_project.cli import main # pragma: no cover
|
||||
|
||||
if __name__ == "__main__": # pragma: no cover
|
||||
main()
|
@ -1,7 +1,7 @@
|
||||
"""
|
||||
project_name base module.
|
||||
python_test_project base module.
|
||||
|
||||
This is the principal module of the project_name project.
|
||||
This is the principal module of the python_test_project 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_test_project"
|
@ -1,4 +1,4 @@
|
||||
"""CLI interface for project_name project.
|
||||
"""CLI interface for python_test_project 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_test_project` and `$ python_test_project `.
|
||||
|
||||
This is your program's entry point.
|
||||
|
16
setup.py
16
setup.py
@ -1,4 +1,4 @@
|
||||
"""Python setup.py for project_name package"""
|
||||
"""Python setup.py for python_test_project 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_test_project", "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_test_project",
|
||||
version=read("python_test_project", "VERSION"),
|
||||
description="Awesome python_test_project created by Projects",
|
||||
url="https://git.disi.dev/Projects/python_test_project/",
|
||||
long_description=read("README.md"),
|
||||
long_description_content_type="text/markdown",
|
||||
author="author_name",
|
||||
author="Projects",
|
||||
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_test_project = python_test_project.__main__:main"]
|
||||
},
|
||||
extras_require={"test": read_requirements("requirements-test.txt")},
|
||||
)
|
||||
|
@ -1,5 +1,5 @@
|
||||
from project_name.base import NAME
|
||||
from python_test_project.base import NAME
|
||||
|
||||
|
||||
def test_base():
|
||||
assert NAME == "project_name"
|
||||
assert NAME == "python_test_project"
|
||||
|
Loading…
Reference in New Issue
Block a user