Skip to main content

Static Badge PyPI version

Minipy

Minipy is a CLI tool that combines Python tools and games into one program. I created this program to become better in Python and to learn new things. I used some blogs and YouTube videos to make the base of some tools/games, then I customized them and experimented with them.

preview


Table of content


Installation

Python 3.10 or higher is required. To install minipy run this command in your terminal:

pip install minipy-tools

On linux you need Tkinter for the GUI tool. Run this to install it:

sudo apt install python3-tk

Optional: Voice Recorder

To use the voice recorder you need to have pyaudio installed. Install it with this command:

pip install "minipy-tools[audio]"

On linux you als need PortAudio:

sudo apt install portaudio19-dev

Optional: Youtube Downloader

You need to have FFmpeg installed to have a correct video output. It is not installed by pip so run this command to install it:

windows:

winget install Gyan.FFmpeg

macOS:

brew install ffmpeg

linux:

sudo apt install ffmpeg

Restart your terminal afterwards so that FFmpeg is recognized.


Usage

To run the program run this command on your computer:

minipy

You can use the arrows on your keyboard to navigate through the menus, and Enter to select an option. Each app has a different way to use it but most of them are like all the other CLI tools. Everything is explained in the tools/games. Some tools/games have a GUI using Tkinter which is very intuitive to use.


Features

tool/game name short description tools used setup?
game hangman A basic hangman game. random
game number guessing A simple number guessing game. random
game rock paper scissors You know the game. random
game snake A snake game with GUI. random, Tkinter
game tic tac toe A tic tac toe game where you can choose to play against another player or a computer. (With GUI) random, Tkinter
tool auto clicker An autoclicker. time, threading, pynput
tool calculator A calculator with GUI. Tkinter
tool dice A very simple dice rolling system. random
tool image editor An image editor to apply some filters (with GUI). Tkinter, Pillow
tool ip locator A tool to locate any public IP address. requests, os, Pillow, io, Tkinter, dotenv, pathlib yes, API key
tool link shortener A link shortener (works with Cutt.ly). requests, os, dotenv, pathlib yes, API key
tool pdf merger A PDF merger (To merge 2 PDFs). pypdf, sys, os, shutil, pathlib
tool QR code generator A simple QR code generator. qrcode, pathlib, Tkinter, Pillow
tool random password generator A random password generator to generate a password with some requirements and a specific length. random, string
tool send email A simple program to send emails with your Gmail. os, click, smtplib, pathlib, email.message, dotenv yes, Google app password
tool voice recorder A voice recorder program (with GUI). os, wave, time, threading, Tkinter, pyaudio, pathlib pyaudio: pip install minipy-tools[audio]
tool weather A weather app to get the current weather of any city in the world. requests, pathlib, os, dotenv yes, API key
tool spotify downloader An app to download any spotify track, playlist or album. subprocess, pathlib, spotdl, sys
tool youtube downloader A tool to download any video on youtube. subprocess, pathlib, yt-dlp, sys yes, FFmpeg install (see installation)
tool age calculator An app to calculate an age from a date. datetime, dateutil
tool character and words counter A tool to count characters, words or both from an inputted text. click
tool clock A digital clock with GUI. tkinter, time
tool fun fact generator An app that generates fun facts for you. requests, json
tool spelling checker A tool to check the spelling of a text (sometimes it makes errors). requests, click
tool timer A timer where you put a time in seconds and it will count down (with alarm). time, playsound
tool unit converter An app with GUI to convert units. tkinter
tool screenshot taker A simple program that takes a screenshot with a shortcut. pyautogui, keyboard, os, pathlib, datetime

File structure

This is the file structure of the package:

└── 📁minipy
    └── 📁assets
        ├── alarm.mp3
    └── 📁games
        ├── hangman.py
        ├── number_guessing.py
        ├── rock_paper_scissor.py
        ├── snake.py
        ├── tic_tac_toe.py
    └── 📁tools
        ├── age_calculator.py
        ├── auto_clicker.py
        ├── calculator.py
        ├── character_and_words_counter.py
        ├── clock.py
        ├── dice.py
        ├── fun_fact_generator.py
        ├── image_editor.py
        ├── ip_locator.py
        ├── link_shortner.py
        ├── pdf_merger.py
        ├── QR_code_generator.py
        ├── random_password_generator.py
        ├── screenshot_taker.py
        ├── send_email.py
        ├── spelling_checker.py
        ├── spotify_downloader.py
        ├── timer.py
        ├── unit_converter.py
        ├── voice_recorder.py
        ├── weather.py
        ├── youtube_downloader.py
    ├── __init__.py
    └── main.py

Configuration

For some tools/games you need some configuration. The configuration will redirect you to README for instructions. You can find those here:

You need to have a Cutt.ly API key to be able to shorten links. To create one follow these steps:

  1. Go to https://cutt.ly
  2. Create an account / login
  3. In your dashboard, go to API and then API key on the left menu

menu

  1. You can find your API key on the right side of that page
  2. Copy it and paste it in the configuration when asked

Send email

You need to have a Google app password to be able to send an email. This is a second password to your Google account, we can use it in our app to send an email with Gmail. To create one follow these steps:

  1. Go to your Google account settings
  2. In the menu on the left click Security
  3. Click on 2-step verification and ensure it is turned ON, if not turn it on
  4. Scroll down until you see App passwords and click on it
  5. Type a name for your new app password (this can be anything, like Email sender)
  6. Click on make
  7. Copy or write down the 16 chars password you see (This is important, because you can't see it again later!)
  8. Enter it in the configuration when asked

Weather App

You need to have an OpenWeatherMap API key to be able to see the weather data. To find it follow these steps:

  1. Go to https://openweathermap.org/
  2. Click on the Get API key button
  3. Login or make an account
  4. Go to the API keys section

menu

  1. Copy the default key or create a new one
  2. Enter it in the configuration when asked.

Support

For support you can make an Issue on the GitHub repo, thanks for helping with my project.


License

MIT


Status

Ongoing: I'm still working on this project and constantly adding new tools/games and features...


Metadata

Release files for minipy-tools 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for minipy-tools 0.1.4
File Size Uploaded
minipy_tools-0.1.4.tar.gz 268.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for minipy-tools 0.1.4
File Interpreter ABI Platform
minipy_tools-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 540.4 kB

Release files / minipy_tools-0.1.4.tar.gz

Download URL minipy_tools-0.1.4.tar.gz
Size 268.7 kB
Tags Source
SHA-256 checksum
How to use checksums
8365a92bd99d4bdecc55f1af23d549219dff1bd89aa5fb8609d54d8acd2126c6
BLAKE2b-256 checksum
How to use checksums
3b5d13b14e0a8ea16e0ad1d4c8b5b4f165833fba26a6f44aeeead876a5e4a14e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.1

Release files / minipy_tools-0.1.4-py3-none-any.whl

Download URL minipy_tools-0.1.4-py3-none-any.whl
Size 271.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
acb484bcff34b93f009dae2a30222bfccdf736292971d3834c124ee9d5da64ee
BLAKE2b-256 checksum
How to use checksums
d16ef289e90f866593d02595d9263c3a4211155636d7340168addf53bef06211
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.1

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page