This repository is dedicated to my Python programming practice. It contains programs written in both functional and object-oriented paradigms. I explore various techniques, including:
- Static typing (
mypy
) - Unit testing (
pytest
) - Working with notebooks (
Jupyter Notebook
) - Managing dependencies using
uv
An extremely fast Python package and project manager, written in Rust.
- 🚀 A single tool to replace
pip
,pip-tools
,pipx
,poetry
,pyenv
,twine
,virtualenv
, and more. - ⚡️ 10-100x faster than
pip
. - 🐍 Installs and manages Python versions.
- 🛠️ Runs and installs Python applications.
- ❇️ Runs scripts, with support for inline dependency metadata.
- 🗂️ Provides comprehensive project management, with a universal lockfile.
- 🔩 Includes a
pip
-compatible interface for a performance boost with a familiar CLI. - 🏢 Supports Cargo-style workspaces for scalable projects.
- 💾 Disk-space efficient, with a global cache for dependency deduplication.
- ⏬ Installable without Rust or Python via
curl
orpip
. - 🖥️ Supports macOS, Linux, and Windows.
uv is backed by Astral, the creators of Ruff.
This repository is dedicated to my Python programming practice. It contains programs written in both functional and object-oriented paradigms. I explore various techniques, including:
- Static typing (
mypy
) - Unit testing (
pytest
) - Working with notebooks (
Jupyter Notebook
) - Managing dependencies using
uv
- Object-Oriented Programming (OOP) concepts:
- Classes
- Inheritance
- Decorators
- Logging
- Abstract classes
- Exceptions
- Context managers
- Functional Programming
Programs written following the principles of functional programming. - Object-Oriented Programming
Projects based on object-oriented programming using classes and methods. - Tests and Typing
Contains unit tests and code with static typing. - Jupyter Notebooks
Interactive notebooks with experiments and analyses.
-
Install
uv
(a recommended way to manage Python tools):pipx install uv
For Linux and macOS, determine your shell (e.g., with echo $SHELL
), then run one of:
# For Bash
echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
# For Zsh
echo 'eval "$(uv generate-shell-completion zsh)"' >> ~/.zshrc
To enable shell autocompletion for uvx:
For Linux and macOS, determine your shell (e.g., with echo $SHELL
), then run one of:
# For Bash
echo 'eval "$(uvx --generate-shell-completion bash)"' >> ~/.bashrc
# For Zsh
echo 'eval "$(uvx --generate-shell-completion zsh)"' >> ~/.zshrc
-
Activate
uv
for for project :uv init
-
Install dependencies :
uv add mypy ruff pytest --dev
-
Active venv :
source .venv/bin/activate
Piotr Lipiński
Feel free to contribute, submit issues, or ask questions! 😊