Lets take a look at the structure of this template:
βββ Containerfile # The file to build a container using buildah or docker
βββ CONTRIBUTING.md # Onboarding instructions for new contributors
βββ docs # Documentation site (add more .md files here)
βΒ Β βββ index.md # The index page for the docs site
βββ .github # Github metadata for repository
βΒ Β βββ release_message.sh # A script to generate a release message
βΒ Β βββ workflows # The CI pipeline for Github Actions
βββ .gitignore # A list of files to ignore when pushing to Github
βββ HISTORY.md # Auto generated list of changes to the project
βββ LICENSE # The license for the project
βββ 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
βββ scdataloader # 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
βΒ Β βββ VERSION # The version for the project is kept in a static file
βββ README.md # The main readme for the project
βββ setup.py # The setup.py file for installing and packaging the project
βββ requirements.txt # An empty file to hold the requirements for the project
βββ requirements-test.txt # List of requirements for testing and devlopment
βββ setup.py # The setup.py file for installing and packaging the project
βββ tests # Unit tests for the project (add mote tests files here)
βββ conftest.py # Configuration, hooks and fixtures for pytest
βββ __init__.py # This tells Python that this is a test package
βββ test_base.py # The base test case for the project
All the utilities for the template and project are on the Makefile
β― make
Usage: make <target>
Targets:
help: ## Show the help.
install: ## Install the project in dev mode.
fmt: ## Format code using black & isort.
lint: ## Run pep8, black, mypy linters.
test: lint ## Run tests and generate coverage report.
watch: ## Run tests on every change.
clean: ## Clean unused files.
virtualenv: ## Create a virtual environment.
release: ## Create a new tag for release.
docs: ## Build the documentation.
switch-to-poetry: ## Switch to poetry package manager.
init: ## Initialize the project based on an application template.