Metadata-Version: 1.1
Name: command_manager
Version: 1.0.6
Summary: Entry point for Python scripts
Home-page: https://github.com/falgore88/command_manager/
Author: Evgeniy Titov
Author-email: falgore88@gmail.com
License: BSD
Download-URL: https://github.com/falgore88/command_manager/tarball/v1.0.6
Description-Content-Type: UNKNOWN
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):
                    print "Hello Word: arg1={arg1} arg2={arg2}".format(**kwargs)
        
            **Warning:** The class must be called the ``Command`` and inherited
            from ``BaseCommand``
        
        Now call ``manage.py`` from the console. |python manage.py|
        
        Call our command ``my_first_command.py`` |python manage.py
        my\_first\_command|
        
        .. |python manage.py| image:: /asserts/manage.png
        .. |python manage.py my\_first\_command| image:: /asserts/command_call.png
        
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Environment :: X11 Applications
Classifier: Environment :: Console
Classifier: Framework :: Django
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: License :: OSI Approved :: BSD License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
