Your IP : 216.73.216.196


Current Path : /opt/alt/python37/lib/python3.7/site-packages/clint/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib/python3.7/site-packages/clint/__pycache__/arguments.cpython-37.pyc

B


��]% �@sXdZddlmZddlZddlmZddlmZddlm	Z	m
Z
dZGd	d
�d
e�Z
dS)zT
clint.arguments
~~~~~~~~~~~~~~~

This module provides the CLI argument interface.

�)�absolute_importN)�argv)�OrderedDict�)�expand_path�
is_collection)�Argsc@seZdZdZd<dd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zed(d)��Zed*d+��Zed,d-��Zd.d/�Zd0d1�Zed2d3��Zed4d5��Zed=d6d7��Zed8d9��Zed:d;��Z dS)>rzCLI Argument management.NFcCs*|s |stdd�|_q&g|_n||_dS)Nr)r�_args)�self�args�no_argv�r
�@/opt/alt/python37/lib/python3.7/site-packages/clint/arguments.py�__init__s
z
Args.__init__cCs
t|j�S)N)�lenr	)r
r
r
r�__len__$szArgs.__len__cCsdt|j�S)Nz	<args %s>)�reprr	)r
r
r
r�__repr__(sz
Args.__repr__cCs$y
|j|Stk
rdSXdS)N)�all�
IndexError)r
�ir
r
r�__getitem__,s
zArgs.__getitem__cCs|�|�dk	S)N)�first)r
�xr
r
r�__contains__3szArgs.__contains__cCs$y
|j|Stk
rdSXdS)z+Returns argument at given index, else none.N)rr)r
rr
r
r�get7s
zArgs.getcCs|j|�|�S)z2Returns first argument that contains given string.)r�
first_with)r
rr
r
r�get_with?sz
Args.get_withcs8�fdd�}t|�r,x|D]}||�qWn||�dS)z5Removes given arg (or list thereof) from Args object.cs"��|�}|dk	r�j�|�dS)N)rr	�pop)r�found)r
r
r�_removeGs
zArgs.remove.<locals>._removeN)r)r
rr �itemr
)r
r�removeDs

zArgs.removecCs&y|j�|�Stk
r dSXdS)z4Removes and Returns value at given index, else none.N)r	rr)r
rr
r
rrSszArgs.popcCst|�|��S)z:Tests if given string is contained in any stored argument.)�boolr)r
rr
r
r�any_contain[szArgs.any_containcCs
|�|�S)z\Tests if given object is in arguments list.
           Accepts strings and lists of strings.)r)r
rr
r
r�containsasz
Args.containscsF�fdd�}t|�r:x |D]}||�}|dk	r|SqWdS||�SdS)z<Returns first found index of given value (or list of values)cs*y�j�t|��Stk
r$dSXdS)N)r�index�str�
ValueError)r)r
r
r�_findkszArgs.first.<locals>._findN)r)r
rr)r!rr
)r
rrhs
z
Args.firstcsB�fdd�}t|�r6x|D]}||�}|r|SqWdS||�SdS)z>Returns first found index containing value (or list of values)csBy(x"�jD]}||kr
�j�|�Sq
WWntk
r<dSXdS)N)rr&r()r�arg)r
r
rr)~szArgs.first_with.<locals>._findN)r)r
rr)r!rr
)r
rr{s
zArgs.first_withcsB�fdd�}t|�r6x|D]}||�}|r|SqWdS||�SdS)zBReturns first found index not containing value (or list of values)csBy(x"�jD]}||kr
�j�|�Sq
WWntk
r<dSXdS)N)rr&r()rr*)r
r
rr)�sz!Args.first_without.<locals>._findN)r)r
rr)r!rr
)r
r�
first_without�s
zArgs.first_withoutcCsbg}xP|jD]F}t|�r>x8|D]}|�|�r|�|�PqWq|�|�r|�|�qWt|dd�S)zCReturns all arguments beginning with given string (or list thereof)T)r)rr�
startswith�appendr)r
rr	r*�_xr
r
r�
start_with�s



zArgs.start_withcCshyNt|�r>x@|D](}||j|ks0||j|kr4dSdSqWn||j|kSWntk
rbdSXdS)z2Tests if given [list of] string is at given index.TFN)rrr)r
rr&r.r
r
r�contains_at�s

zArgs.contains_atcCs(y|j|dStk
r"dSXdS)zUReturns true if argument exists at given index.
           Accepts: integer.
        TFN)rr)r
rr
r
r�has�s

zArgs.hascCsNy4y|j�|�}Wntk
r&dSX|j|dStk
rHdSXdS)zGReturns value of argument after given found argument (or list thereof).Nr)rr&r(r)r
rrr
r
r�value_after�szArgs.value_aftercCspttdd�d�}d}xV|jD]L}|�d�rB|}|�|tdd��q|rX||j�|�q|dj�|�qW|S)zZExtracts --flag groups from argument list.
           Returns {format: Args, ...}
        T)r)�_N�-r3)rrrr,�
setdefaultr	r-)r
�
collection�_current_groupr*r
r
r�grouped�s
zArgs.groupedcCs$y
|jdStk
rdSXdS)zReturns last argument.���N)rr)r
r
r
r�last�s
z	Args.lastcCs|jS)zReturns all arguments.)r	)r
r
r
rrszArgs.allcCs^g}xL|jD]B}t|�r<x4|D]}||kr|�|�PqWq||kr|�|�qWt|dd�S)z?Returns all arguments containing given string (or list thereof)T)r)rrr-r)r
rr	r*r.r
r
r�all_withs

z
Args.all_withcCs^g}xL|jD]B}t|�r<x4|D]}||kr|�|�PqWq||kr|�|�qWt|dd�S)zCReturns all arguments not containing given string (or list thereof)T)r)rrr-r)r
rr	r*r.r
r
r�all_withouts

zArgs.all_withoutcCs
|�d�S)z4Returns Arg object including only flagged arguments.r4)r/)r
r
r
r�flags/sz
Args.flagscCs
|�d�S)z/Returns Arg object excluding flagged arguments.r4)r<)r
r
r
r�	not_flags6szArgs.not_flagscCsXg}xN|jD]D}x>t|�D]2}tj�|�r|rB|�tj�|��q|�|�qWqW|S)z@Returns an expanded list of all valid paths that were passed in.)rr�os�path�existsr-�abspath)r
�absolute�_pathsr*r@r
r
r�files=sz
Args.filescCsBg}x0|jD]&}tt|��stj�|�s|�|�qWt|dd�S)z8Returns a list of all arguments that aren't files/globs.T)r)rrrr?r@rAr-r)r
r	r*r
r
r�	not_filesNszArgs.not_filescCs
t|j�S)z9Returns a copy of Args object for temporary manipulation.)rr)r
r
r
r�copy[sz	Args.copy)NF)F)!�__name__�
__module__�__qualname__�__doc__rrrrrrrr"rr$r%rrr+r/r0r1r2�propertyr8r:rr;r<r=r>rErFrGr
r
r
rrs<



r)rK�
__future__rr?�sysr�collectionsr�utilsrr�__all__�objectrr
r
r
r�<module>	s