ó
AqzRc           @   s,   d  Z  d d l Z d e f d „  ƒ  YZ d S(   s'   
Git command argument handling helpers
iÿÿÿÿNt   GitArgsc           B   sM   e  Z d  Z d „  Z e d „  ƒ Z d „  Z d „  Z d „  Z g  d „ Z	 RS(   s@  
    Handle arguments to git commands

    >>> GitArgs('-h', '--no-foo').args
    ['-h', '--no-foo']
    >>> GitArgs('-n', 123).args
    ['-n', '123']
    >>> GitArgs().add('--more-foo', '--less-bar').args
    ['--more-foo', '--less-bar']
    >>> GitArgs().add(['--foo', '--bar']).args
    ['--foo', '--bar']
    >>> GitArgs().add_cond(1 > 2, '--opt', '--no-opt').args
    ['--no-opt']
    >>> GitArgs().add_true(True, '--true').args
    ['--true']
    >>> GitArgs().add_false(True, '--true').args
    []
    >>> GitArgs().add_false(False, '--false').args
    ['--false']
    c         G   s   g  |  _  |  j | ƒ d  S(   N(   t   _argst   add(   t   selft   args(    (    s0   /usr/lib/python2.7/dist-packages/gbp/git/args.pyt   __init__-   s    	c         C   s   |  j  S(   N(   R   (   R   (    (    s0   /usr/lib/python2.7/dist-packages/gbp/git/args.pyR   1   s    c         G   s   xˆ | D]€ } t  | t ƒ r/ |  j j | ƒ q t  | t j ƒ rq xC t | ƒ D] } |  j j t | ƒ ƒ qN Wq |  j j t | ƒ ƒ q W|  S(   s0   
        Add arguments to argument list
        (   t
   isinstancet
   basestringR   t   appendt   collectionst   Iterablet   itert   str(   R   R   t   argt   i(    (    s0   /usr/lib/python2.7/dist-packages/gbp/git/args.pyR   5   s    c         G   s   | r |  j  | Œ  n  |  S(   s°   
        Add I{args} if I{condition} is C{True}

        @param condition: the condition to test
        @type condition: C{bool}
        @param args: arguments to add
        (   R   (   R   t	   conditionR   (    (    s0   /usr/lib/python2.7/dist-packages/gbp/git/args.pyt   add_trueD   s    c         G   s   |  j  | | Œ |  S(   s±   
        Add I{args} if I{condition} is C{False}

        @param condition: the condition to test
        @type condition: C{bool}
        @param args: arguments to add
        (   R   (   R   R   R   (    (    s0   /usr/lib/python2.7/dist-packages/gbp/git/args.pyt	   add_falseP   s    c         C   s'   | r |  j  | ƒ n |  j  | ƒ |  S(   st  
        Add option I{opt} to I{alist} if I{condition} is C{True}
        else add I{noopt}.

        @param condition: condition
        @type condition: C{bool}
        @param opt: option to add if I{condition} is C{True}
        @type opt: C{str} or C{list}
        @param noopt: option to add if I{condition} is C{False}
        @type noopt: C{str} or C{list}
        (   R   (   R   R   t   optt   noopt(    (    s0   /usr/lib/python2.7/dist-packages/gbp/git/args.pyt   add_cond[   s    (
   t   __name__t
   __module__t   __doc__R   t   propertyR   R   R   R   R   (    (    (    s0   /usr/lib/python2.7/dist-packages/gbp/git/args.pyR       s   				(   R   R	   t   objectR    (    (    (    s0   /usr/lib/python2.7/dist-packages/gbp/git/args.pyt   <module>   s   