Skip to main content

Human friendly CLI builder

Project description

manage.py
=========

Human friendly CLI builder.

.. image:: https://drone.io/github.com/Birdback/manage.py/status.png
:target: https://drone.io/github.com/Birdback/manage.py

Installation
------------

``pip install manage.py``


Quickstart
----------

``cat manage.py``

.. code:: python

from manager import Manager

manager = Manager()

@manager.command
def echo(text, capitalyze=False):
"""print the given <name>"""
if capitalyze:
text = text.upper()
return text

if __name__ == '__main__':
manager.main()

``manage --help``::

usage: manage [<namespace>.]<command> [<args>]

positional arguments:
command the command to run

optional arguments:
-h, --help show this help message and exit

available commands:
echo print the given <name>


``manage echo --help``::

$ manage echo --help

usage: manage [-h] [--capitalyze] text

print the given <name>

positional arguments:
text no description

optional arguments:
-h, --help show this help message and exit
--capitalyze no description


Managers
--------

Managers can be used together by merging them

.. code:: python

from third_party import manager

my_app_manager.merge(manager)

# Merge within a new namespace:
my_app_manager.merge(manager, namespace='third_party')


Commands
--------

Commands can be organized within namespaces

.. code:: python

@manager.command(namespace='config')
def set(key, value):
# ...


Arguments
---------

Argument definition can be overridden

.. code:: python

@manager.arg('first_arg', help='this is help for first arg')
@manager.command
def my_command(first_arg):
# ...


Arguments can be prompted

.. code:: python
@manager.prompt('password', hidden=True)
@manager.command
def connect(username, password):
# ...


Environment
-----------

Environment variables can be sourced from a ``.env`` file as ``key=value`` pair.

Environment variable can be enforce using ``Manager.env`` decorator

.. code:: python

@manager.env('MY_ENV_VAR')
@manager.command
def my_command():
return os.environ['MY_ENV_VAR']

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

manage.py-0.2.tar.gz (8.9 kB view details)

Uploaded Source

File details

Details for the file manage.py-0.2.tar.gz.

File metadata

  • Download URL: manage.py-0.2.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for manage.py-0.2.tar.gz
Algorithm Hash digest
SHA256 c0f8c490b97ab99721db3fc36df99ed72a7948cd264a383d51877de93e627360
MD5 eb637f40cf5f7255bdd3d4b9037b2aff
BLAKE2b-256 66888fe6193f3f9a460828ce2210f60d60ceb4a2c1fb4dcaec6106d3fe8ab177

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