skillfed

pyiotools

Provides several utilities for handling I/O

pyiotools v0.3.18 612.6K downloads/30d#5,756 on PyPI1
Permissive license MIT Abandoned released

What it is and what it does

pyiotools is a unified I/O framework that abstracts away the differences between command-line, GUI, and programmatic argument handling. It provides an IOHandler class that works like argparse but can switch between modes: COMMANDLINE mode uses argparse under the hood with a custom help interface, GUI mode builds a PyQt5 form automatically based on argument types, and PROGRAMMATIC mode accepts arguments as a dictionary. The package also includes type validators, interactive console utilities for menu selection, a Script class that auto-profiles method calls and logs them, and a Cache class for object serialization.

The library is still in alpha and has been abandoned since April 2022, with the last release in February 2021. The description explicitly warns that the API will likely undergo significant breaking changes and documentation will fall out of sync. It carries 14 runtime dependencies including PyQt5, pandas, and APScheduler, making it a heavy addition to any project. The package is useful for rapid prototyping of tools that need multiple input modes, but the lack of maintenance and unstable API make it risky for production use.

Use it for:

  • Build a tool that accepts input via command line, GUI, or programmatic API without rewriting argument handling logic.
  • Quickly prototype interactive console applications with menu selection and multi-select support using arrow keys.
  • Validate and coerce user input to specific types (integers, paths, datetimes, dataframes) with custom conditions.
  • Automatically generate a PyQt5 GUI form from argument definitions without writing widget code.
  • Profile and log method execution with automatic serialization of script state for debugging.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides unified I/O handling for command-line, GUI, and programmatic argument processing, with type validation, interactive console features, and object profiling and caching utilities.

No. The package is abandoned (last commit April 2022) and explicitly warns of unstable API and out-of-sync documentation. The 14 heavy runtime dependencies, including PyQt5, make it a substantial addition for an alpha-stage tool. Use argparse, click, or typer for command-line handling and PyQt5 directly for GUI work instead.

Install

pyiotools on PyPI

pip

pip install pyiotools

uv

uv add pyiotools

poetry

poetry add pyiotools

Installing pyiotools

Before you install

Low install friction, but the package is in alpha status and abandoned since 2022 with no recent maintenance. The 14 runtime dependencies include PyQt5 and other heavy libraries, which will pull in substantial system requirements despite the wheel distribution.

License in practice

MIT license is permissive and imposes no restrictions on use, modification, or distribution in your own projects.

Quickstart

pip install pyiotools

from pyiotools import IOHandler, Argument, RunMode

with IOHandler(run_mode=RunMode.COMMANDLINE) as handler:
    Argument('name', argtype='STRING').add()
    Argument('count', argtype='INTEGER', default=1).add()
    result = handler.process()

PyQt5 requires a display server on Linux; GUI mode will fail in headless environments. Requires Python 3.8 or later.

Verify before relying

  • Whether the 14 runtime dependencies (including PyQt5, pandas, APScheduler) are all actually required at install time or only for specific features.
  • Current state of the codebase and whether breaking API changes have stabilized since the last release in February 2021.
  • Whether the package works reliably with Python versions beyond 3.8, given the classifier only lists 3.8.

Package facts

License MIT (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 14 — APScheduler, dill, cryptography, cursor, readchar, colorama, infi.systray, PyQt5, maybe-else, pandas, pathmagic, pymiscutils, pysubtypes, typepy
Maintenance abandoned — 2,020 days since the last release
Last repo commit
First released
Downloads 612,558/month — #5,756 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pyiotools-0.3.18-py3-none-any.whl

Development Status :: 3 - AlphaIntended Audience :: DevelopersProgramming Language :: Python :: 3.8

Tags

command line argument parser guiinteractive console input handlingtype validation and coercionargument processing frameworkgui form builder from argumentsconsole choice selectionobject profiling and loggingserialization and caching
argument-parsinggui-builderinteractive-console

More Application Frameworks packages