-
ʥo<c       s]    d  Z  * , h  d d <d d <d d <d d <d	 d
 <d d <d d <Z ; y < e d i d  d Z Wn = > d Z n XC d k Z D d k Z E d k Z F d k Z G d k Z L d k	 l	 Z	 S d f  d     YZ
 d e
 f d     YZ d e f d     YZ d e	 f d     YZ e d j o e i   n d S(   s  Base class for building command line applications.

  The CommandLineApp class makes creating command line applications as
  simple as defining callbacks to handle options when they appear in
  'sys.argv'.

  To do

    - enhance intelligence of option handling

        - boolean options should not need to be implemented as functions

        - enable/disable with/without options

        - type checking for option arguments

s   $RCSfile: CommandLineApp.py,v $s   module_names    Doug Hellmann <doug@hellfly.net>s   creators   Open Sources   projects   Tue, 23-May-2000 07:11:43 EDTs   createds   $Author: doughellmann $s   authors   $Revision: 1.8 $s   versions   $Date: 2002/02/17 12:44:58 $s   dates    i   s   0.0N(   s   StreamFlushTests   CommandLineAppc      s  S d  Z  _ a d Z c d Z e d Z j d Z k d Z l d Z m d Z r d Z s d Z	 t d Z
 u d	 Z v d
 Z x d Z z d Z | e i d d  Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z 
d   Z d   Z d   Z $d   Z Ed   Z d   Z  d   Z! d   Z" d   Z# d    Z$ <d!   Z% `e& d"  Z' xd d e& d#  Z( d$ d%  Z) d d&  Z* d'   Z+ d(   Z, RS()   s  Base class for building command line applications.
    
    Define a __doc__ string for the class to explain what the
    program does.

    When the argumentsDescription field is not empty,
    it will be printed appropriately in the help message.
    
    When the examplesDescription field is not empty,
    it will be printed last in the help message when
    the user asks for help.
    s    s   Reserved option names   Help requesteds   Invalid value for options   Invalid argument to programs   optionHandler_s   optTypeLongs   optTypeShorts   optTakesParams
   optNoParami   s   0.0c    s=   | } ~ | |  _   |  i    |  i    |  i   d S(   s   Initialize CommandLineApp.N(   s   commandLineOptionss   selfs   __learnValidOpts__s   __init_getopt__s   appInit(   s   selfs   commandLineOptions(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   __init__| s
   c    s      d S(   s   Override this method to perform application initialization.

        This hook may be easier to override than the __init__ method,
        since it takes no parameters.
        N(    (   s   self(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   appInit s   c    st      d }  xT |  i D ]F \ } } } } }  | | }  | |  i j o  | d } n q W | Sd S(   s   Given the information learned through self.__learnValidOpts__,
        construct a string to be passed to getopt to set the valid
        single character option syntax.
        s    s   :N(   s   sass   selfs   shortOptionss   optNames   optTakesValues   optLongOrShorts   ignores   optTakesParam(   s   selfs   ignores   optNames   optTakesValues   optLongOrShorts   sas(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   shortOptionsStringGet s   	 c    s      g  }  x |  i D ] \ } } } } }  | |  i j o  d | } n
  | }  | i	 |   | i
 d  d j o)  | i d d  }  | i	 |  n q W | Sd S(   s   Given the information learned through self.__learnValidOpts__,
        construct a list to be passed to getopt to set the valid
        long form option syntax.
        s   %s=s   -i    s   _N(   s   lals   selfs   longOptionss   optNames   optTakesValues   optLongOrShorts   ignores   optTakesParams   opts   appends   finds   replaces   new_opt(   s   selfs   lals   optNames   optTakesValues   optLongOrShorts   opts   ignores   new_opt(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   longOptionsListGet s   	 	c    s      |  i   d }  |  i   }  | i d   y1  t i |  i  |  |  \ |  _ |  _	 Wn:  t i
 j
 o( }  |  i |   t i
 |  n X d Sd S(   s   Parse the command line options.s   hs   helpN(   s   selfs   shortOptionsStringGets   shortOptionsStrings   longOptionsListGets   longOptionLists   appends   getopts   commandLineOptionss   parsedOptionss   remainingOptss   errors   messages   showHelp(   s   selfs   messages   shortOptionsStrings   longOptionList(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   __init_getopt__ s   c    s      | t |  i  }  t | i i  d j o  |  i } n  |  i
 }  t |  d j o%  |  i }  | i d d  } n  |  i }  | | | | | f Sd S(   s\  Return an info tuple for an option handler method.

        Given a method name, return the information tuple
        for that option to the program.  The tuple contains:

          (option name,
          flag showing whether the option takes a value,
          flag indicating long or short form option,
          help string for option)
        i   s   _s   -N(   s
   methodNames   lens   selfs   optionHandlerPrefixs
   optionNames	   methodRefs	   func_codes   co_varnamess   optTakesParams   optionTakesValues
   optNoParams   optTypeLongs   optionLongForms   replaces   optTypeShort(   s   selfs
   methodNames	   methodRefs   optionLongForms   optionTakesValues
   optionName(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   constructOptionInfo s   
c    s'      d |  i | f }  | Sd S(   sh   Given the name of an option, construct 
        and return the name of the method to handle it.
        s   %s%sN(   s   selfs   optionHandlerPrefixs   options
   methodName(   s   selfs   options
   methodName(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   methodNameFromOption s   c    s      x$ | i D ] }  |  i |  q W x | i i   D ] }  | i | }  | t	 |  i
   |  i
 j o t |  i d j od  |  i | |  }  | d d j o  t i d  n  | |  i | d < | |  i | <n qC Wd S(   s?   Scan through the inheritence hierarchy to find option handlers.s   functioni    s   hN(   s   cRefs	   __bases__s   parentClasss   selfs   scanClassForOptionss   __dict__s   keyss   componentNames	   components   lens   optionHandlerPrefixs   types   __name__s   constructOptionInfos
   optionInfos   CommandLineApps   ReservedOptionNames
   allOptionss
   allMethods(   s   selfs   cRefs
   optionInfos   parentClasss   componentNames	   component(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   scanClassForOptions s    	 	6c    s      g  |  _  g  |  _  h  |  _  h  |  _  |  i |  i   xk |  i i   D ]W }  |  i | }  | d |  i
 j o  |  i i |  n  |  i i |  q\ Wd S(   s  Derive the options which are valid for this application.

        Examine the methods defined for this class to
        learn what options the developer wants to use.  Options
        can be added by defining an optionHandler method with a
        name like optionHandler_<option name>.  If the option
        handler method takes an argument, the option will require
        an argument as well.
        i   N(   s   selfs   shortOptionss   longOptionss
   allOptionss
   allMethodss   scanClassForOptionss	   __class__s   keyss
   optionNames
   optionInfos   optTypeShorts   append(   s   selfs
   optionInfos
   optionName(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   __learnValidOpts__ s   	 	c    s    x| |  i D]n } | d d j o  |  i   |  i d  n | d d j o  |  i   |  i d  n q Wd  S(   Ni    s   -hs   Help message was printed.s   --help(   s   selfs   parsedOptionss   options   showHelps   HelpRequesteds   showVerboseHelp(   s   selfs   option(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   handleHelpOption s    	c    s   
d S(   s   Main body of your application.

        This is the main portion of the app, and is run after all of
        the arguments are processed.  Override this method to implment
        the primary processing section of your application.
        N(    (   s   selfs   args(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   main
s   c    s   | } | d  d j o | d } n& | d d j o | d } n | i d d  } |  i | Sd S(   s+   Get the stored information about an option.i   s   --i    s   -i   s   _N(   s   options
   optionBases   replaces   selfs
   allOptions(   s   selfs   options
   optionBase(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   infoForOptions   	c    sK    t  |  d j o !| i d d  } n "|  i | d Sd S(   s5   Return a reference to the method with the given name.i   s   -s   _i   N(   s   lens
   methodNames   replaces   selfs
   allMethods(   s   selfs
   methodName(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   methodReferenceFromNames   c 	   s  $*+y*,|  i   -x |  i D-] \ } } .| } /x& /| d d j o 0| d } qD W1|  i |  } 2|  i |  } 3|  i
 |  } 4| d |  i j oL 5t i | d  } 6t |  d j o 7| } n 8| |  |  n :| |   q& W;t |  i t |  i   } Wnb <t j
 oS =y >|  i   Wn, ?t j
 o @t i i d  An XBd } n XC| Sd S(   s   Entry point.

        Process options and execute callback functions as needed.
        This method should not need to be overridden, if the main()
        method is defined.
        i    s   -i   s   ,s   Cancelled by user.
N(   s   selfs   handleHelpOptions   parsedOptionss   options   optValues   cleanOptions   methodNameFromOptions   methNames   methodReferenceFromNames   methods   infoForOptions   optInfos   optTakesParams   strings   splits   optArgs   lens   applys   mains   tuples   remainingOptss	   exit_codes   KeyboardInterrupts   interruptHandlers   AttributeErrors   syss   stderrs   write(	   s   selfs   cleanOptions   options   optInfos	   exit_codes   methNames   optValues   optArgs   method(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   run$s6    	 "c    s  EJNd } Sd } Tg  } Ud g }	 Vg  } W|  i i   } X| i	   \x | D\] } ]|  i |  \ } } } } } _|  i |  } `|  i |  } a| |  i j o; b| |  i j o c| i |  n e| i |  n5 g| |  i j o h|	 i |  n j| | } q_ Wod | t i d | f } sx^ | Ds]S } t|  i |  } u|  i |  } v| i i d }
 wd | | |
 f } qZW{x$ |	 D{] } |d | | f } qWx^ | D]S } |  i |  } |  i |  } | i i d }
 d	 | | |
 f } qW|  i o d
 | |  i f } n d | } | Sd S(   s   Return syntax statement.
        
        Return a simplified form of help including only the 
        syntax of the command.
        s    s   hs   helps   %s%s [-%s] i    i   s   %s
		[-%s %s] s   %s
		[--%s] s   %s
		[--%s=%s] s   %s

		%ss   %s

N(   s   helpMsgs   shortOptionNoArgss   shortOptionArgss   longOptionNoArgss   longOptionArgss   selfs
   allOptionss   keyss   allOptionNamess   sorts   options   infoForOptions   optNames   optTakesValues   optLongOrShorts   ignores   methodNameFromOptions
   methodNames   methodReferenceFromNames   methods   optTakesParams   optTypeLongs   appends   syss   argvs	   func_codes   co_varnamess	   valueNames   shortArgumentsDescription(   s   selfs   ignores
   methodNames   options   optLongOrShorts   helpMsgs   methods   allOptionNamess   optNames   longOptionNoArgss	   valueNames   shortOptionArgss   longOptionArgss   shortOptionNoArgss   optTakesValue(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   getSimpleSyntaxHelpStringEsP   				
 	!
 	
 	
 	c    s4   |  i   } | GHd GHHd Sd S(   s   Show basic syntax message.s   	For more details, use --help.N(   s   selfs   getSimpleSyntaxHelpStrings   txt(   s   selfs   txt(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   showSimpleSyntaxHelps   c    st  d } d | | | f } t |  | j o" d | } d d | } n$ d | } | | } d } d | | f } t	 i
 | d  }	 |	 o$ |	 d	 } d
 | | f } n d }
 xw |	 d D]h } t	 i |  } | o |
 o d	 }
 n | o d }
 n d | d | | f } q W| d } | Sd S(   s$   Build the help string for an option.i   s   	%s%s%ss   %s
s   	%ss    s   %%-%dss   %s%ss   
i    s   %s%s
i   s   %s	%s%s
N(   s   indent_sizes
   dashInserts   options   valueInserts
   baseStrings   lens   description_prefixs
   format_strs   optionStrings   strings   splits	   docStrings   docStringLiness   lines
   emit_blanks   strip(   s   selfs
   dashInserts   options   valueInserts	   docStrings   optionStrings
   baseStrings   description_prefixs   indent_sizes   docStringLiness
   emit_blanks   lines
   format_str(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   getOptionHelpStrings2   		
	 	
c    s'   |  i | | | |  GHd S(   s6   Format and print the help message for a single option.N(   s   selfs   getOptionHelpStrings
   dashInserts   options   valueInserts	   docString(   s   selfs
   dashInserts   options   valueInserts	   docString(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   showOptionHelps   c    s!   |  i   } | GHd S(   s5   Show a full description of all options and arguments.N(   s   selfs   getVerboseSyntaxHelpStrings   txt(   s   selfs   txt(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   showVerboseSyntaxHelps   c    s  d } d | |  i   f } t i | |  i d d d d  |  i d d d d	  g d  } |  i i   } | i	   h  } g  } x | D] }
 |  i |
  \ } } } } } |  i |
  } |  i |  } | i | g   } | o  | i |
  n | i |
  | | | <q Wg  i } | i   D] } | | d
  qh~ } | i	   x| D]}	 |	 d } g  } x|	 D] }
 |  i |
  \ } } } } } |  i |
  } |  i |  } | |  i  j o | i! i" d
 } n
 d } | |  i$ j o( d } | o d | } n n% d }  | o !d | } n "| i d | | | f  qW'd i |  } )|  i |  } *|  i |  } +| i' i(   } ,t i | |  i d .| /d 0|  g 3d  } 4| d } qW6|  i* o 7d | |  i* f } n :| Sd S(   s$  Return the full description of the options and arguments.

        Show a full description of the options and arguments to the
        command in something like UNIX man page format. This includes
        
          - a description of each option and argument, taken from the
                __doc__ string for the optionHandler method for
                the option
                
          - a description of what additional arguments will be processed,
                taken from the class member argumentsDescription
                
        s   
SYNTAX:

	s   %s%sOPTIONS:

s   -s   hs    s"   Displays abbreviated help message.s   --s   helps$   Displays complete usage information.i   i    s   =%ss    %ss   %s%s%ss   , s   
s   %sARGUMENTS:

%s

N(+   s   helpMsgs   selfs   getSimpleSyntaxHelpStrings   strings   joins   getOptionHelpStrings
   allOptionss   keyss   allOptionNamess   sorts   option_aliasess   reduced_optionss   options   infoForOptions   optNames   optTakesValues   optLongOrShorts   ignores   methodNameFromOptions
   methodNames   methodReferenceFromNames   methods   gets   existing_aliasess   appends   _[1]s   itemss   xs   grouped_optionss
   option_sets   first_options   option_help_stringss   optTakesParams	   func_codes   co_varnamess   valueInserts   optTypeLongs
   dashInserts   option_help_strings   __doc__s   rstrips	   docStrings   argumentsDescription(   s   selfs   reduced_optionss
   methodNames
   dashInserts   option_aliasess   grouped_optionss   option_help_stringss   allOptionNamess   optTakesValues
   option_sets   options   _[1]s   first_options   optLongOrShorts   helpMsgs	   docStrings   valueInserts   ignores   optNames   option_help_strings   xs   methods   existing_aliases(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   getVerboseSyntaxHelpStringsr   			
 	!  
 		
 	!		
	
!c    s   <JOd GHPd t  i d GHQ|  i i o[ Rd GHSxA t i |  i i d  DS]$ } Tt i |  } Vd | GHqU WWd GHn X|  i	   Y|  i
 o' Zd GH[d GH\|  i
 GH]d GHn ^d Sd S(   s  Show a verbose help message explaining how to use the program.

        This includes:
        
           * a verbose description of the program, taken from the __doc__
             string for the class
             
           * an explanation of each option, produced by
             showVerboseSyntaxHelp()
             
           * examples of how to use the program for specific tasks,
             taken from the class member examplesDescription
             
        s    s   %s
i    s   
s   	%ss	   EXAMPLES:N(   s   syss   argvs   selfs	   __class__s   __doc__s   strings   splits   lines   strips   showVerboseSyntaxHelps   examplesDescription(   s   selfs   line(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   showVerboseHelp<s"    	c    s   `abHc|  i o dd |  i i |  i f GHn f|  i i GHgHn| oC od GHpd G| GHqd GHrd GHsd t i d GHtd GHn u|  i   vd Sd S(   s'   Display help message when error occurs.s   %s version %ss    s   ERROR: s   %s
i    N(   s   selfs   _app_versions	   __class__s   __name__s   errorMessages   syss   argvs   showSimpleSyntaxHelp(   s   selfs   errorMessage(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   showHelp`s   
c    so   x|  i | j oK | o t i } n t i } | i d |  | i	   n d Sd S(   s,  Print a status message to output.
        
        Arguments
        
            msg=''            -- The status message string to be printed.
            
            verboseLevel=1    -- The verbose level to use.  The message
                              will only be printed if the current verbose
                              level is >= this number.
                              
            error=None        -- If true, the message is considered an error and
                              printed as such.
                              
        s   %s
N(
   s   selfs   verboseLevels   errors   syss   stderrs   outputs   stdouts   writes   msgs   flush(   s   selfs   msgs   verboseLevels   errors   output(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   statusMessagexs   
i   c    sN   t  i t d   | i    d  } |  i d | | f |  Sd S(   s:   Print a method entry debug statement with named arguments.c    s   d |  S(   Ns   %s=%s(   s   pair(   s   pair(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   <lambda>s    s   , s   %s(%s)N(
   s   strings   joins   maps   nargss   itemss   arg_strs   selfs   statusMessages
   methodNames
   debugLevel(   s   selfs
   methodNames
   debugLevels   nargss   arg_str(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   debugMethodEntrys   'c    s!   |  i d | d  d S(   s   Print a message as an error.s
   ERROR: %s
i    N(   s   selfs   statusMessages   msg(   s   selfs   msg(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   errorMessages   c    sA   |  i d |  _ |  i d |  i d  d Sd S(   sg   Increment the verbose level.
        Higher levels are more verbose.
        The default is 1.
        i   s   New verbose level is %di   N(   s   selfs   verboseLevels   statusMessage(   s   self(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   optionHandler_vs
   
c    s   d |  _ d S(   s   Turn on quiet mode.i    N(   s   selfs   verboseLevel(   s   self(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   optionHandler_qs   (-   s   __doc__s   argumentsDescriptions   shortArgumentsDescriptions   examplesDescriptions   ReservedOptionNames   HelpRequesteds   InvalidOptionValues   InvalidArguments   optionHandlerPrefixs   optTypeLongs   optTypeShorts   optTakesParams
   optNoParams   verboseLevels   _app_versions   syss   argvs   __init__s   appInits   shortOptionsStringGets   longOptionsListGets   __init_getopt__s   constructOptionInfos   methodNameFromOptions   scanClassForOptionss   __learnValidOpts__s   handleHelpOptions   mains   infoForOptions   methodReferenceFromNames   runs   getSimpleSyntaxHelpStrings   showSimpleSyntaxHelps   getOptionHelpStrings   showOptionHelps   showVerboseSyntaxHelps   getVerboseSyntaxHelpStrings   showVerboseHelps   Nones   showHelps   statusMessages   debugMethodEntrys   errorMessages   optionHandler_vs   optionHandler_q(    (    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   CommandLineAppS sT   																!I&
p$
s   TestAppc      se   d  Z  d Z d Z d Z d   Z d   Z d   Z d   Z d   Z RS(	   s      This is a simple test application.

    It defines several optionHandler methods to handle
    some example options.  One option of each type is
    handled by an example.

    The __doc__ string for the class should contain
    the info about how to use the application. sL       a description of how to use the program 
    in various ways goes here.
s/       a description of other arguments goes here
s   <default value>c    s"   d |  i i | f GHd S(   s   get a value for as   %s: handling a: %sN(   s   selfs	   __class__s   __name__s   optValue(   s   selfs   optValue(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   optionHandler_as   c    s   d |  i i f GHd S(   s   toggle the value of bs   %s: handling bN(   s   selfs	   __class__s   __name__(   s   self(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   optionHandler_bs   c    s   d |  i i f GHd S(   s   boolean options   %s: handling long-form-optionN(   s   selfs	   __class__s   __name__(   s   self(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   optionHandler_long_form_options   c    s"   d |  i i | f GHd S(   si   First line of help.
            get a value for long form option

            Default:<manually inserted>s%   %s: handling long-form-with-value: %sN(   s   selfs	   __class__s   __name__s   optValue(   s   selfs   optValue(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys"   optionHandler_long_form_with_values   c    s&   d |  i i f G|  i GHd S(   s	   main loops   %s: LEFT OVERS: N(   s   selfs	   __class__s   __name__s   remainingOpts(   s   selfs   args(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   mains   (	   s   __doc__s   examplesDescriptions   argumentsDescriptions   defaultLongFormOptions   optionHandler_as   optionHandler_bs   optionHandler_long_form_options"   optionHandler_long_form_with_values   main(    (    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   TestApps   				s   SubClassTestAppc      s>   d  Z  d   Z d   Z d   Z d   Z RS(   s   new doc stringc    s)   d G| GHt i |  |  d S(   s   Doc string for SubClassTestApps   New A:N(   s   newAs   TestApps   optionHandler_as   self(   s   selfs   newA(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   optionHandler_as   c    s   d |  i i GHd S(   s   Doc string for SubClassTestApps   %s -zN(   s   selfs	   __class__s   __name__(   s   self(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   optionHandler_zs   c    sX   t  |  t  g   j o d |  i i G| GHn d |  i i | f GHd S(   s   Doc string for SubClassTestApps   %s -z list: s   %s -z string: %sN(   s   types
   optionLists   selfs	   __class__s   __name__(   s   selfs
   optionList(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   optionHandler_option_lists   c    s*   t  t i |  f |  d  d  S(   Ns   not an error(   s   applys   TestApps   mains   selfs   args(   s   selfs   args(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   mains   (   s   __doc__s   optionHandler_as   optionHandler_zs   optionHandler_option_lists   main(    (    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   SubClassTestApps
   	s   CLATestCasec      sM   d   Z  d   Z d   Z ed   Z td   Z d   Z RS(   Nc    s   d } yU t i } t i } d k l } |   t _ t _ t |  i
   WnC t i j
 o1 t i i   } | t _ | t _ n* X | t _ | t _ |  i d  | Sd  S(   Ns    (   s   StringIOs   Help was not requested.(   s   output_texts   syss   stdouts
   old_stdouts   stderrs
   old_stderrs	   cStringIOs   StringIOs   SubClassTestApps   argss   runs   HelpRequesteds   getvalues   selfs   fail(   s   selfs   argss
   old_stderrs   StringIOs
   old_stdouts   output_text(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   runAndCatchOutputs   	c    sb   |  i d g  } 	d t i d } t o! | | j p t d | | f  d  Sd  S(   Ns   -hs   
SubClassTestApp version 0.0

%s [-hbqvz] 
		[-a newA] 
		[--help] 
		[--long-form-option] 
		[--long-form-with-value=optValue] 
		[--option-list=optionList] 


	For more details, use --help.

i    s-   Unexpected help text "%s" does not match "%s"(   s   selfs   runAndCatchOutputs	   help_texts   syss   argvs   expected_help_texts	   __debug__s   AssertionError(   s   selfs	   help_texts   expected_help_text(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   testShortHelpGenerations   +c    sn   |  i d g  } t i d } d t   } bt o! | | j p t	 d | | f  cd  Sd  S(   Ns   --helpi    s  
%(app)s


	new doc string


SYNTAX:

	%(app)s [-hbqvz] 
		[-a newA] 
		[--help] 
		[--long-form-option] 
		[--long-form-with-value=optValue] 
		[--option-list=optionList] 

OPTIONS:

	-h             Displays abbreviated help message.

	--help         Displays complete usage information.

	-a newA        Doc string for SubClassTestApp


	-b             toggle the value of b


	--long-form-option
	               boolean option


	--long-form-with-value=optValue
	               First line of help.
	               get a value for long form option
	               
	               Default:<manually inserted>


	--option-list=optionList
	               Doc string for SubClassTestApp


	-q             Turn on quiet mode.


	-v             Increment the verbose level.
	               Higher levels are more verbose.
	               The default is 1.


	-z             Doc string for SubClassTestApp


ARGUMENTS:

    a description of other arguments goes here



EXAMPLES:

    a description of how to use the program 
    in various ways goes here.


s-   Unexpected help text "%s" does not match "%s"(
   s   selfs   runAndCatchOutputs	   help_texts   syss   argvs   apps   localss   expected_help_texts	   __debug__s   AssertionError(   s   selfs   expected_help_texts	   help_texts   app(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   testLongHelpGeneratoions
   C+c    so   egd t  f d     Y} o| d d g  i   p| d d g  i   q| d g  i   rd  Sd  S(   Ns   CLAOptionListTestc      s,   ghd d d g Z  id   Z me Z RS(   Ns   as   bs   cc    s8   ijkt  o$ | |  i j p t d t |   d S(   s   Expects multiple arguments.s)   Option value does not match expected (%s)N(   s	   __debug__s   optionss   selfs   expected_optionss   AssertionErrors   str(   s   selfs   options(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   optionHandler_tis   (   s   expected_optionss   optionHandler_ts   optionHandler_option_list(    (    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   CLAOptionListTestgs   s   -ts   a,b,cs   --option-lists   --option-list=a,b,c(   s   CommandLineApps   CLAOptionListTests   run(   s   selfs   CLAOptionListTest(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   testOptionListes
   c    s   tud t  f d     Y} }| d g  i   ~| d d g  i   | d g  i   | d d g  i   | d g  i   d  Sd  S(	   Ns   CLALongOptionTestc      s   uvd   Z  yd   Z RS(   Nc    s   vwxd Sd S(   s   Expects no arguments.N(    (   s   self(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   optionHandler_testvs   c    s   yz{d Sd S(   s   Expects some argumentsN(    (   s   selfs   args(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   optionHandler_test_argsys   (   s   optionHandler_tests   optionHandler_test_args(    (    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   CLALongOptionTestus   s   --tests   --test-argss   foos   --test-args=foos   --test_argss   --test_args=foo(   s   CommandLineApps   CLALongOptionTests   run(   s   selfs   CLALongOptionTest(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   testLongOptionsts   c    s   d t  f d     Y} | d d d g  i   | d d d d g  i   | d d d d d g  i   | d d d d g  i   | d d d d d g  } d f | i | _ | i   d  Sd  S(   Ns   CLALongOptionTestc      s/   d d d f Z  d   Z d   Z RS(   Ns   as   bs   cc    s
   d  S(   N(    (   s   self(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   optionHandler_ts   c    s5   t  o$ | |  i j p t d t |   d  S(   Ns"   Got %s instead of expected values.(   s	   __debug__s   argss   selfs   expected_argss   AssertionErrors   str(   s   selfs   args(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   mains   (   s   expected_argss   optionHandler_ts   main(    (    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   CLALongOptionTests   s   as   bs   cs   -ts   --(   s   CommandLineApps   CLALongOptionTests   runs   new_tests   expected_args(   s   selfs   new_tests   CLALongOptionTest(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   testArgsToMains   "(   s   runAndCatchOutputs   testShortHelpGenerations   testLongHelpGeneratoions   testOptionLists   testLongOptionss   testArgsToMain(    (    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   CLATestCases   Js   __main__(   s   __doc__s   __rcs_info__s   splits   __version__s   getopts   pprints   syss   strings   unittests   StreamFlushTests   CommandLineApps   TestApps   SubClassTestApps   CLATestCases   __name__s   main(   s   strings   CLATestCases   unittests   pprints   syss   SubClassTestApps   StreamFlushTests   getopts   TestApps   __version__s   CommandLineApps   __rcs_info__(    (    sX   /home/dhellmann/Personal/Devel/HappyDoc/dist/HappyDoc-r2_1/happydoclib/CommandLineApp.pys   ?* s&   H  W.