with data gathered from the C{Options} instance passed in, and its base classes. @type options: L{twisted.python.usage.Options} @ivar options: The L{twisted.python.usage.Options} instance to generate for @type cmdName: C{str} @ivar cmdName: The name of the command we're generating completions for. @type file: C{file} @ivar file: The C{file} to write the completion function to. The C{file} must have L{bytes} I/O semantics. @type descriptions: C{dict} @ivar descriptions: A dict mapping long option names to alternate descriptions. When this variable is defined, the descriptions contained here will override those descriptions provided in the optFlags and optParameters variables. @type multiUse: C{list} @ivar multiUse: An iterable containing those long option names which may appear on the command line more than once. By default, options will only be completed one time. @type mutuallyExclusive: C{list} of C{tuple} @ivar mutuallyExclusive: A sequence of sequences, with each sub-sequence containing those long option names that are mutually exclusive. That is, those options that cannot appear on the command line together. @type optActions: C{dict} @ivar optActions: A dict mapping long option names to shell "actions". These actions define what may be completed as the argument to the given option, and should be given as instances of L{twisted.python.usage.Completer}. Callables may instead be given for the values in this dict. The callable should accept no arguments, and return a C{Completer} instance used as the action. @type extraActions: C{list} of C{twisted.python.usage.Completer} @ivar extraActions: Extra arguments are those arguments typically appearing at the end of the command-line, which are not associated with any particular named option. That is, the arguments that are given to the parseArgs() method of your usage.Options subclass. c