Commandify
Allows simple creation of Python command line utilities through decorating functions. Builds on the argparse module in the standard library. Optionally uses the argcomplete module to provide command line tab-completion for bash/zsh.
Installation
pip install commandify
Running example and usage
Once commandify has been installed, it can be run with:
commandify_examples --help
commandify_examples code:
#!/usr/bin/env python
# Only required if you want to use argcomplete:
# PYTHON_ARGCOMPLETE_OK
'''Examples of a simple set of functions that use commandify
usage::
commandify_examples --help
commandify_examples <command> --help
commandify_examples --main-arg=22 <command>
commandify_examples -m=22 <command>
commandify_examples cmd_no_args
'''
from commandify import commandify, command, main_command
@main_command(main_arg={'flag': '-m'})
def main(main_arg=345):
'''Example of how to use commandify
Main command, called before any other command
Can be used to set any global variables before any other commands executed.
usage::
commandify_examples --help
commandify_examples --main-arg=22 cmd_no_args
commandify_examples -m=22 cmd_no_args
commandify_examples cmd_no_args
'''
print(type(main_arg))
print("Main command: {0}".format(main_arg))
@command
def cmd_no_args():
'''Simplest command
usage::
commandify_examples cmd_no_args
'''
print('cmd_no_args called')
@command
def cmd1(name):
'''Simple command with argument
usage::
commandify_examples cmd1 --name=a1
commandify_examples cmd1 --name a3
commandify_examples cmd1 --name 'a4'
'''
print('cmd1 running')
print(name)
@command(username={'flag': '-n'})
def cmd2(username, userid):
'''Command with 2 args and a short flag set for name
usage::
commandify_examples cmd2 --username=steve --userid=55
commandify_examples cmd2 -n=sarah --userid=56
'''
print('{0}: {1}'.format(userid, username))
@command(some_arg={'default': 377})
def cmd3(some_arg, arg_with_default='arg_default'):
'''Command with defaults set in two ways
first through decorator and second through function arguments.
usage::
commandify_examples cmd3
commandify_examples cmd3 --arg-with-default=default_overridden
'''
# Type of some_arg will be int:
print(type(some_arg))
print(some_arg, arg_with_default)
@command
def cmd4(some_arg=False):
'''Command with False bool default
usage::
commandify_examples cmd4
commandify_examples cmd4 --some-arg
'''
# Type of some_arg will be bool:
print(type(some_arg))
# If it is called specifying --some-arg, it will be True.
print(some_arg)
@command
def cmd5(some_arg=True):
'''Command with True bool default
Command line argument gets turned into negative to handle this.
usage::
commandify_examples cmd5
commandify_examples cmd5 --not-some-arg
'''
# Type of some_arg will be bool:
print(type(some_arg))
# If it is called without specifying --not-some-arg, it will be True.
print(some_arg)
@command
def cmd6():
print('cmd6 called')
if __name__ == '__main__':
try:
import argcomplete
commandify(suppress_warnings=['default_true'], use_argcomplete=True)
except ImportError:
commandify(suppress_warnings=['default_true'])
Metadata
Release files for commandify 0.0.4.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| commandify-0.0.4.10.tar.gz | 138.4 kB | Without provenance | Details for commandify-0.0.4.10.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| commandify-0.0.4.10-py2-none-any.whl | Python 2 | none | any | Details for commandify-0.0.4.10-py2-none-any.whl |
Total release size: 149.7 kB
Release files / commandify-0.0.4.10.tar.gz
| Download URL | commandify-0.0.4.10.tar.gz |
|---|---|
| Size | 138.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e2e17453c62e49017c2c734835746bbecaff1e12dff244e731445886963ecadf
|
|
BLAKE2b-256 checksum How to use checksums |
49004a7f4ee0d78594a8102a3fc62e95b80290ab3b8a7dedc52295728d4fca90
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / commandify-0.0.4.10-py2-none-any.whl
| Download URL | commandify-0.0.4.10-py2-none-any.whl |
|---|---|
| Size | 11.3 kB |
| Tags | Python 2 |
|
SHA-256 checksum How to use checksums |
3dd3b8f84b3cd68610ee64597fbf03085b47e64631b5566a58cb89be425b83c7
|
|
BLAKE2b-256 checksum How to use checksums |
788a08eb341c2764564c1783cca82e91d0d5c17ecdf9370fa0846c823f565f1b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for commandify 0.0.4.10
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.