Metadata-Version: 2.1
Name: Commandopt
Version: 0.2.0
Summary: Turn a dict of arguments into cli commands, ideal companion of docopt.
Home-page: https://github.com/jaegerbobomb/commandopt
Author: notmarrco
Author-email: marc@maj44.com
License: UNKNOWN
Download-URL: https://github.com/jaegerbobomb/commandopt/archive/v0.2.0.tar.gz
Description: # commandopt
        Turn a dict of arguments into cli commands, ideal companion of docopt.
        
        ## Why ?
        
        Using the `commandopt.commandopt` decorator, you are able to declare commands to be
        executed depending on the input arguments of your app (required or optional).
        
        It reduces the boilerplate code in your `main()`.
        
        ## Declaration
        
        ```py
        def commandopt(mandopts: List, opts: List = None):
            # ...
        ```
        ### Call
        
        ```py
        @commandopt(mandatory_arguments, optional_arguments)
        def xxxx(*args, **kwargs):
        ```
        
        ## Example usage
        
        ```py
        #myapp/myapp.py
        """Naval Fate.
        
        Usage:
          naval_fate.py ship new <name>...
          naval_fate.py new-ship [<name>]
          naval_fate.py --version
        
        Options:
          --version     Show version.
        
        """
        from commandopt import Command
        from docopt import docopt
        
        import myapp.commands.ship
        
        if __name__ == '__main__':
            arguments = docopt(__doc__, version='Naval Fate 2.0')
            run = Command(arguments)  # get the registered function
            run(arguments)  # execute the function
            # or
            # run = Command(arguments, call=True)
        
        ```
        
        ```py
        #myapp/commands/ship.py
        from commandopt import commandopt
        
        class ShipCommand:
        
            @commandopt(["ship", "new", "<name>"])
            @commandopt(["new-ship"], ["<name>"])
            def new(arguments):
                """You can stack the decorator if you want."""
                name = arguments["<name>"] or "case when name is empty"
                # ... your code here
        ```
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.2
Description-Content-Type: text/markdown
