Skip to main content

ec - a cli interface for python modules.

Project description

The intenetion

ec - intends to reduce the learning curve needed to expose functionality via the command line. With available options like argparse and docopt, it might take several hours to get them right. And there is also the issue of the needed amount of extra coding to setup and process the arguments. See the following example to see how ec solves the issue.

A simple example

from ec.ec import task

@task
def say_hello():
        print 'Hello, world!'

could be accessed from the command line, like:

$ python hello.py say_hello
        Hello, world!

Features

  • Typed arguments.

  • Sub commands (like git).

  • Custom types.

  • Shell mode (like python’s interactive mode).

  • Named / Positional arguments.

A more complete example

from: simple.py

from ec.ec import task, arg, group

@task # define a task
@arg(type=int, desc= 'Value for arg1') # add an argument with a type and a description
@arg(type=int)
def task1(arg1, arg2=1):
        print arg1, arg2

@group(desc = 'A group with some tasks') # define a group
class group1:
        @task
        def task1(arg1): # define a task inside the group
                print arg1 + arg1

Execute a task: <dispatch mode>

From the command-line enter

$ python simple.py task1 arg1=1 arg2=2
        1 2

$ python simple.py group1/task1 arg1=1
        2

$ python simple.py group1/task1 1 # positional arguments too are supported
        2

Interactively execute tasks: <shell mode>

From the command-line enter

$ python simple.py # this will enter into ec-shell

>task1
Value for arg1: 1
arg2 (1): 2
1 2

>group1/task1 # execute task1 under group1
arg1: 1
11

>task1 arg1=1 # arguments can be given while calling the task, the missing arguments will be collected from the user
arg2 (1): 2
1 2

>^Z # exit the shell

Utilizing STDIN:

From the command-line enter

$ echo 1 2 | xargs python simple.py task1 # Dispatch a command with args passed through STDIN and converted to args using xargs.
$ echo -e "1\n2" | python simple.py -p task1 # Dispatch a command and with partial args and pass the rest through STDIN.
$ echo task1 1 2 | python simple.py # Feeding the shell with complete commands through stdin.

Detailed docs could be found at PyDocs.

For more examples check the github page.

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

ec-0.2.5.tar.gz (39.3 kB view details)

Uploaded Source

Built Distribution

ec-0.2.5-py2.py3-none-any.whl (26.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file ec-0.2.5.tar.gz.

File metadata

  • Download URL: ec-0.2.5.tar.gz
  • Upload date:
  • Size: 39.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for ec-0.2.5.tar.gz
Algorithm Hash digest
SHA256 7f2e139b30ed6e97c6d651fb0d2d37a0c167c0ac2b355b4de366e35d9b88f839
MD5 427060ca8a59d489d318deb8c0858282
BLAKE2b-256 1e701073ffed8ac9126a30afbaba3074ac69ee6c63e19974f7ad7f8657a7ac54

See more details on using hashes here.

File details

Details for the file ec-0.2.5-py2.py3-none-any.whl.

File metadata

  • Download URL: ec-0.2.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 26.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for ec-0.2.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ff3cb93c0af77506ad3d5dfb91732cbde3971e4d69a73bd66b70d2e5afebb959
MD5 2931d15bdb17b2c7ee07537d3b36e966
BLAKE2b-256 209e4d4a8d1e4274aeebd75c262a5e3917333cd6f9d3deb489ec6ccf679672a9

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