Skip to main content

My journey through Hyperskill, captured in a portfolio of Python projects. Each solution is refactored for quality, tested with pytest, and statically checked with mypy.

Project description

Hyperskill Python Portfolio

A collection of classic command-line applications and games, developed as a portfolio of Python projects from the Hyperskill platform. Each application is a self-contained, runnable program built with modern Python 3.12+.

This package allows you to instantly install and run a variety of small, fun programs directly from your terminal.

Quick Start: Installation & Usage

Install the package using pip (or any modern installer like uv or pipx):

pip install hyperskill-python-portfolio

Once installed, you can immediately run any of the included applications.

Try a Game: Hangman

hangman

Try a Simulator: Coffee Machine

coffeemachine

Try a Utility: Loan Calculator

The loan calculator can compute annuity payments, principals, and more.

# Calculate the monthly payment for a loan
loancalc annuity --principal 500000 --interest 5.5 --periods 360

# Calculate the total principal for a given payment
loancalc annuity --payment 2800 --interest 5.5 --periods 360

Available Applications

This portfolio includes the following command-line applications:

Command Description
billsplitter A simple utility to split a bill among friends.
chatbot A basic, friendly chatbot with scripted dialogue.
coffeemachine An interactive, stateful coffee machine simulator.
hangman The classic word-guessing game.
loancalc A powerful command-line loan calculator.
rps Rock-Paper-Scissors with score tracking.
zookeeper A fun script that displays ASCII art of animals.

Each application is a standalone project, refactored for quality and built with modern tooling.

About This Project

This project serves two purposes:

  1. For Users: To provide a simple, installable package of classic command-line tools and games.

  2. For Developers: To serve as a practical portfolio demonstrating modern Python development practices.

The source code is heavily documented, tested with pytest, type-checked with mypy, and formatted with ruff. It is intended to be a clear and readable example of a well-structured Python application suite.

For Contributors

This project is managed with a modern Python toolchain. If you are interested in the development process or wish to contribute, please visit the project's GitHub repository.

The repository contains detailed information on the development setup, tooling (uv, ruff, mypy), and how to run the quality checks.

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hyperskill_python_portfolio-0.3.1.tar.gz (60.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hyperskill_python_portfolio-0.3.1-py3-none-any.whl (29.8 kB view details)

Uploaded Python 3

File details

Details for the file hyperskill_python_portfolio-0.3.1.tar.gz.

File metadata

File hashes

Hashes for hyperskill_python_portfolio-0.3.1.tar.gz
Algorithm Hash digest
SHA256 6594e48374e2a1f970635a33fcc23e937076b3515373fab35920984ce5b78e62
MD5 c8f258b9b8bb1e421738a51fe09a1baa
BLAKE2b-256 3878e5e274b67906889f5a28a3942e4855f95b8857527be4da1e4b6fcf773367

See more details on using hashes here.

File details

Details for the file hyperskill_python_portfolio-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for hyperskill_python_portfolio-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c486d1763ed20100b23d286e4fd0d84ef7b87aa05605e81c403538a04cf830ae
MD5 fe2383cc67908444f34121190da358b6
BLAKE2b-256 97ac1fd07e7c48a12b4606970697076b4a4ddb233cb1f5af86235c8f18e4da3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page