-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4 from axioma-ai-labs/3-enhance-readme
Add information about repository to readme
- Loading branch information
Showing
1 changed file
with
87 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,87 @@ | ||
# python-template | ||
Template for python repositories. | ||
# Template for python repositories. | ||
|
||
## Table of Contents | ||
|
||
- [Overview](#overview) | ||
- [Features](#features) | ||
- [Development](#development) | ||
|
||
## Overview | ||
|
||
This project is a template for Python repositories. It includes a Makefile with commands for | ||
formatting, linting, and installing dependencies. It also includes a pre-configured Github Actions | ||
workflow for CI/CD. | ||
|
||
## Features | ||
|
||
### 1. Pyenv and Pipenv | ||
|
||
The project uses Pyenv for managing Python versions and Pipenv for managing dependencies. Find more | ||
details in the [Development](#development) section. | ||
|
||
### 2. Pydantic | ||
|
||
The project uses `Pydantic` for data validation and settings management. | ||
|
||
### 3. Ruff, Isort, Mypy | ||
|
||
The project uses `Ruff` for formatting, `Isort` for sorting imports, and `Mypy` for static typing. | ||
Recommended to use with `Makefile` commands. For more information look at the | ||
[Makefile](./Makefile). | ||
|
||
### 4. Github Actions | ||
|
||
The project uses Github Actions for CI/CD. Look at the [.github/workflows](.github/workflows) for | ||
more information. The package includes the linting workflow per default. | ||
|
||
### 5. Makefile | ||
|
||
The project uses Makefile for automating tasks. Look at the [Makefile](./Makefile) for more | ||
information. | ||
|
||
The provided Makefile includes the following commands: | ||
|
||
``` | ||
make deps # Install dependencies | ||
make format # Format code | ||
make lint # Lint code | ||
``` | ||
|
||
## Development | ||
|
||
### 1. Pyenv and Pipenv | ||
|
||
#### Overview | ||
|
||
You will need to have Python 3.12 and pipenv installed. The next step is to checkout the repository | ||
and install the Python dependencies. Then, you will be able to utilize the CLI and run the tests. | ||
The following assumes a Debian/Ubuntu machine; your mileage may vary. | ||
|
||
#### Prerequisites | ||
|
||
You can use pyenv for getting a specific python version. Once you have pyenv installed, you can | ||
install a specific python version: | ||
|
||
``` | ||
pyenv install 3.12 | ||
``` | ||
|
||
Install pipenv: | ||
|
||
``` | ||
pip install --user pipenv | ||
``` | ||
|
||
#### Install Dependencies | ||
|
||
You can use the provided Makefile files to install the dependencies. | ||
|
||
``` | ||
make deps | ||
``` | ||
|
||
Alternatively, you can install the dependencies manually: | ||
|
||
``` | ||
pipenv install --dev | ||
``` |