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.1.tar.gz (18.9 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.1-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: iowp-0.1.1.tar.gz
  • Upload date:
  • Size: 18.9 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.1.tar.gz
Algorithm Hash digest
SHA256 c60b25d9f1d271d35ca45070fef7b798164a6031a0ec13f4373f3f4dc67703bc
MD5 c8a7f3a13189340cbb36d20592507b69
BLAKE2b-256 551e4db51fac61d8fdd033021a94c7b88e8dc0d1db34c85f3787520e0d2b6fda

See more details on using hashes here.

File details

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

File metadata

  • Download URL: iowp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 20.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 23ca3d7be22d8bcd6770ea4cce40d6bb31a962c32ca67263cef52d82a76d2df5
MD5 31f1c15b0ef5b5ab073885b3feb7c7fa
BLAKE2b-256 807d2991ac28a59a8a053ffe1a9a0ad258a2fb88cd311a913c439fcb52b58761

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