This document defines the entire current roadmap for the project; itemizing all current & target features. The features are segragated into various categories of similar functionallity or sane heirachal structures.
Last Updated: 22 FEB 2016
The map below illistrates the main goals and milestones of the project. Once each level of objectives has been meet, that level's parent can be marked-off.
The main goal of this project is to provide an interface similar to Python's argparse pacakge. As such, code functionallity & attributes found in the argparse packaged are included.
- Parser
- Support ArgumentParser attribute functionallity
- prog
- usage
- description
- epilog
- argument_default
- conflict_handler
- add_help
- Auto-determine Program name
- Output entire program usage
- Support parent parsers
- Support multiple prefix characters
- Determine & display conflicting options
- Parse multiple short-arguments in single argument flag
- Parse from sys.Args by default
- Support sub-parsers / commands
- Support ArgumentParser attribute functionallity
- Argument
- Support Argument attribute functionallity
- name
- action
- nargs
- const
- default
- type
- choices
- required
- help
- metavar
- dest
- Support short & long named options
- Associate short & long named options as single option
- Support Nargs options
- Any positive integer
- "?" - One argument or none
- "*" - Any arguments or none
- "+" - One or more arguments
- "rR" - Remaining arguments
- Support argument type-asserting
- Support limiting to available argument Choices
- Allow for mutually-exclusive arguments
- Provide validity checking for Option based on provided arguments
- Support Argument attribute functionallity
- Namespace
- Contain parsed values for arguments
- Actions
- store
- store_const
- store_true
- store_false
- append
- append_const
- count
- help
- version
- Project / General milestones
- Documentation / examples
- Unit tests
- Strong code coverage
- Comprehensive & cohesive error messages