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 curlorpip.
- 🖥️ 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)"' >> ~/.zshrcTo 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 uvfor 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! 😊