Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Exposing python functions to the command line

Project description

pyopt version 0.84

A module for command-line options with a pythonic, decorator-centric syntax.

The following example auto-generates help with docstrings, type casting for
arguments and enforcing argument count:

import pyopt

expose = pyopt.Exposer()

@expose.args
def regular_function(arg1:str, arg2:int):
'''Your help - the docstring'''
# bla, etc, foobar spam...
print(repr(arg1), repr(arg2))

if __name__ == "__main__":
expose.run()

There are 3 modes of operation:
1. expose.args - A decorator for positional arguments.
2. expose.kwargs - A decorator for keyword arguments.
3. expose.mixed - A decorator for keyword and positional arguments.

Currently known compromises that are open to discussion, e-mail me:
1. This module was specifically designed with python 3 in mind, certain features
can be converted to python 2.x, but the awesome ones can't.
2. Keyword command-line functions require every argument to start with a
different letter to avoid collisions.
3. Annotations aren't mandatory, I don't know if this is the right way to go,
it's an explicity vs convenience issue.
4. Booleans can't default to True. I couldn't think of a use case for this
so tell me if you did.

License: whatever, I don't mind. Google Code made me choose so I went with
the "New BSD". If somebody has a better idea, e-mail, comment or whatnot.
Hearing from whoever uses this code would be nice, but you really shouldn't
feel obliged.

Contact me at: ubershmekel at gmail

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pyopt, version 0.84
Filename, size File type Python version Upload date Hashes
Filename, size pyopt-0.84.zip (10.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page