ok

Mini Shell

Direktori : /proc/self/root/proc/self/root/proc/self/root/lib/python2.7/site-packages/yum/
Upload File :
Current File : //proc/self/root/proc/self/root/proc/self/root/lib/python2.7/site-packages/yum/sqlutils.pyc

�
8M�bc@s�dZyddlZWnek
r5ddlZnXdefd��YZdddd�Zd	�Zdd
�Z	dd�Z
ejdd
kr�e
Zne	Zd�Z
d�ZdS(s�
utility functions to handle differences in pysqlite versions
These are from Wichert Akkerman <wichert@deephackmode.org>'s python-dhm
http://www.wiggy.net/code/python-dhm
i����Nt
TokenizeErrorcBseZdZRS(sTokenizer error class(t__name__t
__module__t__doc__(((s0/usr/lib/python2.7/site-packages/yum/sqlutils.pyRss 	
s"s\cCs�|gddf\}}}}y,x%|rH|d|krCd}n�|dkrl|d|krl|d}n�|d|kr�|dkr�||d7}q;|j|�d}x�|d|kr�|d}q�Wnk|d|kr|dkr�|d}n||d7}|d}n'|dkr-|d}n||d7}|d}q$WWntk
rftd�nX|rytd�n|dkr�|j|�n|S(s�String tokenizer

    This function tokenizes a string while taking quotation and
    escaping into account.

      >>> import dhm.strtools
      >>> dhm.strtools.Tokenize("this is a test")
      ['this', 'is', 'a', 'test']
      >>> dhm.strtools.Tokenize("this "is a" test")
      ['this', 'is a', 'test']
      >>> dhm.strtools.Tokenize("this \"is\" a test")
      ['this', '"is"', 'a', 'test']
      >>> dhm.strtools.Tokenize("this "is a test")
      Traceback (most recent call last):
        File "<stdin>", line 1, in ?
        File "/usr/local/lib/python2.2/site-packages/dhm/strtools.py", line 80, in Tokenize
          raise TokenizeError, "Unexpected end of string in quoted text"
      dhm.strtools.TokenizeError: Unexecpted end of string in quoted text

    @param        str: string to tokenize
    @type         str: string
    @param whitespace: whitespace characters separating tokens
    @type  whitespace: string
    @param     quotes: legal quoting characters
    @type      quotes: string
    @param    escapes: characters which can escape quoting characters
    @type     escapes: string
    @return: list of tokens
    @rtype:  sequence of strings
    iisUnexpected end of strings'Unexpected end of string in quoted textN(tNonetappendt
IndexErrorR(tstrt
whitespacetquotestescapestbufferttokenstcurtokentquote((s0/usr/lib/python2.7/site-packages/yum/sqlutils.pytTokenizes<		






c	Cst|dd�}g}d}x�|D]�}|jd�r`|j|d d|�|d7}q%|jd�s~|jd�r�|d	 d|}||d7}|j|�|d7}q%|j|�q%Wi}d}x&|D]}||d
|<|d7}q�Wdj|�|fS(s�Convert from qmark to pyformat parameter style.

    The python DB-API 2.0 specifies four different possible parameter
    styles that can be used by drivers. This function converts from the
    qmark style to pyformat style.

    @param  query: SQL query to transform
    @type   query: string
    @param params: arguments to query
    @type  params: sequence of strings
    @return: converted query and parameters
    @rtype:  tuple with the new command and a dictionary of arguments
    R	t'it?i����s%%(param%d)ss?,s?)i����sparam%dt (RtendswithRtjoin(	tquerytparamsRtoutputtcountttokentntokentdicttparam((s0/usr/lib/python2.7/site-packages/yum/sqlutils.pytQmarkToPyformatgs&




cCsJ|dkr|j|�S|j�}t||�\}}|j||�S(s�
    Execute a python < 2.5 (external sqlite module) style query.

    @param cursor: A sqlite cursor
    @param query: The query to execute
    @param params: An optional list of parameters to the query
    N(RtexecutetstripR(tcursorRRtqtp((s0/usr/lib/python2.7/site-packages/yum/sqlutils.pytexecuteSQLPyFormat�s

cCs)|dkr|j|�S|j||�S(s�
    Execute a python 2.5 (sqlite3) style query.

    @param cursor: A sqlite cursor
    @param query: The query to execute
    @param params: An optional list of parameters to the query
    N(RR(R RR((s0/usr/lib/python2.7/site-packages/yum/sqlutils.pytexecuteSQLQmark�s
iicCsgd}d|ksd|kr]d}|jdd�}|jdd�}|jdd�}n||fS(	s< Apply SQLite escaping, if needed. Returns pattern and esc. tt_t%s ESCAPE "!"t!s!!s!%s!_(treplace(tpatterntesc((s0/usr/lib/python2.7/site-packages/yum/sqlutils.pytsql_esc�scCstg}xg|D]_}d|kr#gSt|�\}}|jdd�}|jdd�}|j||f�q
W|S(sZ Converts patterns to SQL LIKE format, if required (or gives up if
        not possible). t[t*R'RR&(R,R)R(tpatternstretR*R+((s0/usr/lib/python2.7/site-packages/yum/sqlutils.pytsql_esc_glob�s
(Rtsqlite3tsqlitetImportErrort	ExceptionRRRRR#R$tversion_infot
executeSQLR,R1(((s0/usr/lib/python2.7/site-packages/yum/sqlutils.pyt<module>s
H	&
		

Zerion Mini Shell 1.0