copyme
A simple template for python development. Use this repository as a template for developing a python library or package.
[!NOTE] Check out the documentation website
Templates
When copying files from this repo, remember that they are templates. So:
- look for
[CHANGE THIS]for mandatory modifications; - look for
[CHECK THIS]for possible modifications; - look for
[EXAMPLE]for simple examples (comment or uncomment it if needed); - look for
[ADD MORE IF NEDDED]for possible extra features; - placeholders are designated by curly braces:
{replace-this}.
Configuration files
This repository relies on several configuration files that are essential for the proper functioning of the template. Each file has a specific role, and some of them work together, so they should be edited thoughtfully. Below is an overview of the main configuration files and what you should know about them.
| File | Purpose | Key Notes |
|---|---|---|
pyproject.toml |
Project configuration | Manages dependencies, build system, and project settings. Update when adding dependencies or changing project structure. |
.gitignore |
Git ignore rules | Specifies files/folders Git should ignore (e.g., temp files, datasets, build outputs). Keeps repo clean. |
.github/workflows/style.yaml |
Style CI configuration | Runs code style checks using Black. Depends on pyproject.toml dev dependencies. |
docs/conf.py |
Docs configuration | Configures Sphinx for building documentation. Update if project structure changes. |
.github/workflows/docs.yaml |
Docs CI configuration | Automates online docs build. Relies on pyproject.toml and docs/conf.py. Requires extra steps (see file). |
.github/workflows/dist.yaml |
PyPI CD configuration | Automates package distribution on the official PyPI website. |
tests/conftest.py |
Testing configuration | Provides shared fixtures and settings for tests. Can be customized to fit project needs. |
.github/workflows/tests.yaml |
Testing CI configuration | Runs automated unit tests on CI. Ensures code correctness after changes. |
[!NOTE]
All config files are commented with recommended actions and extra steps.
[!WARNING]
Online documentation build may require additional setup — check.github/workflows/docs.yml.
[!IMPORTANT]
Continous Integration (CI) setup allows for check-ups for commits and not allowing bad code to be pushed to the main branch. So Style, Docs and Tests must always pass.
Repo layout
A standard python repo may use the following layout.
This layout is known as src layout, since it stores the source code under a src/{repo} folder.
See more on flat vs src layout
{repository}/
│
├── LICENSE
├── README.md # [CHECK THIS] this file (landing page)
├── .gitignore # [CHECK THIS] configuration of git vcs ignoring system
├── pyproject.toml # [CHECK THIS] configuration of python project
├── MANIFEST.in # [CHECK THIS] configuration of source distribution
|
├── .github/ # github folder
│ └── workflows/ # folder for continuous integration services
│ ├── style.py # [CHECK THIS] configuration file for style check workflow
│ ├── tests.py # [CHECK THIS] configuration file for tests workflow
│ └── docs.yml # [CHECK THIS] configuration file for docs build workflow
│
├── dev/ # development folder
│ ├── checkout.py # checkout script
│ ├── docs.py # build docs script
│ ├── style.py # style script
│ ├── tests.py # testing script
│ └── templates-ci/ # templates for CI
│
├── docs/ # documentation folder
│ ├── about.rst # info about the repo
│ ├── api.rst # api reference using sphinx autodoc
│ ├── conf.py # [CHECK THIS] configuration file for sphinx
│ ├── dummy.md # markdown docs also works
│ ├── index.rst # home page for documentation
│ ├── usage.rst # instructions for using this repo
│ ├── make.bat # (optional) [generated] sphinx auxiliar file
│ ├── Makefile # (optional) [generated] sphinx auxiliar file
│ ├── figs/ # figs-only files
│ ├── data/ # docs-only data
│ ├── generated/ # [generated] sphinx created files
│ ├── _templates/ # [ignored] [generated] sphinx created stuff
│ ├── _static/ # [generated] sphinx created stuff
│ └── _build/ # [ignored] [generated] sphinx build
│
├── src/ # source code folder
│ ├── {repository}.egg-info # [ignored] [generated] files for local development
│ └── {repository}/ # [CHANGE THIS] source code root
│ ├── __init__.py # template init file
│ ├── module.py # template module
│ ├── ... # develop your modules
│ ├── mypackage/ # template package
│ │ └── submodule.py
│ └── data/ # run-time data
│
├── examples/ # (optional) learning resources
│ ├── examples_01.ipynb
│ └── examples_02.ipynb
│
└── tests/ # testing code folder
├── conftest.py # [CHECK THIS] configuration file of tests
├──unit/ # unit tests package
│ └── test_module.py # template module for unit tests
├── bcmk/ # benchmarking tests package
│ └── test_bcmk.py # template module for benchmarking tests
├── data/ # test-only data
│ ├── test_data.csv
│ ├── datasets.csv # table of remote datasets
│ └── dataset1/ # [ignored] subfolders in data
└── outputs/ # [ignored] tests outputs
Release files for copyme 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| copyme-0.2.2.tar.gz | 59.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| copyme-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 79.1 kB
Release files / copyme-0.2.2.tar.gz
| Download URL | copyme-0.2.2.tar.gz |
|---|---|
| Size | 59.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b15587638fac57e764cee082578d51cacada739606f983c02125ca1f138300bf
|
|
BLAKE2b-256 checksum How to use checksums |
bf5953d2147d28742a4df9cbbc9568a9eab4923487aa107de92f9794fe0d68e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / copyme-0.2.2-py3-none-any.whl
| Download URL | copyme-0.2.2-py3-none-any.whl |
|---|---|
| Size | 20.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
80e66962bc0aa68d3b55e676bdae7c7a071c95fba28b6cb49eafc4e6924d615f
|
|
BLAKE2b-256 checksum How to use checksums |
1f545cd6facd213ac3af9233fb04dd0bd457a0321df620212420ced58ada11e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|