Skip to main content

multihelper

Multi-Function Helper for GUI, basic file functions, argument checks, and the advanced prefix() feature.

Installation

pip install multihelper

For Kivy GUI support:

pip install multihelper[kivy]

Usage

from multihelper import Task, GUI, prefix
from multihelper import ArgumentNotGivenError, PrefixFunctionMismatchError, WrongArgumentError

Task

Basic file and utility functions.

Task.wait(2)                                      # sleep 2 seconds
Task.FileExists("file.txt")                       # prints result, sets Task.SuccessFileExistsCode
Task.ReadFromFile("file.txt")                     # returns file contents as string
Task.WriteToFile("file.txt", data="hello")        # appends to file
Task.OverWriteToFile("file.txt", data="hello")    # overwrites file
Task.CheckArg("--run")                            # checks sys.argv for string
Task.CheckArg("--run", tell=True)                 # verbose argument listing
Task.ExitWithoutDynamicErrors("bye")              # clean SystemExit
Task.ExitWithoutDynamicErrors("bye", verbose=True)

prefix()

Injects all functions from a module into the calling file's global namespace, removing the need for the module prefix.

prefix("os")
cwd = getcwd()      # instead of os.getcwd()
files = listdir(".") # instead of os.listdir(".")

WrongArgumentError

Raised when a type-annotated prefixed function receives the wrong type or wrong number of arguments.

WrongArgumentError: wrong type for argument 'n' in 'sleep'.
  Expected: int
  Got:      str ('hello')

PrefixFunctionMismatchError

Raised lazily when a prefixed function name collides with a user-defined function in the same file. Raised on call, prints all collisions, then SystemExit.

def sleep(n):       # collides with time.sleep after prefix("time")
    pass

prefix("time")
sleep(1)            # raises PrefixFunctionMismatchError here

GUI

GUI.Tkinter

from multihelper import GUI

def on_click():
    print("clicked!")

GUI.Tkinter.WindowInit("My App", 800, 600)
GUI.Tkinter.Label("Hello!", 100, 50)
GUI.Tkinter.Button("Click Me", 100, 120, on_click)
inp = GUI.Tkinter.Input(100, 180)
GUI.Tkinter.Gravity("center")
GUI.Tkinter.Run()

No .pack(), .grid(), .place(), or .mainloop() ever written manually.

Gravity directions: center, top, bottom, left, right

GUI.Kivy

Requires pip install multihelper[kivy]

GUI.Kivy.WindowInit("My App", 800, 600)
GUI.Kivy.Label("Hello!", 100, 200)
GUI.Kivy.Button("Click Me", 100, 120, on_click)
GUI.Kivy.Input(100, 60)
GUI.Kivy.Run()

Exceptions

Exception When
ArgumentNotGivenError Raise manually when a required argument is missing
PrefixFunctionMismatchError Name collision between prefixed module function and user-defined function
WrongArgumentError Wrong type or count passed to a type-annotated prefixed function

License

GPLv3 — Copyright (C) 2026 Alan

Metadata

Release files for multihelper 1.0.0

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

Source distribution (sdist)

Source distribution for multihelper 1.0.0
File Size Uploaded Provenance
multihelper-1.0.0.tar.gz 6.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for multihelper 1.0.0
File Interpreter ABI Platform
multihelper-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.6 kB

Release files / multihelper-1.0.0.tar.gz

Download URL multihelper-1.0.0.tar.gz
Size 6.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c101135ec593e5931ea42b751bf3b036523f9646e2ca163b7c71701530ab76a4
BLAKE2b-256 checksum
How to use checksums
1f0105a286025c4a5c12e5239c63887559e1363e10313b52d9d64f12e3097cca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / multihelper-1.0.0-py3-none-any.whl

Download URL multihelper-1.0.0-py3-none-any.whl
Size 6.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
136d6b82b8a09c81d934f12bcf9491cad72e80c2ad0c68ef3c1bab46ea0031a6
BLAKE2b-256 checksum
How to use checksums
7f09fb5b726988d8919f5f7d80d95a388c953ddb7a11a9c8a24307b7e8744f61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Security for multihelper 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

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