Python library for IO-Warrior devices (Port of IOWJ)
Project description
IOWP - IO-Warrior Python Library
This library provides a Python interface for IO-Warrior devices, manufactured by Code Mercenaries Hard- und Software GmbH.
It is a Python port of the IOWJ Java library, originally created by Thomas Wagner.
The iowp.iowkit module is a reconstruction of the original iowkit.dll logic, designed to work natively on modern platforms like macOS (Apple Silicon) without the need for JNI or external binaries.
Credits & Acknowledgments
- Thomas Wagner: Original author and lead developer.
- Antigravity / Google Gemini: Assisted in the automated porting and refactoring process from Java to Python.
Installation
The easiest way to install the library is via PyPI:
pip install iowp
For Developers (Local Installation)
If you are working on the source code, you can install it in "editable" mode:
pip install -e .
This will automatically install the required hidapi dependency.
Maintenance & Release Workflow
For contributors and maintainers, follow this workflow for updates:
1. Local Changes
- Make your code changes.
- Commit your changes locally:
git add . git commit -m "Description of your changes"
2. Global Backup (GitHub)
- Push your changes to the remote repository:
git push
3. PyPI Release
To publish a new version:
- Increment the
versioninpyproject.toml. - Build the new distribution:
python3 -m build
- Upload to PyPI:
python3 -m twine upload dist/*
Features
- Support for all IO-Warrior models including IO-Warrior24 (no longer available), IO-Warrior28, IO-Warrior40 (no longer available), IO-Warrior56, and IO-Warrior100.
[!NOTE] The official name of the devices is IO-Warrior (e.g., IO-Warrior100). This library uses "IOW" as a shorthand for better readability in code.
- Fully self-contained package.
- Direct device control via the
IowFactory. - Event-based port listeners.
- Special mode functions (I2C, LCD).
Usage Example
from iowp.factory import IowFactory
# Get the factory instance and list connected devices
factory = IowFactory.get_instance()
devices = factory.get_devices()
for dev in devices:
print(f"Found {dev.name} (Serial: {dev.serial})")
Running the Factory Script
You can also run the bundled factory script to list devices:
iowp-factory
(or python3 iowp/factory.py)
License & Use
This project is released under the GNU General Public License v3.0 (GPLv3). This ensures the library remains free and open source. Commercial use in closed-source products may require a different licensing arrangement.
Professional Services & Support
If you need professional assistance, custom implementations, or commercial support for your IO-Warrior project, please contact:
Thomas Wagner - Ideenbüro Wagner www.ideenbuero-wagner.de
We offer:
- Custom driver and library development.
- Hardware integration and consulting.
- Commercial licensing for embedded projects.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iowp-0.1.2.tar.gz.
File metadata
- Download URL: iowp-0.1.2.tar.gz
- Upload date:
- Size: 24.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01b6f79f9d3dbbb519162455dd9dc2945e0d7ffc1baa2c51512c6f598f5a73f6
|
|
| MD5 |
f6b143cc8307f1748e02d3810f4261a4
|
|
| BLAKE2b-256 |
a2be5a73c1a282c6631ba319a667200e96c3d5dc726009df751776e599657446
|
File details
Details for the file iowp-0.1.2-py3-none-any.whl.
File metadata
- Download URL: iowp-0.1.2-py3-none-any.whl
- Upload date:
- Size: 27.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00f3183c139a743593f899495259715d6d6accc9a38312f8313b79c687be52c5
|
|
| MD5 |
f7f0a35e7ba0445d4b4252f8f1a79c06
|
|
| BLAKE2b-256 |
4a939b31687a5f3345415dcd6a5d080edba0448e697c76a8dccf52b8b7347452
|