Here is a working version of DocOpt (partially taken from naval fate):
"""
Instance Manager
Usage:
instance_manager cluster create <name> <manager> <worker>... [--google|--virtualbox]
instance_manager cluster delete <name>
instance_manager cluster <name> add <worker> [--size=<size>]
instance_manager cluster <name> remove <worker>
instance_manager cluster <name> service add <service> [--replication=<replication>]
instance_manager cluster <name> service remove <service>
instance_manager cluster <name> service remove <service>
instance_manager instance (add|remove) <x> <y> [--moored|--drifting]
instance_manager -h | --help
instance_manager --version
Options:
-h --help Show this screen.
--version Show version.
--size=<size> Size of the container.
--moored Moored (anchored) instance.
--drifting Drifting instance.
--google Google Cloud.
--virtualbox VirtualBox.
--replication Service Replication.
"""
from docopt import docopt
if __name__ == '__main__':
arguments = docopt(__doc__, version='0.1.1rc')
print(arguments)
Here is a non-working version of DocOpt.
"""
Instance Manager
Usage:
instance_manager cluster create <name> <manager> <worker>... [--google|--virtualbox]
instance_manager cluster delete <name>
instance_manager cluster <name> add <worker> [--size=<size>]
instance_manager cluster <name> remove <worker>
instance_manager cluster <name> service add <service> [--replicas=<replicas>]
instance_manager cluster <name> service remove <service>
instance_manager cluster <name> service remove <service>
instance_manager instance (add|remove) <x> <y> [--moored|--drifting]
instance_manager -h | --help
instance_manager --version
Options:
-h --help Show this screen.
--version Show version.
--size=<size> Size of the container.
--moored Moored (anchored) instance.
--drifting Drifting instance.
--google Google Cloud.
--virtualbox VirtualBox.
--replicas Service Replication.
"""
from docopt import docopt
if __name__ == '__main__':
arguments = docopt(__doc__, version='0.1.1rc')
print(arguments)
Error:
docopt.DocoptLanguageError: --replicas must not have an argument
The only difference is that one uses the word replicas
instead of replication
.
diff first.py second.py
9c9
< instance_manager cluster <name> service add <service> [--replication=<replication>]
---
> instance_manager cluster <name> service add <service> [--replicas=<replicas>]
24c24
< --replication Service Replication.
---
> --replicas Service Replication.
This is unacceptable.