Skip to main content

Entry point for Python scripts

Project description

command_manager
===================


Entry point for Python scripts.
Helps you structure additional scripts of your application within one or more Python packages and call them from one place.

Installation
-------------
Install using `pip`...

pip install command_manager

Using
-------------------
Create a Python package anywhere in your application.

For example, the package `commands` and the entry point `manager.py`

.
├── commands
│ ├── __init__.py
│ └── my_first_command.py
├── src
└── manager.py

In `manage.py` add the following:

if __name__ == '__main__':
import logging.config # Optional for logging
from command_manager import Manager

LOGGING = { # Optional for logging
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s | %(asctime)s | %(module)s | %(message)s'
}
},
'handlers': {
'commands_handler': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'formatter': 'verbose',
'filename': os.path.join("logs", 'commands.log'),
'maxBytes': 100000,
'backupCount': 10,
}
},
'loggers': {
'commands.my_first_command': {
'handlers': ['commands_handler'],
'level': 'INFO',
'propagate': False
}
},
}

logging.config.dictConfig(LOGGING) # Optional for logging
manager = Manager(["commands"])
manager.run()

In `my_first_command.py` add the following:

from command_manager.commands import BaseCommand


class Command(BaseCommand):

description = "Simple command"

def add_arguments(self, parser):
parser.add_argument("--arg1", help="argument arg1")
parser.add_argument("--arg2", help="argument arg2")

def handle(self, *args, **kwargs):
self.logger.info("START")
print "Hello Word: arg1={arg1} arg2={arg2}".format(**kwargs)
self.logger.info("END")

> **Warning:**
> The class must be called the `Command` and inherited from `BaseCommand`

Now call `manage.py` from the console.
![python manage.py](/asserts/manage.png)

Call our command `my_first_command.py`
![python manage.py my_first_command](/asserts/command_call.png)

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 command_manager, version 1.2.0
Filename, size File type Python version Upload date Hashes
Filename, size command_manager-1.2.0.tar.gz (4.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page