Skip to main content

A library for writing long running processes with a cli interface

Project description

python library for writing long running processes with a cli interface

Build Status

oi image

oi image

Install

Note: You need nanomsg installed on your system:

$ git clone git@github.com:nanomsg/nanomsg.git
$ cd nanomsg
$ ./configure
$ make
$ make check
$ sudo make install

Then install oi

$ pip install oi

Usage

1. Write your long running program

# programd.py

import oi

program = oi.Program('my program', 'ipc:///tmp/program.sock')
program.add_command('ping', lambda: 'pong')
program.add_command('state', lambda: program.state)
program.run()  # program will run forever

2. Add a ctl interface

# programctl.py

import oi

ctl = oi.CtlProgram('ctl program', address='ipc:///tmp/program.sock')
ctl.run()

3. Run program, then connect to it via ctl

# Run process
$ python programd

# OR with a configuration file
$ python programd --config /etc/program.conf

$ python programctl  # enter ctl loop
programctl > ping
pong

# OR ping end exit
$ python programctl ping

Quickly get started with a new project

$ mkdir xprogram
$ cd xprogram

$ oi init
$ make install

# Start your program
$ xprogramd

# Start ctl program
$ xprogramctl
ctl > ping
pong

# Upload to pypi (Edit setup.py before distributing)
$ make distribute

Now the interesting bit. Are you ready?

Run your program on one computer, then control it from another with a single line change (actually two).

Just change the address ipc:///tmp/program.sock to a tcp address, such as tcp://192.168.1.100:5000 in both your programd.py and programctl.py. That’s it! (:

TODO

  • [ ] Add more testing

License

MIT License

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

oi-0.4.2.tar.gz (8.8 kB view details)

Uploaded Source

File details

Details for the file oi-0.4.2.tar.gz.

File metadata

  • Download URL: oi-0.4.2.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for oi-0.4.2.tar.gz
Algorithm Hash digest
SHA256 c24f222c347d38b4f3a4c1e8048615c3dac08280a67e4ccbac9f41be46b12b71
MD5 7350837c87c8817278822c4cdffa22ce
BLAKE2b-256 276cff41ede99380c6f0f88f986b74c043fde3308d4b6b0068c6bf811880b01d

See more details on using hashes here.

Supported by

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