Skip to main content

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:

  1. Increment the version in pyproject.toml.
  2. Build the new distribution:
    python3 -m build
    
  3. 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

iowp-0.1.3.tar.gz (25.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iowp-0.1.3-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

Details for the file iowp-0.1.3.tar.gz.

File metadata

  • Download URL: iowp-0.1.3.tar.gz
  • Upload date:
  • Size: 25.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for iowp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 92e5fc2408cf934f809c49652e7d4a9319478d071eaf8fe39874467b03b2eec1
MD5 33608c565cb6cdcd22e5267beee7fb50
BLAKE2b-256 e50c2ed7c18f6021fff77ff923966893f19a00232de3315e8c94fb4cb3367077

See more details on using hashes here.

File details

Details for the file iowp-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: iowp-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 27.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for iowp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2d46714495ef027278dbfbd0bffa9a6866ac055d6ca374464bb8c8b8d16f0214
MD5 9f628dec3f58fd40371768eb375d5897
BLAKE2b-256 2db8b80d95134ba26367db9bcaca802acaae4bcbb0b917670b8a202b849a572b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page