615 projects
cythonsendevent
Sendevent - Android with Cython
cythonuiautomatorstruct
Sendevent - Android with Cython
cythondfprint
Simple color printer for pandas DataFrames
cythonevparser
eventparser parser for Android
cydrowinparser
window dump parser for Android
adbshellexecuter
A class to execute ADB (Android Debug Bridge) commands on multiple operating systems.
npzigloc
Zig for Numpy
cppumap
C++ unordered map for Python
cppvecstring
C++ string vector for Python
cppvec
C++ vectors with Python indexing
logaccessparse
Accessibility parser for Android
cythonfragmentparser
fragment parser for Android
uiautomatoreventparser
Interacting with uiautomator events
cythonimagever
some stuff for images
sendkeysonroids
sendevent without using sendevent - keystrokes on Android
sendeventonroids
sendevent without using sendevent - Android
cythoncubicspline
Some useful algorithms in pure Cython - no dependencies
geteventforhumans
Android getevent for Humans!
osversionchecker
Checks what os is running
rafuzzpandas
Merges hard-to-merge data using rapidfuzz, cython, pandas and numpy
cytonuiautomatordump
uiautomator parser for Android
xmlhtml2pandas
html/ocr parser using Cython/lxml/Tesseract/ImageMagick/Pandas
cythonscreencap2ppm
screencap to ppm
mumuplayer12newinstances
Creates new instances of MuMu Player 12 with a copy of the entire system disk.
bluestacks5newinstances
Creates multiple instances of BlueStacks 5 with an independent system disk.
ldplayer9newinstances
Creates LDPlayer9 instances with independent system disk
threadedproxyobject
Threaded Proxy Object
killallappsinfolder
Kill procs
procciao
A library for killing processes/subprocesses the most gracefully way possible
ctypesprocstuff
Restarts process (Windows only)
restartprocwithvars
Restarts process (Windows only)
list-all-files-recursively-short
List files + 8.3 path
screenshotct
Screenshots - ctypes
consolectrlchandler
Handler for CTRL_C_EVENT, CTRL_BREAK_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, CTRL_SHUTDOWN_EVENT
outerr2html
Pipe stdout/stderr to TXT/HTML (Windows only)
getpublicipv4
script to get the public IP (v4) of a PC
psprocsdict
powershell/wmic to dict
procblockweb
Disables internet access temporarily for a specified executable and executes it with certain arguments.
tesserhocr2df
tesseract hocr to pandas DataFrame
bstacksnoadbclick
like input tap for BlueStacks instances, but without using ADB
rgsucher
ripgrep search
subprocplus
subprocess + some useful stuff
usefuladbpluswithrestart
usefuladbplus with restart
usefuladbwithrestart
usefuladb with restart
adbkonnekt
automates ADB management in Windows, ensuring ADB listens to all TCP (no USB!) devices, handles configurations, and restarts if killed
interactiveshellsubproc
Interactive subprocess Instances for cmd.exe, powershell.exe, adb.exe, bash.exe without deadlocks - pure Python, no dependencies
exceptdrucker
Module for colorful printing and error handling.
wmicprocsdict
Converts the output of a powershell (Get-...)/wmic command to a dict
getbstacksinfo
Some useful Bluestacks stuff
pidconnectioninfos
Finds processes holding files/ports open, as well as all generations of children
handlescreenshots
Fast screenshots of (background) windows with, includes a find_window method
rlogfi
Detached PowerShell interactive session, but with full control
nescree32
Fast Bluestacks screenshots with pywin32
usefuladb
A collection of useful adb commands
nodepsutils
Some utilities made with the standard library - Windows only
tkkillablethreads
Killable, non-blocking threads for tkinter
usefuladbasyncio
asyncio version of usefuladb
PrettyColorPrinter
Pandas DataFrames / Pandas Series / Print colored Numpy arrays / lists / dicts / tuples!
PandasColorPrinter
Pandas DataFrames / Pandas Series / Print colored Numpy arrays / lists / dicts / tuples!
genranddata
a function to create random usernames
regex4numbers
generates regex for numbers (ge / le / in range)
usefuladbplus
Automation library for ADB / Android
cythonintersectgroupercython
finds direct and nested intersections of lists
textcompari
A function to get the difference between two files and return a pandas DataFrame
numpyslicesplit
Splits a numpy array or a list based on the given indices or ranges and returns the split arrays.
cythoncolortools
Checks if colors are in image / Detects multiple colors in images - Fast Cython algorithm
numpycythonpermutations
Permutations, Combinations and Product for Numpy - written in Cython - 20x faster than itertools
cycompi
Cython Compilation Made Simple
dfjoinseries
Like numpy.char.join for DataFrames
dropduplicatesplanb
Drops duplicates in DataFrames with tedious dtypes
multiiframes2df
scrapes a website (Selenium, SeleniumBase, undetected chromedriver ...) with iframes and returns a DataFrame
subprocconout
run a subprocess and capture its CONOUT$ console output
filehashs2df
hashes files in the specified folder and its subfolders
ripgreppythonfiles
Search for code in your env using ripgrep
ruffrgimportfixer
Fixes missing imports using Ruff and RipGrep (CLI and import)
cythonlookupdicts
Insanely fast Cython lookup dicts for tedious datatypes (useful for Sports betting)
fortran2cc2fortran
Fortran to C / C to Fortran (nested) index converter
dateiendifferenz
tailored for handling file parsing and encoding conversion
emulator2df
Android emulators to DataFrame
tacimeicalc
Generates phone-related data including IMSI, IMEI, ICCID, MAC address, and phone number
logcatframe
Class for capturing and parsing Android device logs using ADB.
browser2requests
A class for capturing network requests in a browser and converting them to a pandas DataFrame - Windows only
nic2proxy
Creates Proxies and binds them to a NIC - Windows only
cythoncartesian2
Cartesian Product for NumPy - 40x faster than NumPy + itertools.product
arrayhascher
Fast hash in 2D Arrays (Numpy/Pandas/lists/tuples)
cythonparallelargsort
Parallel argsort with Cython - 2.5x faster than NumPy!
cythonnestednumpy
performs sorting and grouping operations on multidimensional NumPy arrays using Cython and hash-based algorithms.
cythonuniquedim
Finds unique dimensions in multi-dimensional arrays, compresses and decompresses arrays ...
cythonflatiter
Locates values in NumPy Arrays with Cython
cythonanyarray
Pass arrays of any dimension to Cython as memory views (no Global Interpreter Lock (GIL))
cythonrgbasearch
RGBA color search with Cython
cythoncartesian
Cartesian Product - 6x faster than itertools.product - 10x less memory
numpytypechecker
Check and convert the data type of a NumPy array based on a predefined set of data types.
nparraymapper
Mapping values in NumPy arrays (any shape!) with high speed - Cython -
cythonimagetools
Provides functions (Cython - C) for color analysis in images, including finding unique colors, counting occurrences, and comparing images
cythonunique
Fast implementation of unique elements in an array - up to 30x faster than NumPy
isincython
fast isin() function using Cython (C++) - up to 80 times faster than NumPy/Pandas.
cythonfastsort
C++ parallel sorting algorithms through Cython - up to 8 times faster than NumPy
getdominantcolor
Extracts the dominant color from an image represented by an array.
cythonsequencefinder
Module for finding sequences in arrays using Cython and NumPy.
permutation-no-repetition
Permutation without repetition - written in Cython - for Numpy
zipint
Efficient compression and decompression of unsigned integer arrays using binary representation.
lxml2pandas
lxml to pandas for fast web scraping
sharedbuiltinmutables
Shared list / set / dict across processes / environments
a-pandas-ex-sequence-search
Sequence / string search with NumPy in pandas DataFrames
npsearchsequence
Sequence / string search with NumPy
multitessiocr
Performs a very fast OCR on a list of images (file path, url, base64, bytes, numpy, PIL ...) using Tesseract and returns the recognized text, its coordinates, and line-based word grouping in a DataFrame.
locatecolorcluster
Lightning-fast image color clustering with C-based RGB localization/euclidean distance calculation. Supports DBSCAN/HDBSCAN, Shapely geometry.
cythoneuclideandistance
Calculate Euclidean distances between two sets of coordinates (Cython and Numexpr)
needlefinder
Find occurrences of a needle image in a haystack image using multiprocessing and template matching.
multiprocshapefinder
detects and analyzes shapes in images using parallel processing.
multiwhacamole
Detects differences between a Single Image and a List of Images (multiprocessing)
multicv2resize
Parallelized image resizing function using OpenCV and multiprocessing
chopchopcolorc
Locate RGB colors faster than ever with this efficient color search module (C + multiprocessing)!
tesserparsing
Image Processing and Text Extraction with Tesseract - multiprocessing
multiprocca
Enables multiprocessing with caching, eliminating the need for __main__, and ensuring unique results without duplicates
multiprocnomain
multiprocessing without __main__
indent2dict
Converts an indented text or list of strings into a nested dictionary structure based on the indentation levels.
adbeventparser
Parses the output from 'uiautomator events' in real time and converts it to a list of lists / pandas DataFrame.
cmdbashinteractive
Interact with subprocesses running both bash.exe (CygWin) and cmd.exe without terminating them.
geteventplayback
A pure Python module for recording and processing low-level Android input events (Mouse/Keyboard/Touchpad) - no dependencies
subprocwriteread
A class for interacting with subprocesses and capturing their input and output streams
adbnativeblitz
ADB Screenshots as fast as scrcpy, but 100% native!
clusterzeug
Some functions for clustering
colorcountcython
This module provides functionality to count unique colors in an image represented as a NumPy array and, optionally, group their coordinates. It includes a Cython-based implementation for improved performance.
a-pandas-ex-bs4df
One-line-web-scraping by combining pandas and BeautifulSoup4
a-pandas-ex-bs4df-lite
Light version of a_pandas_ex_bs4df
argskwargsmodifierclass
A decorator that modifies the arguments and keyword arguments of a function based on the calling instance's attributes.
argskwargsmodifier
A decorator that modifies the arguments and keyword arguments of a function before calling it.
adbscripts
some adb scripts
splitlistatindex
Splits a list into sublists based on either a list of indices or a number of sections.
loophopper
A "fast-forward and rewind" custom iterator for flexible traversal through iterables
indextextreplace
Replace specific substrings within a given string using index-based replacements
parifinder
extracts structured data from text using user-defined delimiters (strings or regex)
bs4multiproc
Manages Android packages on a device through DataFrames
adbpackagesmanager
Manages Android packages on a device through DataFrames
adbactivityautolite
Uses -dumpsys activity top- instead of -uiautomator- to automate Android
bs42frame
bs4 to pd.DataFrame
adbuiautolite
ADB - UiAutomator XML dump to pandas DataFrame
adbeasykey
handles spaces, accents and other sneaky characters in ADB commands
nested2dataframe
Transforms a nested dictionary or iterable into a Pandas DataFrame
adbkeyeventparser
parses Android keycodes from the official documentation and returns a dictionary containing key information.
fullpath83replace
Converts long Windows file paths to their short 8.3 format in a string where applicable
a-pandas-ex-fuzzymerge
Merges two DataFrames using fuzzy matching on specified columns
pylinuxnetnamespace
Binds an IP-address to a subprocess through network namespaces - Linux only
jerryrigserialver
jerry-rigged license system with UUID check (preventing more than one installation) and expiration date
jerryrigserialgen
jerry-rigged license system with UUID check (preventing more than one installation) and expiration date
a-pandas-ex-split-on-common-char
Splits the elements in a Series using a common separator character and returns a DataFrame
logcatdevices
Multiple ADB logcat with colored output / csv export
multiadbconnect
Establish a adb connection to different emulators at the same time (Bluestacks, MEmu, MuMu, LdPlayer ...) - Windows only
wrilytextaligner
Aligns text lines and characters within an image
cv2multilinewrite
cv2.putText with new lines
whacamolefinder
Get the difference between 2 images
a-cv2-calculate-simlilarity
Calculate the simlilarity of 2 or more pictures with OpenCV
allescacher
Like @functools.cache / @functools.lru_cache but with non-hashable objects
locate-pixelcolor-cython-multi-auto-compile
Detects colors in images 8 x faster than Numpy / Uses Cython - returns a dict
cythonautoinstall
Generates and installs simple Cython modules with specified settings. If you are overwhelmed by the compiler directives and the creation of the setup.py file, this is right for you.
tesseractrapidfuzz
Performs OCR on a list of images using Tesseract and performs fuzzy string matching with a given list of strings.
subprocesshidden
Executes subprocesses without console (Windows), reads stdout/stderr
detachedproc
Similar to subprocess, but with 100% detached processes
cmdlineobserver
Monitors and observes running processes with their command line details.
pandasxmledit
simplifies working with XML data by leveraging the power and flexibility of pandas DataFrames
numpyasciiart
Converts an image to ASCII art using numpy / numexpr / cv2
farbencounter
Counts the unique colors in an image and returns a DataFrame with color counts and optional color coordinates.
blockunblockips
Block / unblock ips using the Windows Firewall
mft2parquet
mft to parquet (pyarrow dtypes)
firewall2df
Windows firewall rules to Pandas DataFrame
hashitaggi
Get related hashtags
netstat2df
Retrieves and parses network statistics related to IPv4 TCP and UDP connection returns this information as a Pandas DataFrame
duplicateindexer
Find duplicates in multiple lists and return their indices and values.
shortpath83
simplifies Windows path handling, providing short path name conversion and string path manipulation
netzcfg
Retrieves network adapter configuration information using Windows Management Instrumentation (WMI) and return it as a Pandas DataFrame.
iptoolv4
Finds ipv4 addresses in log files / stdout
sposong
Finds similar songs
stridessequencefinder
finds sequences [3, 4, 5] in NumPy arrays [1, 2, 3, 4, 5, 1, 2, 3, 4, 5] - result: [2 7]
umacajadada
reads a file asynchronously during its execution while somewhere some other process writes to the same file
stridesduplicatefinder
Calculate overlapping values between two arrays and return the results as a DataFrame
stringindexsplit
simplifies the process of splitting a list of strings at specified character indices
iprangetoolkit
The IP Range Toolkit is a versatile Python library for generating and working with IP address ranges.
cirdhighspeedcoverter
High speed conversion of IP addresses represented in CIDR notation into their corresponding start and end IPs, along with their respective subnet masks.
severgdocs
Jerrybuilt data exchange through Google Docs - server
clientgdocs
Jerrybuilt data exchange through Google Docs - client
passprotecttxt
protects a text with a password
LatinFixer
Repair badly decoded latin strings \x00 | Xz | “ | ⢠| ™ | & #032; | & yuml;
a-pandas-ex-image-tools
Uses pandas/numpy/numexpr for operations on pictures - very fast
proxifyapps
wrapper for proxifyre
dynuipv4update
Updates the Dynamic DNS (DDNS) record for a given subdomain and domain using the Dynu API
revproxy
Reverse Proxy
functionapplydict
Applies a given function to the values of a nested dictionary
mainprocess
Runs EXE-files as independent main processes
pfehler
Captures and logs exceptions, optionally printing them to stderr
stderrstdoutcapture
captures temporarily stdout and stderr
wiredseleniumdf
captures and processes network requests (selenium-wire and undetected-chromedriver) and converts them to pandas DataFrames
tmplmatching
Fast multitemplate matching with support for different sizes using numexpr / cupy / fftw / scipy / multiprocessing
tools4yolo
Some image augmentation tools for yolov5 (and probably other models)
intersectioncalc
Finds rectangle intersections
pdferli
Convert PDFs into pandas DataFrames, remove restrictions, put/crack PDF passwords
auto-download-undetected-chromedriver
Script to automatically download the right undetected chromedriver version
unicodekonverter
Converts Hexadecimal Unicode Codes with the prefix 'U+/u+' in text to Corresponding Characters
subprocessmonkey
Monkey patch for subprocess to use 8.3 filenames - Windows only (no dependencies)
baumregextrie
A Trie data structure for efficient pattern matching using regular expressions - up to 1000 times faster
nutikacompile
A function that creates the cmd line for nuitka and executes it - Windows only
schirmshots
records multiple (background) windows using ctypes and ffmpeg - Windows only
ctypes-window-info
Get window/process information with ctypes, no dependencies
konfigleser
parses config files and converts the data types
a-cv-imwrite-imread-plus
Less trouble reading/writing images with OpenCV (from url/path/buffer/base64...)
solvacaptcha
automates the process of solving reCAPTCHA challenges on web pages when using Selenium
ffmpegaudiorecord
Starts recording audio from the specified device using ffmpeg and stops recording after a specified number of seconds of silence
audiotranser
Transcribes audio files
pandasmemuc
Automating memu emulator with pandas
randomandroidphone
Generates random data (brand, device name, imsi, imei, iccid, phone number ...) for Android cell phones
adbkit
Big automation package for ADB
wordvariations
Generates possible typing errors from a given string (neighboring keys and switch letters)
surroundingkeys
Finds the closest neighboring keys of a given letter on a specific keyboard layout.
fuzzypandaswuzzy
Fuzzy Comparison Utilities for DataFrame Columns
reverseshellclient
Reverse shell CLIENT for unbureaucratic server/client connections with file transfer / screenshots
reverseshellserver
Reverse shell SERVER for unbureaucratic server/client connections with file transfer / screenshots
pdsniff
captures and processes network packets asynchronously using the Scapy library, and converts the results to a pandas DataFrame
mousekey
Automates mouse/keyboard, works with games like Roblox!
lowmemorywordcount
Fast count of the occurrences of words in a text file or a given string - low memory consumption
operagxdriver
OperaGx webdriver with cdc patch.
npchessimage
Creates a chessboard pattern as an image.
mixbalanced
Mixes the elements of multiple lists in a balanced manner based on their proportional lengths.
gesichtfinder
Extracts faces from an image using different backend detectors and save the results in a DataFrame.
nvidiacheck
Monitors NVIDIA GPU information and log the data into a pandas DataFrame - Windows only.
concataudio
Concatenates multiple audio files from the given list and exports the result.
silentwav
Creates a silent WAV file with the specified duration and saves it to the given filename.
getpartofimg
Extracts a part of the image specified by width and height from the given image file path using OpenCV.
getbestfontsize
Determines the appropriate font size for given text and constraints
adb-push-create
creates [nested] folders and pushes files with ADB
hashlistdict
Hashable dict/list - subclasses of list/dict with a custom hash function based on alternating addition and subtraction of element hashes - pure Python
fuzzyydictyy
Dict with fuzzy key matching
punktdict
a dict with key attributes
mehrlist
Subclass of list with more than 100 useful methods - pure Python
nested2nested
converts a nested list into a nested dictionary with support for multi-level keys and preserving the order
mymulti-key-dict
Access nested dict elements as d[[1,2,3]] instead of d[1][2][3] - compatible with dict() - no requirements
levelflatten
performs customizable level-wise flattening of nested iterables.
multikeyiterdict
MultiKeyIterDict enhances the capabilities of the standard dictionary by supporting multiple keys, nested searches, and operations such as updates and merges (without loosing data) on dicts
screwhashesset
A set that handles all kinds of objects (hashable or not) and preserves the order of the elements
reduceplus
like functools.reduce but with exception handling, args and kwargs
nestedlistops
easier access to nested lists
yantranslate
automates text translation using yandex
dtranslate
automates text translation using Deepl Translate
translate4colors
automates text translation using Google Translate
retryloop
allows you to execute a given function on each element of an iterable, with the ability to retry failed attempts a specified number of times
normaltext
character normalization (especially for Latin letters - linguistic purposes)
a-pandas-ex-excel-edit
If you have to change a lot of arbitrary values which don't have a clear pattern, use Excel!
enummi
I love enumerate(), but I hate using it with zip() - this function takes care of it
windbg2df
provides a convenient and streamlined approach to analyze Windows processes by converting windbg requests to pandas DataFrames
asyncioget
simplifies the process of downloading multiple URLs concurrently, provides control over concurrency, and offers flexibility for customization
bisectsearch
Functions for performing binary search on sorted lists
catmapper
Maps the elements of an iterable to categories using bisect
screwhashcounter
provides a convenient and efficient way to count the occurrences of items (hashable and unhashable)
spacy2df
converts a spaCy object into a pandas DataFrame
pydeepchainmap
DeepChainMap from the Python documentation
cursesdict
creates an interactive menu system for your application or program, providing an intuitive and user-friendly interface for users to navigate and perform various actions
ffmpegdevices
Retrieves information about all available video and audio devices using FFmpeg.
requests2hdd
downloads files from a URL, creates the same folder structure on the HDD as the URL has, and saves the file
istruthy
extends the capability of truthiness evaluation beyond the standard Python truthiness rules to handle pandas DataFrames/Series and NumPy Arrays
screwduplicates
provides a simple and efficient way to remove duplicates from an iterable (even with unhashable elements, optional order preservation)
tqma
A poor man's tqdm - no progress bar, only numbers, no configuration options
mft2df
Lists the files on a drive insanely fast (43 seconds for 1,800,000 files - 600 GB) by converting the $MFT to a pandas DataFrame
pic2square2icon
2 functions that provide convenient and efficient ways to resize images to a square with custom backgrounds and convert images to the ICO format
gettimestamp
A function to get a Timestamp string in the format YYYY_MM_DD_HH_MM_SS_microseconds ('_' can be defined)
ignoreexceptions
Decorators that provide graceful exception handling, customization of error handling behavior, error logging
dfcsv2parquet
converts large CSV files into smaller, Pandas-compatible Parquet files
procmondf
provides a convenient and efficient solution for capturing and analyzing system activity logs using Procmon and converting them to the pandas compatible Parquet file format (2% of the original pml file size)
sigdf
provides a convenient and efficient way to retrieve signature information (Microsoft's sigcheck) for files and converts it to a pandas DataFrame
tkinter-files-folders
Some tkinter functions for selecting files/folders
seleniumabsxy
Clicks on Selenium webelements at a certain screen position (x,y)
sociallink
Encodes and decodes a URL using a specified symbol to prevent spam detection on platforms like Facebook and YouTube
ramdisk
A collection of functions that interact with the imdisk.exe utility
ctypes-rgb-values
Get rgb values at mouse position
hcdel
Deletes files (hardcore mode - Windows only)
whatdiditdo
Observes what processes are doing (Windows only)
accesschk2df
Automating the retrieval and analysis of access information using accesschk.exe
selenium2df-locate-element
Like WebDriverWait - visibility_of_element_located, but much easier
whats2df
Whatsapp to Pandas DataFrame (csv/xlsx/pkl) Doesn't require root access!
subprocreg
Execute apps using subprocess ([in]visible) + regedit.exe path search
gracefully-kill
Terminates a subprocess gracefully, if it doesn't work, it will be killed (Windows only)
ctpaperclip
Clipboard - Write/Read - supports Images, UTF-8, bytes, file lists, and more! (Windows only)
suicideproc
Kills the current process by using taskkill.exe
gethandledf
Retrieves the list of handles using the 'handle.exe' command and return the data as a pandas DataFrame.
change-proc-priority
Constantly checks and changes the priority of processes based on the provided parameters - Windows only
constant-check-and-kill
Convenient and customizable solution for monitoring and terminating processes - Windows only
locate-pixelcolor-cpppragma
Detect colors in images - 20 x faster than Numpy / 430 x faster than PIL
locate-pixelcolor-c
Detects colors in images 10 x faster than Numpy
adb-unicode-keyboard
Send any Unicode character to your Android device
taskkill
terminating processes on Windows using the taskkill command
cv2obs
OpenCV Images (NumPy Arrays) to OBS Virtual Cam
cv2imshow
cv2.imshow without freezing - Windows only
subprocess-multipipe
Uses subprocess.stdin.write and named pipes (Windows) to read data from / write data to a subprocess
varpickler
pickle / unpickle variables
pywinpipe
pywinpipe - Fast data exchange between 2 processes (Windows only)
adbblitz
ADB - The fastest screenshots - scrcpy stream directly to NumPy (without scrcpy.exe) - no root required!
get-free-port
Get free dynamic / registered ports
ffmpeg-screenshot-pipe
Capture Screenshots with Unparalleled Speed and Versatile Features - GDIgrab, DDAgrab, Ctypes, Multiprocessing, GPU, Mouse Capture...
fast-ctypes-screenshots
Screenshots in record time - up to 2.5x faster than MSS (Multiple Screen Shots)
getmonitorresolution
Uses ctypes to get the resolution information of all available monitors
sysmon2df
Captures Sysmon events and converts the output into a pandas DataFrames / CSV
evtx2df
converts Windows Event Logs (EVTX) into pandas DataFrames / CSV files
strings2df
Results of strings.exe to pandas DataFrame
getfilestats
Retrieves statistics from files (os.stat) e returns a pandas DataFrame
getregdf
reg.exe query to pandas DataFrame
folderobserver
monitors and collects temporary files that might be created during software execution or system processes
getproclist
Retrieves the list of processes using the 'wmic' command and return the data as a pandas DataFrame
copytool
copytool copies files hell-bent for leather
get-file-type
Guesses the file type/mime/encoding of files. It uses the binaries from File and Libmagic.
a-pandas-ex-read-sql
Convert any SQL Database to a Pandas DataFrame
a-pandas-ex-html-view
View/save any Pandas DataFrame/Series as HTML, works with MultiIndex as well
configparser2dtypes
Loads configuration files, converts their values to appropriate data types, and obtains the processed data in different representations
appshwnd
includes functions for finding windows based on various attributes, getting information about visible and invisible windows, and making window names unique
fastimgconcat
Concatenates a list of pictures (numpy arrays) without allocating new memory
getfilenuitkapython
A function that locates files in python environments and compiled exe files (Nuitka)
shlexwhichplus
Like shutil.which, but for all file types, and multiple results (if desired)
ipinfooo
Uses ctypes to get the IP configuration
a-pandas-ex-less-memory-more-speed
A Python package to reduce the memory usage of pandas DataFrames. It speeds up your workflow and reduces the risk of running out of memory.
check-if-nan
Checks for all kinds of nan/None values without raising Exceptions all the time
keybhook
Just a little keylogger
hackycfgparser
Hacky config parser - parses ConfigParser-compatible files / sys.argv and changes the defaults of functions
fabisschomagut
Converts back and forth between different color formats [(255,0,0),#ff0000, 16711680,(255,0,255) ... ]
shellextools
Adds Python functions/methods to the Windows context menu
a-pandas-ex-df-to-string
Just a function to convert everything in Pandas DataFrames / Series to string
a-pandas-ex-df2htmlstring
exports pandas DataFrames/Series as HTML (formatted string that looks like a table!)
locate-pixelcolor-cythonmulti
Compiled Cython Code (parallel) - Detects colors in images 5-10 x faster than Numpy
locate-pixelcolor-cythonsingle
Compiled Cython Code - Detects colors in images 2-3 x faster than Numpy
tkinteruserinput
Pop-ups to get input from the user - tkinter
fuzzyfiles
Binary fuzzy matching in all file types [fzf (pre-filter)/rapidfuzz (finds the best result)]
multisubprocess
Executes multiple subprocesses simultaneously (Windows only)
a-pandas-ex-text-compare
Compares 2 texts with each other, and returns a Pandas DataFrame
uffspd
Wrapper for the fastest file/folder list tool (UFFS) 350 GB in less than 3 Minutes (1.800.000 files and folders)
cv2-collage-v2
Creates a collage from images with OpenCV
lockexclusive
Limits the number of running instances of a Python script
ctypestoast
Toast notification for Windows - ctypes only - no dependency
lnkcreator
Creates .lnk files on Windows (with Admin rights if desired)
pipuserstats
PyPi download statistics for several packages or for all packages from a user
evilvars
Changes immutable data types (in-place)
a-pandas-ex-inspect2df
Converts the output of some inspect functions to a DataFrame
list2tree
Converts a list of tuples to a nested "family tree dict
tuplechanger
Changes values in tuples using ctypes
cooodecooo
A decorator that compiles C/C++ functions with Clang in Python
subprocesskiller
Some functions for killing (sub)processes + children with ctypes - works with shell=True
subprocess-alive
Checks if a process (pid) is alive on Windows
locate-pixelcolor-numbacuda
RGB search with numba.cuda - 10 x faster than numpy
locate-pixelcolor-numba
RGB search with numba - 2-3 x faster than numpy
locate-pixelcolor-cpp-parallelfor
Detects colors in images up to 10 x faster than Numpy
locate-pixelcolor-cupy
Detects colors in images up to 8 times as fast as NumPy
hackyargparser
Hacky argparser - parses arguments and changes the defaults of functions
a-pandas-ex-easy-loc
Search and replace values with df.loc without Exceptions due to dtype incompatibility
numba-aot-compiler
A function to facilitate the Ahead-of-time compilation with Numba
enabledisablelua
Enables or disables User Account Control (UAC) on Windows
lnkgonewild
Creates .lnk files (with admin rights if desired), can execute any file in hidden mode (no more bothersome popups when executing .bat/.cmd files)
amiadmin
A function to check if the user is an admin
ctrlchandler
Like atexit but for ctrl+c
outguncsv
Finds the right CSV separator and excludes bad lines in corrupt CSV files
rushex
Search files using the fastest Regex Engine ever - ripgrep - Replacement is also supported!
downloadunzip
creates, uploads, downloads, extracts and copies archives (zip, tar ...)
FastCopyFast
Three functions to copy/move files faster with Python
list-all-files-recursively
List files recursively
pip2df
Parses all imports and the imports of the imports of a py file into a Pandas DataFrame using pipdeptree/pipreqs/pip
cygsubprocess
Executes Cygwin bash scripts/commands in Python, captures and prints the output
add2winpath
Adds/removes folders to the PATH on Windows (Current User/All Users). It doesn't spoil paths with variables (e.g. %windir%\system32)
textwrapre
Splits large texts into smaller ones that can't exceed a certain limit, but need to be split where a certain regular expression matches
escape-windows-filepath
Escaping file paths (Windows) without crying and losing one's mind
winrtocr
Multiprocessing library for OCR with WinRT
tracealllines
Prints all executed lines
traymenu
System Tray Menu for Windows - no dependencies
win10ctypestoast
Windows-10-Toast-Notifications without pywin32 dependency
convpic2ico
Converts an image to .ico - Windows
pdmemedit
Edit/read/observe memory with pymem and pandas
bluestackspatcher-nougat
Updates IMEI/IMSI on BlueStacks 5.11.1002 / N32 / 32 bit / Android Nougat (probably other versions as well)
getpathfromreg
Get path from regedit
babyonemoretime
Kills python + all subprocesses, restarts with the same args, Windows only, works with pyinstaller
gettmpmail
Generates temporary emails
rootstacks
Root BlueStacks
reggisearch
Search for values in regedit
bstconnect
Connects to all BlueStacks devices that use Hyper-V (dynamic port!) via ADB and returns a DataFrame
env2installer
Bundles everything in an Anaconda environment and creates an installer.
tkconfigeditor
Dynamic tkinter config editor for files created with ConfigParser
subprocess-print-and-capture
Print and capture the output of a subprocess simultaneously
pyinstallersubprocess
subprocess for pyinstaller
subprocessnoconsole
Runs a process using subprocess without console output
bluestackspatcher
Updates IMEI/IMSI on Bluestacks 5.10 / Hyper-V / 64 bit / Android Pie
tesseractmultiprocessing
Multiprocessing OCR with Tesseract
callpyfile
Executes python scripts in different environments without writing temp files to disk, it can pass and receive any type of variable, multiprocessing can be executed from everywhere, not only at top-level
avproxyrotate
Rotates Avast proxy servers
regexfilesearch
Regex search in files
procobserver
Uses psutil to observe/log processes during a certain time
getdefgateway
Gets the default gateway (Windows only)
a-pandas-ex-bstcfg2df
Edit bluestacks.conf with pandas
androdf
Locates more items/views/elements on an Android device than similar automation packages by combining ADB's dumpsys activity/uiautomator
microsocksproxy
Wrapper for microsocks - multithreaded, small, efficient SOCKS5 server - Windows only
deepcopyall
deepcopys almost everything (functions, lambda ... )
a-pandas-ex-imap2df
imap to pandas DataFrame
charchef
3 functions to normalize strings, repair bad encoding, replace non-printable characters
adbdevicechanger
Changes android_id / device_name
remtmp
A function to delete all temp files
pipuptodate
Updates all packages with pip in an environment - no dependencies
a-pandas-ex-read-charsep-frames
Reads data separated by any char
cppparallelbufferedsort
parallel_buffered_sort from C++ for Python (Windows)
cppradixsort
parallel_radixsort from C++ for Python (Windows)
cinpy
C/C++ in Python for Dummies
a-pandas-ex-dillpickle
Pickle pandas DataFrames without AttributeError: Can't pickle local object ...
repeatdecorator
A decorator to call a function every n seconds
adbescapes
Makes strings compatible for adb shell input text ...
a-pandas-ex-set
Finds intersections / differences between pandas DataFrames
locate-pixelcolor-cpp
Locate RGB values in a picture! Up to 10x faster than NumPy, 100x faster than PIL.
group-and-iter-everything
Many useful groupby / itertools functions
save-load-vars
Save and load vars, functions ...
pyc-dtypes-converter
Converts Python variables to C variables and vice versa
hexintcalc
Some functions to do mathematical operations on int/hex (automatic conversion of input dtypes - returns hex)
operatorlookup
Access intrinsic operators through a lookup dict
listarray2ndarray
Converts a list of numpy arrays to a ndarray
break-out-nested
Break out of nested loops with max. 4 lines of code, no matter how deeply they are nested
a-pandas-ex-fastloc
Up to 25 times faster than df.loc by combining np.select and numexpr.evaluate (works with utf-8)
a-pandas-ex-numexpr
Pandas DataFrame/Series operations 8 times faster (or even more)
a-pandas-ex-fastsort
Speedup up to 40 percent when sorting Pandas index/Series
npfastsortcpp
Sorts int/float 4x faster than numpy by using parallel_sort from C++ (Windows only)
pdwinauto
Use Pandas to find and interact with handles, windows, and elements
a-pandas-ex-automate-win32
Automate the Microsoft Windows GUI with Pandas! Without pywin32, only ctypes!
gimagedownload
Download Google Image search results with free proxies
site2hdd
Download sites with public proxies - threading
ofenaus
Timeout decorator for functions! Works on Windows with multiprocessing, threading, subprocess!
TinyTinyDebugger
Simple debugger for small scripts, shows the line being executed, local vars ...
fco
Flat copy
a-cv2-text-effects
Text effects for OpenCV
window2video
Record Window (hwnd) and save the recording as mp4 (normalized fps) - Works even with background windows
url-analyzer
Extracts useful data from urls (domain, subdomains, top level ...)
threadingbatch
Thread batch with timeout - return values in dict
kthread-sleep
A killable sleep function for kthread
a-pandas-ex-apply-ignore-exceptions
Use DataFrame.apply / Series.apply with a default value for Exceptions
useful-functions-easier-life
Named functions, ignore Exceptions decorator with parameters, multiple functions execution ...
capture-stdout-decorator
Captures stdout
dict-merger-keep-all
Merges multiple nested dicts without deleting any values (values with same keys are stored in lists)
a-pandas-ex-combinatoric-iterators-to-df
Creates DataFrames from product, permutations, combinations, combinations_with_replacement with best dtype
a-pandas-ex-pairwise-explode
Pairwise explode columns in a pandas DataFrame
file-folder-tools
Some useful functions for files/folders
cv2-fit-text-in-box
Finds the best fitting text size for a bounding box
numbers-almost-equal
Checks if 2 numbers are almost equal
tolerant-isinstance
isinstance - more tolerant
play-audio-with-vlc
Play audio with VLC (headless) without blocking the console
sleepchunk
Sleeps in chunks of 0.05 seconds (with status bar) / ctrl+c to exit without throwing an Exception
search-in-syspath
Search for files in sys.path
cv2-multistack
Multiple image stack with cv2 (calculates height/width)
hexarray2decimal
Converts a numpy string array with hex values to int
divide-region-into-rectangles
divides region into rectangles
inpoly-cython
inpoly-cython / Original: https://github.com/dengwirda/inpoly-python
rect-intersection
Checks if two rectangles intersect
write-read-file
Some useful functions for reading/writing files
get-rectangle-infos
There are 3 common rectangle formats, and converting them all the time really is a pain in the a**
namedtuple-from-dict
namedtuple from dict / valid identifier from string
windows-filepath
Makes a string file path compatible (Windows)
files-folders-with-timestamp
Timestamps in readable format, touch folders/files with timestamp
set-nested-iters
Finds intersections/differences in nested iterables
get-consecutive-filename
Next consecutive filename in folder
a-selenium-some-js
A couple of useful JS scripts for Selenium
a-selenium-get-source-from-all-frames
Get the whole updated HTML source code from every frame (not driver.page_source)
a-selenium-better-sendkeys
As reliable as send_keys, but almost as fast as execute_script(arguments[0].value=...)
a-selenium-get-with-timeout
No more getting stuck with not reacting URLs
a-selenium-absolute-screencoords
Calculates the absolute screen coordinates of any Selenium element so that you can click on them with every basic automation tool
a-selenium-keys2coords
Takes a screenshot of every element on a site
a-selenium-screenshots-all-elements
Takes a screenshot of every element on a site
a-selenium-click-on-coords
Selenium mouse clicks on x,y coordinates
a-selenium-scroll-down-forever
Scrolls down on a page
a-selenium-screenshot-whole-page
Takes a screenshot from a whole page (same size as page / no repeating parts)
a-selenium-download-without-asking
Downloads are started automatically
a-selenium-errorhandler
Ignores all ChromeDriver Exceptions, returns the Exception(s) as string
a-selenium-kill
A decorator to kill Chrome if Selenium/ChromeDriver got stuck
a-selenium-add-special-keys
Adds some useful keys from the chrome.debugger library to Selenium
a-selenium2df
Get all attributes from each Selenium element in record time
a-selenium-iframes-crawler
No more pain with iframes ...
np-asciiart
Ascii art with numpy
add-colorprint
Adds color console print to windows reg
all-against-all
Each item of a list against all others
group-by-continuous-sequence
Groups lists/NumPy arrays by continuous sequence
isiter
Checks if a variable is iterable
intersection-grouper
Groups lists by common intersections
a-pandas-ex-console-plot
Retro Pandas - Plotting back in 1985
cv2-rectangle-around-center
Creates a rectangle around a center point
cv2pencil
Converts images to pencil sketches
cv2-stack-images
Stacks 2 images (horizontal/vertical)
cv2-collage
Create a collage from images with OpenCV
numpy-choices
Some useful np.random functions
transparent-rotate
Rotates images, makes the created background transparent
ffmpeg-stream-to-numpy
ffmpeg stream to numpy arrays
get-video-len
Gets the duration, frame rate and total frames from a video file
measure-exec-time
Decorator for measuring the execution time of a callable
normalize-lists
Normalizes lists of different lengths
winuserfolder
Makes it easier to access Documents/Pictures/Desktop/Music/Videos/Downloads
list-files-with-timestats
List files recursively, limit the depth of the subdirs, and get the creation and modification times
what-os
Check on what operating system the script is running
codec-social-network
Uses a codec that every social network accepts
drop-duplicates-nested-list
Drops duplicates from nested list
pstatsdecorator
Decorator for pstats
create-empty-image
Creates new/empty cv2 images/numpy arrays
get-random-samples-of-picture
Get samples from a picture
fake-read-write-files
Write/read from memory instead of files when open() is called
cv2multizoom
Fast multiple zooms on a picture using cv2 and ffmpeg
cv2watermark
Puts watermark on images using relative or absolute coordinates.
get-my-fonts
Lists all installed fonts
vid2frames
Video to frames
videoconcat
Concatenates videos
shuffdi
Shuffles a dict
a-pandas-ex-css-selector-from-html
Generates all possible CSS selector combinations from an HTML string - Speed up your Selenium automation!
make-even-odd
Make numbers even/odd
easy-symlink
Creates symlinks and all folders in the symlink path if they don't exist
subprocess-mem-only
Pass a variable as a SpooledTemporaryFile directly to subprocess.
np-zoom-in
Zoom in on a picture
disable-warnings
Disables all warnings
a-cv2-calculate-difference
Calculates the difference between 2 images
dirdf
Never mind explorer.exe, here is dirdf
a-pandas-ex-memorydump-to-df
Load a ProcDump memory dump into a Pandas DataFrame
enumerate-all-files-in-folder
A function that enumerates all files in a folder (and subfolders)
a-pandas-ex-logsplit
Splits a DataFrame/Series logarithmically
PoorMansHeadless
Make a headless window out of every window! Perfect for undetected chromedriver (Selenium) to pass bot detection in headless mode.
bluestacks-fast-screenshot
This module takes screenshots of BlueStacks using the win32 API, resizes and crops them to the same size of an ADB screenshot.
ctypes-windows
Useful functions for automation, no dependencies
ctypes-screenshots
Takes screenshots without pywin32 dependency (whole screen/single window)
a-pandas-ex-mindex-aggregate
Aggregates multiple columns of a DataFrame
locate-pixelcolor
Locate RGB values in a picture! 40x faster than PIL, 5x faster than numpy
a-pandas-ex-fast-string
Up to 4x faster than Series.str.contains / Series.eq - can handle Unicode!
a-pandas-ex-column-reduce
Apply reduce against a whole Pandas Series
a-pandas-ex-apply-against-all
Apply each value in a column against the whole column
a-pandas-ex-multiloc
Search for multiple values in multiple columns of a Pandas DataFrame
a-pandas-ex-split
Several methods to split a pandas DataFrame/Series
a-pandas-ex-closest-color
Calculates the closest colors from 2 lists
a-pandas-ex-obj-into-cell
Puts objects into cells / columns of a Pandas Dataframe
a-pandas-ex-lookupdict
Creates a lookup dict from a Pandas DataFrame (tuples as keys / np as values)
a-pandas-ex-enumerate-groups
Groups values in a column of a DataFrame and enumerates them
a-pandas-ex-to-tuple
Converts pandas DataFrames/Series into Iterator[tuple]
a-pandas-ex-to-dict
Pandas DataFrame to nested dict
a-pandas-ex-crosstab-dict
Pandas DataFrame to dict with crosstab DataFrames
a-pandas-ex-multimerge
Merges multiple DataFrames, ignores Exceptions if desired
a-pandas-ex-melt-pivot-tools
Some useful melt / pivot stuff for pandas DataFrames
fetch-content-providers-and-resolvers
Finds content providers/resolvers on Android devices
a-pandas-ex-adb-settings-to-df
# Parses all Android config files (json/db/xml) in the /data/ folder and returns an easy-to-handle DataFrame
a-pandas-ex-xml2df
nested XML to dict/DataFrame
a-pandas-ex-csv-plus
When pd.read_csv(csvstring, sep=r'\s+') doesn't work ...
adb-grep-search
Executes GREP on your Android device, and returns a Pandas DataFrame
get-the-hell-out-of-here
Removes control characters / non-printing characters from strings and binaries
a-pandas-ex-adb-to-df
Use the power of pandas to manage the files on your Android device
a-pandas-ex-horizontal-explode
Explode list/tuples in columns
flexible-partial
Like partial, but you can determine the order of *args
a-pandas-ex-duplicates-to-df
Creates a DataFrame/Series from duplicates
a-pandas-ex-adb-execute-activities
Creates (partial) functions for every Android activity using ADB
a-pandas-ex-adb-activities2df
Converts AndroidManifest.xml into a Pandas DataFrame (with all activities, queries, permissions ...)
a-pandas-ex-logcat2df
ADB logcat to Pandas DataFrame for better debugging
interval-repeat-decorator
Run code asynchronously to the main code execution
sendevent-getevent-keyboard
ADB sendevent - press multiple keys at the same time, control the duration of each event!
sendevent-touch
Sendevents for faster / more reliable touch/longtouch events when using ADB
getevent-sendevent
Converts getevent (ADB) into sendevent/binary, output can be saved, loaded and executed. Execution speed can be defined.
windows-adb-screen-capture
Screenshot from background windows, adb, full screen - Windows only
window-capture-streaming
Grab screenshots from a specific window and process them right away (for bots or video streaming)
adb-screencap-streaming
Streams ADB's Screencap (useful for bots and video capturing)
a-cv2-easy-resize
Different ways of resizing pictures in OpenCV
a-pandas-ex-uiautomator-to-df
ADB uiautomator dump to Pandas DataFrame
a-pandas-ex-dumpsys-to-df
ADB 'dumpsys package' to Pandas DataFrame
a-pandas-ex-loc-no-exceptions
Search through all columns of a DataFrame without worrying about Exceptions
a-pandas-ex-drop-duplicates-without-pain
Some useful methods for columns / index in Pandas DataFrames
add-methods-and-properties-to-existing-object
Add methods and properties to an existing object
generate-random-values-in-range
Generate numbers in a certain range / Get True/False according to a certain percentage
a-pandas-ex-whatsapp-to-df
Use the power of pandas to search through your WhatsApp messages (Doesn't require root access!)
subprocess-pipe
Pipe commands with subprocess
a-cv2-split-images-into-equal-parts
Split an image into equal parts
a-pandas-ex-google-book-search-to-df
Google book search to Pandas DataFrame
tf-efficientdet-lite2
Object detection with tensorflow
failsafe-kill
Kill your script with a hotkey
a-cv2-find-biggest-square
Get the largest blank square area in a picture
a-cv2-shape-finder
Detecting shapes with OpenCV, and getting all the important information in a DataFrame
a-cv-sift-detection
Detecting objects using openCV and sift
a-pandas-ex-group-coordinates-by-distance
Group coordinates by euclidean distance
a-cv2-putTrueTypeText
Like cv2.putText, but with TrueType Fonts (ttf)
touchtouch
Creates a file (and folders if they don't exist) at the given path
cprinter
Terminal Color Printer with dot notation for Python (works with any IDE) - no requirements
a-pandas-ex-vertical-to-horizontal
Vertical to horizontal (Series to DataFrame with multiple columns)
pykeycontrol
Start/stop functions/methods with hotkeys!
a-pandas-ex-reg2df
Never mind regedit.exe, here is reg2df
better-template-matching
Fast template matching with multiprocessing, supports different sizes, and filters overlapping results
freeproxydownloader
Gets proxies from public lists and checks them (ping, hidden IP, http connection)
easyocr-window-scanner
OCR on screenshots with EasyOCR - Windows only
get-children-parents-recursively
Fetch all children/parents from an object/list of objects recursively!
generate-training-data-ml
Great object detection results without spending a lot of time
tesseract-window-scanner
OCR on screenshots with tesseract - Windows only
a-pandas-ex-split-on-common-string
Split a Pandas.Series on a common string
yolov5windowdetect
Capture window - run yolov5 - show results (Windows only)
train-generated-data-ml
Great object detection results without spending a lot of time - yolov5 training script
ytframedownloader
Download frames from videos
fast-color-checker
A couple of fast algorithms for counting and locating colors in pictures
copy-functions-and-more
Create an independent copy of any object, function etc.
a-pandas-ex-tesseract-multirow-regex-fuzz
Regex/Fuzz search across multiple rows/Tesseract to pandas.DataFrame
a-pandas-ex-closest-neighbours
Find the lower and upper neighbours in a pandas.Series
a-cv2-imshow-thread
Solution for the window - not responding problem with cv2.imshow()
a-pandas-ex-old-school-for-loop
How about an old school inplace-for-loop for Pandas DataFrames? :)
nestednop
Editing deeply nested dicts/lists becomes the easiest thing in the world...
a-pandas-ex-df-updater
Update a DataFrame/Series with the values of another
a-pandas-ex-plode-tool
No more sleepless nights due to a nested dict, json, list or whatsoever
a-pandas-ex-columns-and-index
Some useful methods for columns / index in Pandas DataFrames
any-iter-to-html-table
Convert any nested iterable (json, dict, list, tuple ...) to an HTML table. Design is separated from data.
a-pandas-ex-regex-enhancements
Get repeated capture groups, search without having to fear Exceptions in any df/Series, convert results to appropriate dtypes, use fast Trie regex
a-pandas-ex-fuzz
Intuitive way of using fuzz matching in pandas
a-pandas-ex-intersection-difference
Computes the intersection/symmetric difference of n DataFrames/Series
a-pandas-ex-string-to-dtypes
Convert a Pandas DataFrame/Series with dtype str/string/object to the best available dtypes
flatten-any-dict-iterable-or-whatsoever
No more sleepless nights due to a nested dict, json, list or whatsoever
CreateBat
Create a .bat file on your desktop to run your script
BruteCodecChecker
Read files in all available codes in your env, so that you can pick the one that fits best!
PyPDump
inoffical wrapper for ProcDump https://docs.microsoft.com/en-us/sysinternals/downloads/procdump
PyCopyFast
Wrapper for FastCopy https://github.com/FastCopyLab/FastCopy
input-timeout
Like python's input(), but with timeout and default value
PYRipGREP
Use insanely fast regex engine RIPGREP as a python module! Search results are captured and converted to dict/numpy/pandas/generator
cmatcher
Find the best background and foreground color combinations from a given RGB value
flatten-everything
Flattens everything - lists, tuples, dicts, np, pd... Option to protect iterables from being flattened
string2markup
Made to format strings for kivy/kivymd (MIT)
pd2img
Convert RGB/RGBA image files to pandas dataframes, and vice versa
satzmetzger
Split German text to sentence! Uses TRIE-Regex to filter ordinal numbers (23.04., 2.5. ...), roman numbers, (II., XI. ...) 15,000 abbreviations (z.B., Abk. ...) , about 7,500 second-level domains (.com.br, ac.at ...), 1500 file name extensions (hallo.docx, tabelle.xlsx ...)
farbprinter
L̶i̶f̶e̶ Terminal is like a box of crayons