-
[] seleniumbase
We don't need a lot of libraries. We just need the best ones.
- IPython - A rich toolkit to help you make the most out of using Python interactively.
- poetry - A tool to create isolated Python environments and manage poetry project
- PyCharm - Commercial Python IDE based on the IntelliJ platform by JetBrains. Free community edition available.
- scikit-learn - Simple and efficient tools for data mining and data analysis.
- TensorFlow - Low-level (configurations over conventions) library for building deep learning data flow graphs.
- caffe - Deep learning framework made with expression, speed, and modularity in mind.
- pytesseract - A wrapper for Google Tesseract OCR.
- jieba - Chinese Words Segmentation Utilities.
- requests - Python HTTP requests for humans.
- Scrapy - A fast high-level screen scraping and web crawling framework.
- newspaper - News extraction, article extraction and content curation in Python.
- scipy - An open-source software for mathematics, science, and engineering. statistics, optimization, integration, linear algebra, Fourier transforms, signal and image processing, ODE solvers, and more.
- nltk - A suite of libraries and programs for symbolic and statistical natural language processing.
- mistune - The fastest markdown parser in pure Python with renderer features, inspired by marked.
- pandas - A software library for data manipulation and analysis. In particular, it offers data structures and operations for manipulating numerical tables and time series.
- Django - The most popular full featured web framework in Python.
- djangopackages - Excellent 3rd party django package collections.
Label | Title in Releases |
---|---|
enhancement , feature |
π Features |
bug , refactoring , bugfix , fix |
π§ Fixes & Refactoring |
build , ci , testing |
π¦ Build System & CI/CD |
breaking |
π₯ Breaking Changes |
documentation |
π Documentation |
dependencies |
β¬οΈ Dependencies updates |
[Makefile
](https://github.com/{{ cookiecutter.github_name }}/{{ cookiecutter.project_name }}/blob/master/Makefile) contains a lot of functions for faster development.
1. Download and remove Poetry
To download and install Poetry run:
make poetry-download
To uninstall
make poetry-remove
2. Install all dependencies and pre-commit hooks
Install requirements:
make install
Pre-commit hooks coulb be installed after git init
via
make pre-commit-install
3. Codestyle
Automatic formatting uses pyupgrade
, isort
and black
.
make codestyle
# or use synonym
make formatting
Codestyle checks only, without rewriting files:
make check-codestyle
Note:
check-codestyle
usesisort
,black
anddarglint
library
Update all dev libraries to the latest version using one comand
make update-dev-deps
4. Code security
make check-safety
This command launches Poetry
integrity checks as well as identifies security issues with Safety
and Bandit
.
make check-safety
5. Type checks
Run mypy
static type checker
make mypy
6. Tests with coverage badges
Run pytest
make test
7. All linters
Of course there is a command to rule run all linters in one:
make lint
the same as:
make test && make check-codestyle && make mypy && make check-safety
8. Docker
make docker-build
which is equivalent to:
make docker-build VERSION=latest
Remove docker image with
make docker-remove
More information [about docker](https://github.com/{{ cookiecutter.github_name }}/{{ cookiecutter.project_name }}/tree/master/docker).
9. Cleanup
Delete pycache files
make pycache-remove
Remove package build
make build-remove
Delete .DS_STORE files
make dsstore-remove
Remove .mypycache
make mypycache-remove
Or to remove all above run:
make cleanup
Typer
is great for creating CLI applications.Rich
makes it easy to add beautiful formatting in the terminal.Pydantic
β data validation and settings management using Python type hinting.Loguru
makes logging (stupidly) simple.tqdm
β fast, extensible progress bar for Python and CLI.IceCream
is a little library for sweet and creamy debugging.orjson
β ultra fast JSON parsing library.Returns
makes you function's output meaningful, typed, and safe!Hydra
is a framework for elegantly configuring complex applications.FastAPI
is a type-driven asynchronous web framework.
Todo App is a hobby project that is primarily focused around being a playground for experimenting with different technologies.
This repository uses SOPS with age for managing secrets.
See Configuration and Secrets Management for details.
- Centrifugo
- URL: http://centrifugo.todo-app.com
- password:
S3c_r3t!
- Grafana
- URL: http://grafana.todo-app.com
- username:
admin
- password:
S3c_r3t!
- Loki
- Promtail
- MinIO
- URL: http://minio.todo-app.com
- username:
console
- password:
S3c_r3t!
- Keycloak
- URL: http://auth.todo-app.com
- username:
admin
- password:
S3c_r3t!
- Add the following entries to your
/etc/hosts
file:
127.0.0.1 todo-app.com
127.0.0.1 auth.todo-app.com
127.0.0.1 centrifugo.todo-app.com
127.0.0.1 temporal.todo-app.com
127.0.0.1 grafana.todo-app.com
127.0.0.1 minio.todo-app.com
-
Make sure you have the unencrypted secrets in the
env
directory. See Configuration and Secrets Management for details. -
Run Docker Compose
> docker compose up --build -d
-
Import the Keycloak realm. See Configuring Keycloak for details.
-
Open the App in browser: http://todo-app.com
- Normal user:
- username:
demouser
- password:
S3c_r3t!
- username:
- Viewer (read-only) user:
- username:
demoviewer
- password:
S3c_r3t!
- username:
- Normal user:
The app uses JSON Schema for message validation. See json-schema-generator for details.
We don't need a lot of libraries. We just need the best ones.
- IPython - A rich toolkit to help you make the most out of using Python interactively.
- poetry - A tool to create isolated Python environments and manage poetry project
- PyCharm - Commercial Python IDE based on the IntelliJ platform by JetBrains. Free community edition available.
- scikit-learn - Simple and efficient tools for data mining and data analysis.
- TensorFlow - Low-level (configurations over conventions) library for building deep learning data flow graphs.
- caffe - Deep learning framework made with expression, speed, and modularity in mind.
- pytesseract - A wrapper for Google Tesseract OCR.
- jieba - Chinese Words Segmentation Utilities.
- requests - Python HTTP requests for humans.
- Scrapy - A fast high-level screen scraping and web crawling framework.
- newspaper - News extraction, article extraction and content curation in Python.
- scipy - An open-source software for mathematics, science, and engineering. statistics, optimization, integration, linear algebra, Fourier transforms, signal and image processing, ODE solvers, and more.
- nltk - A suite of libraries and programs for symbolic and statistical natural language processing.
- mistune - The fastest markdown parser in pure Python with renderer features, inspired by marked.
- pandas - A software library for data manipulation and analysis. In particular, it offers data structures and operations for manipulating numerical tables and time series.
- Django - The most popular full featured web framework in Python.
- djangopackages - Excellent 3rd party django package collections.