Skip to content

Commit 86141c2

Browse files
committed
📝 Revamp README for better clarity and expanded features
Completely restructured the README to improve clarity and detail the features of the modern Python project template. Updated sections include an enhanced features list, instructions on getting started, creating a new project, and contributing guidelines. Added a badge for encouraging pull requests and incorporated new structured headers for better readability.
1 parent 7cea19a commit 86141c2

File tree

1 file changed

+58
-47
lines changed

1 file changed

+58
-47
lines changed

README.md

Lines changed: 58 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,85 @@
1-
# my python copier template
1+
# Modern Python Project Template
22

33
[![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-black.json)](https://github.com/copier-org/copier)
44
[![Tests](https://github.com/tsvikas/python-template/actions/workflows/uv-tests.yml/badge.svg)](https://github.com/tsvikas/python-template/actions/workflows/uv-tests.yml)
5+
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
56

6-
## features
7+
A modern Python project template using recommended development tools and best practices.
78

8-
This is a modern python project template, aiming to use modern and recommended tools for developments.
9+
## Features
910

10-
Partial list of included tools:
11+
This template provides a comprehensive set of tools to streamline your Python development workflow:
1112

12-
### code:
13+
### Code Structure
14+
- Command-line interface with [Typer](https://typer.tiangolo.com/)
15+
- Advanced logging with [Loguru](https://loguru.readthedocs.io/)
16+
- Modern project layout following best practices
1317

14-
- cli with [typer](https://typer.tiangolo.com/)
15-
- logging with [loguru](https://loguru.readthedocs.io/)
18+
### Development Tools
19+
- Python dependency management with [uv](https://docs.astral.sh/uv/) (faster alternative to pip/poetry)
20+
- Versioning management with [uv-dynamic-versioning](https://github.com/ninoseki/uv-dynamic-versioning)
21+
- Task automation with [Just](https://just.systems/man/en/) command runner
1622

17-
### dev tools:
23+
### Code Quality
24+
- Testing framework with [pytest](https://docs.pytest.org/)
25+
- Coverage reports via [pytest-coverage](https://pytest-cov.readthedocs.io/)
26+
- Performance benchmarking with [pytest-benchmark](https://pytest-benchmark.readthedocs.io/)
27+
- Additional pytest plugins for a better testing experience
28+
- Code formatting with [Black](https://black.readthedocs.io/) or [Ruff formatter](https://docs.astral.sh/ruff/formatter/)
29+
- Comprehensive linting with [Ruff](https://docs.astral.sh/ruff/)
30+
- Static type checking with [MyPy](https://mypy-lang.org/)
1831

19-
- python dependency management with [uv](https://docs.astral.sh/uv/)
20-
- versioning with
21-
[uv-dynamic-versioning](https://github.com/ninoseki/uv-dynamic-versioning)
22-
- task runner [just](https://just.systems/man/en/)
32+
### CI/CD Integration
33+
- Git hooks via [pre-commit](https://pre-commit.com/) with many hooks pre-configured
34+
- Ready-to-use [GitHub workflows](https://docs.github.com/en/actions/writing-workflows)
2335

24-
### code quality tools:
36+
### Configuration Files
37+
- [EditorConfig](https://editorconfig.org/) for consistent formatting across editors
38+
- Comprehensive [.gitignore](https://gitignore.io/) file
39+
- Sensible defaults for all included tools
2540

26-
- testing with [pytest](https://docs.pytest.org/),
27-
[pytest-coverage](https://pytest-cov.readthedocs.io/),
28-
[pytest-benchmark](https://pytest-benchmark.readthedocs.io/),
29-
and more
30-
- formatting with [black](https://black.readthedocs.io/)
31-
or [ruff-format](https://docs.astral.sh/ruff/formatter/)
32-
- linting with [ruff](https://docs.astral.sh/ruff/)
33-
- type checking with [mypy](https://mypy-lang.org/)
41+
### Documentation (Coming Soon)
42+
- Documentation generation
43+
- Automatic API documentation
3444

35-
### ci tools:
45+
## Getting Started
3646

37-
- [pre-commit](https://pre-commit.com/)
38-
with many hooks pre-configured
39-
- [github workflows](https://docs.github.com/en/actions/writing-workflows)
47+
### Prerequisites
4048

41-
### other pre-set config files:
49+
- To copy from this template, you need [Copier](https://copier.readthedocs.io/) with the [copier_templates_extensions](https://github.com/copier-org/copier-templates-extensions) package
50+
```bash
51+
uv tool install copier --with copier_templates_extensions
52+
```
4253

43-
- [EditorConfig](https://editorconfig.org/)
44-
- [gitignore](https://gitignore.io/)
54+
- After the template is used, Only [uv](https://docs.astral.sh/uv/getting-started/installation/) is required to begin development
4555

46-
### documentation generation:
56+
- All the other tools are installed and managed automatically by uv using python's [dependency-groups](https://packaging.python.org/en/latest/specifications/dependency-groups/).
57+
uv make sure that the versions are the same for all development environments.
4758

48-
WIP
59+
- Out of those tools, manually installing [just](https://just.systems/man/en/packages.html),
60+
is convenient, as it allows you to run `just <taskname>` instead of `uv run just <taskname>`
4961

50-
## Usage
62+
### Creating a New Project
5163

52-
### Requirements
64+
Generate a new project with:
5365

54-
- To create a project from the template, you need [copier](https://copier.readthedocs.io/),
55-
with [copier_templates_extensions](https://github.com/copier-org/copier-templates-extensions).
56-
To install: `uv tool install copier --with copier_templates_extensions`
66+
```bash
67+
copier copy gh:tsvikas/python-template ~/path/to/project/directory/
68+
```
5769

58-
- The development requirements for the created project is only
59-
[uv](https://docs.astral.sh/uv/getting-started/installation/).
70+
Follow the interactive questionnaire to customize your project.
6071

61-
- Other dev-tools can be installed too, but on default they are easily managed by uv using
62-
python's [dependency-groups](https://packaging.python.org/en/latest/specifications/dependency-groups/).
63-
It is convenient to install [just](https://just.systems/man/en/packages.html),
64-
as it allows you to run `just <taskname>` instead of `uv run just <taskname>`
72+
### Developing Your Project
6573

66-
### Create a new project from the template:
74+
After creating your project, run those commands from the project directory:
6775

68-
Run
69-
`copier copy gh:tsvikas/python-template ~/path/to/project/directory/`
70-
and answer the questionnaire.
76+
- Run the test suite: `just test`
77+
- Run linting and formatting: `just lint` and `just format`
7178

72-
### Developing your project
79+
See the generated `justfile` for all available commands.
7380

74-
WIP
81+
## Contributing
82+
83+
I am exicited to see this template being used.
84+
Feel free to suggest improvements or tell me about issues.
85+
Contributions and Pull Requests are welcome!

0 commit comments

Comments
 (0)