https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/boto/sdb/db/manager/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/boto/sdb/db/manager/__pycache__/xmlmanager.cpython-310.pyc
o

ckF[�H�@s�ddlZddlmZmZddlmZddlmZddlm	Z	m
Z
ddlmZddlm
Z
mZmZmZdZGd	d
�d
e�ZGdd�de�ZdS)
�N)�
find_class�Password)�Key)�Model)�six�encodebytes)�datetime)�getDOMImplementation�parse�parseString�Nodez%Y-%m-%dT%H:%M:%SZc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&S)'�XMLConvertera�
    Responsible for converting base Python types to format compatible with underlying
    database.  For SimpleDB, that means everything needs to be converted to a string
    when stored in SimpleDB and from a string when retrieved.

    To convert a value, pass it to the encode or decode method.  The encode method
    will take a Python native value and convert to DB format.  The decode method will
    take a DB format value and convert it to Python native format.  To find the appropriate
    method to call, the generic encode/decode methods will look for the type-specific
    method by searching for a method called "encode_<type name>" or "decode_<type name>".
    c
Cst||_t|j|jft|j|jft|j|j	ft
|j|j	ft|j|j
ft|j|jfi|_tjr8|j|jf|jt<dSdS�N)�manager�bool�encode_bool�decode_bool�int�
encode_int�
decode_intr�encode_reference�decode_referencerr�encode_password�decode_passwordr�encode_datetime�decode_datetime�type_mapr�PY2�encode_long�decode_long�long)�selfr�r"�@/usr/lib/python3/dist-packages/boto/sdb/db/manager/xmlmanager.py�__init__+s��zXMLConverter.__init__cCs*d}|jD]
}|j|jkr||j7}q|S)N�)�
childNodes�nodeType�	TEXT_NODE�data)r!�parent_node�value�noder"r"r#�get_text_value6s

�zXMLConverter.get_text_valuecCs$||jvr|j|d}||�S|S�Nr)r)r!�	item_typer+�encoder"r"r#r0=s
zXMLConverter.encodecCs.||jvr|j|d}||�S|�|�}|S)N�)rr-)r!r/r+�decoder"r"r#r2Cs


zXMLConverter.decodecCsdt|t�r+t|d�r)g}|D]}t|d�}t|��vrt}|�|�||��q|S|S|�|j|�S)Nr/)	�
isinstance�list�hasattr�getattrr�mro�appendr0�	data_type)r!�propr+�	new_value�vr/r"r"r#�encode_propKs


zXMLConverter.encode_propcCst|jtkr3t|d�r.t|d�}t|��vrt}g}|�d�D]
}|�||�}|�|�q|S|�	|�S|�|j|�S)Nr/�item)
r9r4r5r6rr7�getElementsByTagNamer2r8r-)r!r:r+r/�values�	item_noder"r"r#�decode_propZs



zXMLConverter.decode_propcC�t|�}d|S�Nz%d)r�r!r+r"r"r#rj�zXMLConverter.encode_intcCs"|�|�}|r
t|�}|Sd}|Sr)r-rrEr"r"r#rns
�zXMLConverter.decode_intcCrCrD)r rEr"r"r#rvrFzXMLConverter.encode_longcC�|�|�}t|�Sr)r-r rEr"r"r#rz�
zXMLConverter.decode_longcCs|dkrdSdS)NT�true�falser"rEr"r"r#r~szXMLConverter.encode_boolcCs|�|�}|��dkr
dSdS)NrITF)r-�lowerrEr"r"r#r�s
zXMLConverter.decode_boolcCs
|�t�Sr)�strftime�ISO8601rEr"r"r#r�s
zXMLConverter.encode_datetimecCs&|�|�}zt�|t�WSYdSr)r-r�strptimerMrEr"r"r#r�s

zXMLConverter.decode_datetimecCsXt|tj�r|S|durdS|jj�d�}|�d|j�|�dd|jj	|jj
f�|S)Nr%�object�id�class�%s.%s)r3r�string_typesr�doc�
createElement�setAttributerP�	__class__�
__module__�__name__)r!r+�val_noder"r"r#r�szXMLConverter.encode_referencecCsH|sdSz|jd}|�d�}|�d�}t|�}|�|�WSYdS)NrrQrP)r&�getAttributer�
get_by_ids)r!r+�
class_namerP�clsr"r"r#r�s


zXMLConverter.decode_referencecCs|rt|�dkrt|�SdSr.)�len�strrEr"r"r#r�szXMLConverter.encode_passwordcCrGr)r-rrEr"r"r#r�rHzXMLConverter.decode_passwordN)rYrX�__qualname__�__doc__r$r-r0r2r=rBrrrrrrrrrrrrr"r"r"r#r
s(r
c@seZdZdd�Zdd�Zd>dd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zd>dd�Zd d!�Zd"d#�Zd$d%�Zd?d&d'�Zd?d(d)�Zd>d*d+�Zd>d,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Z dS)@�
XMLManagerc
Cs�||_|s
|j��}||_||_||_||_||_||_||_	d|_
t|�|_t
�|_|j�ddd�|_d|_|	|_d|_|jrWtd|j|jf�dd�}
d|
}||_dSdS)N�objectsz%s:%s���zBasic %s)r^rYrK�db_name�db_user�	db_passwd�db_host�db_port�db_table�ddl_dir�s3r
�	converterr	�impl�createDocumentrT�
connection�
enable_ssl�auth_headerr)r!r^rfrgrhrirjrkrlrr�base64string�
authheaderr"r"r#r$�s,


�zXMLManager.__init__cCs>|jr|jr
ddlm}nddlm}||j|j�|_dSdS)Nr)�HTTPSConnection)�HTTPConnection)rirr�httplibrvrwrjrq)r!�
Connectionr"r"r#�_connect�s�zXMLManager._connectNcCsd|js|��z|j��WnY|j��i}|jr"|j|d<|j�||||�|j��}|S)z3
        Make a request on this connection
        �
Authorization)rqrz�close�connectrs�request�getresponse)r!�method�url�	post_data�body�headers�respr"r"r#�
_make_request�s


zXMLManager._make_requestcCs|j�ddd�S)Nrd)rorp�r!r"r"r#�new_doc�szXMLManager.new_docccs��|�d�D]L}|s|�d�}t|�}|�d�}||�}|�d�D]-}|�d�}|�|�}	|	rNt|	d�r<|�||	j�}
n|�|	|�}
|	�|
�}
t	||	j
|
�q!|VqdS)NrOrQrP�property�namer/)r?r[r�
find_propertyr5�get_listr/�decode_value�make_value_from_datastore�setattrr�)r!r^rT�obj_noder]rP�obj�	prop_node�	prop_namer:r+r"r"r#�_object_lister�s&�





��zXMLManager._object_listercCs|��dSr)rzr�r"r"r#�resetszXMLManager.resetcCs|jSr)rTr�r"r"r#�get_docszXMLManager.get_doccC�|j�||�Sr)rnr=�r!r:r+r"r"r#�encode_value	�zXMLManager.encode_valuecCr�r)rnrBr�r"r"r#r�r�zXMLManager.decode_valuecCs|jst�|j|j�|_|jSr)rm�boto�
connect_s3�aws_access_key_id�aws_secret_access_keyr�r"r"r#�get_s3_connectionszXMLManager.get_s3_connectioncCsRg}z	|�d�d}WngYS|�d�D]}|j�||�}|�|�q|S)N�itemsrr>)r?rnr2r8)r!r�r/r@�
items_noderAr+r"r"r#r�szXMLManager.get_listcCs�|�d�d}|s|�d�}t|�}|s|�d�}||�}|�d�D]*}|�d�}|�|�}	|�|	|�}
|	�|
�}
|
durLz	t||	j|
�Wq"Yq"q"|S)NrOrrQrPr�r�)r?r[rr�r�r�r�r�)r!r^rPrTr�r]r�r�r�r:r+r"r"r#�get_object_from_docs&




�zXMLManager.get_object_from_doccCs�|�d�d}|s|�d�}t|�}|s|�d�}i}|�d�D] }|�d�}|�|�}	|�|	|�}
|	�|
�}
|
dur@|
||	j<q |||fS)z�
        Pull out the properties from this document
        Returns the class, the properties in a hash, and the id if provided as a tuple
        :return: (cls, props, id)
        rOrrQrPr�r�N)r?r[rr�r�r�r�)r!r^rPrTr�r]�propsr�r�r:r+r"r"r#�get_props_from_doc3s 





�
zXMLManager.get_props_from_doccCsf|js|��|jstd��d|j|f}|�d|�}|jdkr%t|�}ntd|j��|�|||�S)N�)Can't query without a database connection�/%s/%s�GET���	Error: %s)	rqrz�NotImplementedErrorrfr��statusr
�	Exceptionr�)r!r^rPr�r�rTr"r"r#�
get_objectJs

zXMLManager.get_objectc
Cs�|js|��|jstd��ddlm}t|�||||��}|r,d|j|d|i�f}nd|j}|�d|�}|j	dkrAt
|�}	ntd	|j	��|�||	�S)
Nr�r)�	urlencodez/%s?%s�query�/%sr�r�r�)
rqrzr��urllibr�r`�_build_queryrfr�r�r
r�r�)
r!r^�filters�limit�order_byr�r�r�r�rTr"r"r#r�Xs


zXMLManager.queryc	Cs.ddl}t|�dkrtd��g}|jdd�}|D][\}}	|����\}
}d}|D]B}
|
j|
krjd}|�|	�tkrZg}|	D]}|�	|
|�}|�
d|
||f�q<|�
dd	�|��q(|�	|
|	�}	|�
d
|
||	f�q(|sstd|
��q|r�|�d�r�|d
d�}d}n|}d}|�
d|||f�d�|�S)Nr�zToo many filters, max is 4F��hiddenTz'%s' %s '%s'z[%s]z OR z['%s' %s '%s']z%s is not a valid field�-r1�desc�ascz"['%s' starts-with ''] sort '%s' %sz intersection )
�typesr_r��
properties�strip�splitr��TypeTyper4r�r8�join�
startswith)r!r^r�r�r�r��partsr��filterr+r��op�foundr��filter_parts�val�key�typer"r"r#r�ms>
��

zXMLManager._build_querycOstd��)Nz GQL queries not supported in XML)r�)r!�query_string�args�kwdsr"r"r#�	query_gql�szXMLManager.query_gqlcCs`|�d�}|�|�|D]!}|�d�}|�|�t|t�r#|�|�q|�|�}|�|�qdS)Nr�r>)rU�appendChildr3r�createTextNode)r!rTr�r�r�r>rA�	text_noder"r"r#�	save_list�s





�zXMLManager.save_listc
	Cs�|�|�}|jrd|j|jf}nd|j}|jd||��d�}|�|jdt|��}|j|_|��D]$}z|j	}Wnt
yDd}Ynw|rVt||j	�}	|	rVt||j	|	�q2|S)z1
        Marshal the object and do a PUT
        r�r��PUT)r�N)
�marshal_objectrPrfr��toxmlr�rWr
r�r��AttributeErrorr6r�)
r!r��expected_valuerTr�r��new_objr:�propnamer+r"r"r#�save_object�s&


��zXMLManager.save_objectc	Cs|s|��}|s|j}|�d�}|jr|�d|j�|�dd|jj|jjf�|j}|�	|�|j
dd�D]R}|�d�}|�d|j�|�d	|j�|�
|�}|dur�|�||�}t|t�rg|�|||�nt|t�rr|�	|�n|�t�|��d
d��}|�	|�|�	|�q6|S)NrOrPrQrRFr�r�r�r��ascii�ignore)r�rTrUrPrVrWrXrY�documentElementr�r�r��	type_name�get_value_for_datastorer�r3r4r�rr�r�	text_typer0)	r!r�rTr��rootr�r�r+r�r"r"r#r��s6
�





zXMLManager.marshal_objectcC�,t|tj�rt|�}nt|�}|�|||�Sr)r3rrSrr
r��r!�fpr^rPrTr"r"r#�unmarshal_object�s
zXMLManager.unmarshal_objectcCr�)zf
        Same as unmarshalling an object, except it returns
        from "get_props_from_doc"
        )r3rrSrr
r�r�r"r"r#�unmarshal_props�s
zXMLManager.unmarshal_propscCsd|j|jf}|�d|�S)Nr��DELETE)rfrPr�)r!r�r�r"r"r#�
delete_object�szXMLManager.delete_objectcCs|jj|j||idd�dS)NT)�replace)�domain�put_attributesrP)r!r�r�r+r"r"r#�
set_key_value�szXMLManager.set_key_valuecCs|j�|j|�dSr)r��delete_attributesrP)r!r�r�r"r"r#�delete_key_value�szXMLManager.delete_key_valuecCs$|j�|j|�}||vr||SdSr)r��get_attributesrP)r!r�r��ar"r"r#�
get_key_value�szXMLManager.get_key_valuecCs|j�|j�Sr)r��get_itemrP�r!r�r"r"r#�get_raw_item�r�zXMLManager.get_raw_itemcC�dSrr")r!r:r�r�r+r"r"r#�set_property��zXMLManager.set_propertycCr�rr")r!r:r�r�r"r"r#�get_property�r�zXMLManager.get_propertycCs|js|�|j�}d|_|S)NT)�_loaded�	get_by_idrPr�r"r"r#�load_objectszXMLManager.load_object)NNr)!rYrXrar$rzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r"r"r"r#rc�s>
	
!


 
rc)r��
boto.utilsrr�boto.sdb.db.keyr�boto.sdb.db.modelr�boto.compatrrr�xml.dom.minidomr	r
rrrMrOr
rcr"r"r"r#�<module>s

https://t.me/RX1948 - 2025