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.2.tar.gz (24.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.2-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

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

Hashes for iowp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 01b6f79f9d3dbbb519162455dd9dc2945e0d7ffc1baa2c51512c6f598f5a73f6
MD5 f6b143cc8307f1748e02d3810f4261a4
BLAKE2b-256 a2be5a73c1a282c6631ba319a667200e96c3d5dc726009df751776e599657446

See more details on using hashes here.

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

Hashes for iowp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 00f3183c139a743593f899495259715d6d6accc9a38312f8313b79c687be52c5
MD5 f7f0a35e7ba0445d4b4252f8f1a79c06
BLAKE2b-256 4a939b31687a5f3345415dcd6a5d080edba0448e697c76a8dccf52b8b7347452

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