Skip to main content

Yepkit YKUSH Python API and command line tool

Project description

pykush

  __   __         _    _ _
  \ \ / /__ _ __ | | _(_) |_
   \ V / _ \ '_ \| |/ / | __|
    | |  __/ |_) |   <| | |_
    |_|\___| .__/|_|\_\_|\__|
           |_|

Yepkit YKUSH Python library and command line tool

Provides library and command line functionality for communicating with a YKUSH device over USB.

Thanks to the developers and maintainers of the following projects among others:

  • HIDAPI multi-platform library
  • Python hidapi wrapper module
  • Python hidapi-cffi wrapper module Any of the above python wrappers are currently supported.

Features

  • Easy to use
  • Written to support YKUSH, the Yepkit USB Switchable Hub
  • Open-source, please be our guest to collaborate
  • Current development version supports both Python 2 and 3
  • Works on Linux, Windows and Mac

Requirements

Installation

If you are in a hurry and just need a console application you can give our Pyinstaller bundled executable a try:

Download the executable corresponding to your platform and run it from a terminal window. Also remember to authorize execution on Linux or macOS systems:

$ chown u+x pykush
$ ./pykush -l

From source

Anonymous:

$ git clone https://github.com/Yepkit/pykush
$ cd pykush/
$ python setup.py install

Git:

$ git clone git@github.com:Yepkit/pykush
$ cd pykush/
$ python setup.py install

Usage

Basic command line usage

$ python pykush.py -h
usage: pykush.py [-h] [-s SERIAL]
                 (-l | -u [UP [UP ...]] | -d [DOWN [DOWN ...]] | -r READ | -w WRITE WRITE | -p)

Yepkit YKUSH command line tool.

optional arguments:
  -h, --help            show this help message and exit
  -s SERIAL, --serial SERIAL
                        specify the serial number string of the YKUSH to be
                        listed or managed
  -l, --list            list YKUSH devices
  -u [UP [UP ...]], --up [UP [UP ...]]
                        the downstream port numbers to power up, none means
                        all
  -d [DOWN [DOWN ...]], --down [DOWN [DOWN ...]]
                        the downstream port numbers to power down, none means
                        all
  -r READ, --read READ  the GPIO pin to read from
  -w WRITE WRITE, --write WRITE WRITE
                        the GPIO pin to write to
  -p, --persist         make the current running configuration persistent
                        across reboots (only supported on devices with
                        firmware v2.0 and above)

$ python pykush.py -l
listing YKUSH family devices
  found a YKUSH release 2 device with serial number YK20001
    system device path 0001:000a:00, vendor id 0x04d8, product id 0xf2f7
    the device is running a v1.2 firmware and has 3 downstream ports
    downstream running power states, port 1 to 3: UP, UP, UP

$ python pykush.py -d 1 2
managing YKUSH family devices
  found a YKUSH release 2 device with serial number YK20001
    system device path 0001:000a:00, vendor id 0x04d8, product id 0xf2f7
    the device is running a v1.2 firmware and has 3 downstream ports
    powering DOWN port 1... done
    powering DOWN port 2... done

Basic module programming usage

$ python
>>> import pykush
>>> yk = pykush.YKUSH()
>>> yk.set_allports_state_up()
True
>>> yk.get_downstream_port_count()
3
>>> yk.set_port_state(2, pykush.YKUSH_PORT_STATE_DOWN)
True
>>> yk.get_port_state(2)
0
>>> yk.get_port_state(2) == pykush.YKUSH_PORT_STATE_DOWN
True
>>>

Disclaimer

The module is already usable in the limited scope we tested but it is still in a alpha stage.

Contributing

Bug Reports

If you find a problem, please submit a bug report on issue tracker.

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

yepkit-pykush-0.3.5.tar.gz (10.7 kB view details)

Uploaded Source

File details

Details for the file yepkit-pykush-0.3.5.tar.gz.

File metadata

  • Download URL: yepkit-pykush-0.3.5.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.1

File hashes

Hashes for yepkit-pykush-0.3.5.tar.gz
Algorithm Hash digest
SHA256 ed43039187d35e11b790c1b46ce3fc02fed42bffcf7630b450ea086946ae6ea5
MD5 1f640988922abf8dadf27cefddeb3af6
BLAKE2b-256 70772887fde543165ff247f89bd8a47902a757b4a97dc8c0e43297c0fcbba677

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