Skip to content
Stefano Zaghi edited this page Jul 2, 2015 · 8 revisions

FLAP is inspired by the python great module argparse, thus many features are taken from it. Here the main features are listed.

  • User-friendly methods for building flexible and effective Command Line Interfaces (CLI);
  • comprehensive Command Line Arguments (CLA) support:
    • support optional and non optional CLA;
    • support boolean CLA;
    • support positional CLA;
    • support list of allowable values for defined CLA with automatic consistency check;
    • support multiple valued (list of values, aka list-valued) CLA:
      • compiletime sized list, e.g. nargs='3';
      • runtime sized list with at least 1 value, e.g. nargs='+';
      • runtime sized list with any size, even empty, e.g. nargs='*';
    • support mutually exclusive CLAs;
    • self-consistency-check of CLA definition;
    • support fake CLAs input from a string;
    • support fake CLAs input from environment variables;
  • comprehensive command (group of CLAs) support:
    • support nested subcommands;
    • support mutually exclusive commands;
    • self-consistency-check of command definition;
  • automatic generation of help and usage messages;
  • consistency-check of whole CLI definition;
  • errors trapping for invalid CLI usage;
  • POSIX style compliant;
  • automatic generation of MAN PAGE using your CLI definition!;
  • replicate all the useful features of argparse;
  • implement docopt features.
  • implement click features.
Clone this wiki locally