403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.216.115
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/__pycache__/pickleshare.cpython-311.pyc
�

���[�&���dZddlmZdZ	ddlmZn#e$r	ddlmZYnwxYwddlZddl	Z	ddl
Z
	ddlmZ
n#e$rddlZ
YnwxYw	ddlZn#e$rddlZYnwxYwddlZddlZejddkrefZneefZd�Ze��ZGd�d	e
j��ZGd
�d��Zd�Zed
kre��dSdS)a PickleShare - a small 'shelve' like datastore with concurrency support

Like shelve, a PickleShareDB object acts like a normal dictionary. Unlike
shelve, many processes can access the database simultaneously. Changing a
value in database is immediately visible to other processes accessing the
same database.

Concurrency is possible because the values are stored in separate files. Hence
the "database" is a directory where *all* files are governed by PickleShare.

Example usage::

    from pickleshare import *
    db = PickleShareDB('~/testpickleshare')
    db.clear()
    print "Should be empty:",db.items()
    db['hello'] = 15
    db['aku ankka'] = [1,2,313]
    db['paths/are/ok/key'] = [1,(5,46)]
    print db.keys()
    del db['aku ankka']

This module is certainly not ZODB, but can be used for low-load
(non-mission-critical) situations where tiny code size trumps the
advanced features of a "real" object database.

Installation guide: pip install pickleshare

Author: Ville Vainio <vivainio@gmail.com>
License: MIT open source license.

�)�print_functionz0.7.5)�PathN�c�V�dtt|��dz��zdd�S)Nz%02x����)�abs�hash)�keys �-/usr/lib/python3/dist-packages/pickleshare.py�gethashfiler
@s(���S��c���S��)�)�)�2�3�3�/�/�c�|�eZdZdZd�Zd�Zd�Zd�Zedfd�Z	d�Z
d	�Zd
�Zd�Z
dd
�Zd�Zd�Zd�Zdd�Zd�Zd�ZdS)�
PickleShareDBz7 The main 'connection' object for PickleShare database c���t|t��st|��}tj�tj�|����}t|��|_|j�	��sJ	|j�
d���n-#t$r }|jtj
kr�Yd}~nd}~wwxYwi|_dS)z: Return a db object that will manage the specied directoryT��parentsN)�
isinstance�string_types�str�os�path�abspath�
expanduserr�root�is_dir�mkdir�OSError�errno�EEXIST�cache)�selfr�es   r�__init__zPickleShareDB.__init__Gs����$��-�-�	��t�9�9�D��w���r�w�1�1�$�7�7�8�8����J�J��	��y���!�!�	�
��	�����-�-�-�-���
�
�
��7�e�l�*�*��+�*�*�*�*�����
������
�
�
s�B+�+
C�5C�Cc���|j|z}	|���tj}n#t$rt	|���wxYw||jvr*||j|dkr|j|dS	|�d��5}tj|�	����}ddd��n#1swxYwYn#t	|���xYw||f|j|<|S)z db['key'] reading �r�rbN)
r�stat�ST_MTIMEr�KeyErrorr!�open�pickle�loads�read)r"r�fil�mtime�f�objs      r�__getitem__zPickleShareDB.__getitem__Ys,���i�#�o��	 ��X�X�Z�Z��
�.�E�E���	 �	 �	 ��3�-�-��	 �����$�*����$�*�S�/�!�*<�!<�!<��:�c�?�1�%�%�	 ����$���
-�1��l�1�6�6�8�8�,�,��
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-���	 ��3�-�-������u�+��
�3���
s9�$1�A�C�'C
�>C�
C�C�C�C�C'c��|j|z}|j}|r*|���s|�d���|�d��5}tj||d���ddd��n#1swxYwY	||���jf|j	|<dS#t$r!}|jtjkr�Yd}~dSd}~wwxYw)z db['key'] = 5 Tr�wb�)�protocolN)
r�parentrrr+r,�dumpr(�st_mtimer!rr�ENOENT)r"r�valuer/r8r1r#s       r�__setitem__zPickleShareDB.__setitem__ms#���i�#�o������	'�&�-�-�/�/�	'��L�L��L�&�&�&��X�X�d�^�^�	.�q��K��q�1�-�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	�$�c�h�h�j�j�&9�:�D�J�s�O�O�O���	�	�	��w�%�,�&�&��'�&�&�&�&�&�����	���s*�A7�7A;�>A;�#B(�(
C�2C�Cc���|j|z}|���s|���|t|��z}|�|i��}|�||i��|||<dS)z hashed set N)rrrr
�get�update)r"�hashrootrr<�hroot�hfile�ds       r�hsetzPickleShareDB.hset}ss���	�H�$���|�|�~�~�	��K�K�M�M�M���C�(�(�(���H�H�U�B����	���3��-� � � ���U���rTc��|j|z}|t|��z}|�|t��}|tur1|r|turt	|���|S|�|��}|�||��S)z hashed get )rr
r?�	_sentinelr*�hdict)r"rAr�default�	fast_onlyrBrCrDs        r�hgetzPickleShareDB.hget�s����	�H�$����C�(�(�(���H�H�U�I�'�'���	�>�>��
��i�'�'�"�3�-�-�'����
�
�8�$�$�A��u�u�S�'�"�"�"rc��|�|dz��}|���t|��r|dpd}|�d��r|g|dd�z}i}|D]X}	|�||��n$#t
$rt
d|d��||=YnwxYw|�|���Y|S)z> Get all data contained in hashed category 'hashroot' as dict �/*�����xxN�Corruptz!deleted - hset is not threadsafe!)�keys�sort�len�endswithr@r*�print�uncache)r"rA�hfiles�last�allr1s      rrHzPickleShareDB.hdict�s������8�d�?�+�+�����
�
�
��6�{�{�)�v�b�z�/�R���=�=����	*��V�f�S�b�S�k�)�F����	�	�A�
��
�
�4��7�#�#�#�#���
�
�
��i��"E�F�F�F���G�G�G�
����
�L�L��O�O�O�O��
s�0B�B-�,B-c��|�|dz��}i}|D]2}|�||��|�|���3|||dz<|D],}|j|z}|jdkr�|����-dS)z� Compress category 'hashroot', so hset is fast again

        hget will fail if fast_only is True for compressed items (that were
        hset before hcompress).

        rMz/xxrPN)rRr@rWr�name�unlink)r"rArXrZr1�ps      r�	hcompresszPickleShareDB.hcompress�s������8�d�?�+�+�����	�	�A��J�J�t�A�w�����L�L��O�O�O�O�!$��X��
���	�	�A��	�A�
�A��v��~�~��
�H�H�J�J�J�J�		�	rc��|j|z}|j�|d��	|���dS#t$rYdSwxYw)z del db["key"] N)rr!�popr]r)r"rr/s   r�__delitem__zPickleShareDB.__delitem__�s]���i�#�o���
���s�4� � � �	��J�J�L�L�L�L�L���	�	�	�
�D�D�	���s�=�
A�
Ac�x�t|�|j�����dd��S)z% Make a key suitable for user's eyes �\�/)r�relative_tor�replace)r"r^s  r�_normalizedzPickleShareDB._normalized�s.���1�=�=���+�+�,�,�4�4�T�#�>�>�>rNc���|��j�d��}n�j�|��}�fd�|D��S)z, All keys in DB, or all keys matching a globN�*c�b��g|]+}|������|����,S�)�is_filerh)�.0r^r"s  �r�
<listcomp>z&PickleShareDB.keys.<locals>.<listcomp>�s4���B�B�B��a�i�i�k�k�B�� � ��#�#�B�B�Br)r�rglob�glob)r"�globpat�filess`  rrRzPickleShareDB.keys�sL����?��I�O�O�C�(�(�E�E��I�N�N�7�+�+�E�B�B�B�B�U�B�B�B�Brc�D�t|�����S�N)�iterrR�r"s r�__iter__zPickleShareDB.__iter__�s���D�I�I�K�K� � � rc�D�t|�����Sru)rTrRrws r�__len__zPickleShareDB.__len__�s���4�9�9�;�;���rc�X�|si|_|D]}|j�|d���dS)z� Removes all, or specified items from cache

        Use this after reading a large amount of large objects
        to free up memory, when you won't be needing the objects
        for a while.

        N)r!ra)r"�items�its   rrWzPickleShareDB.uncache�sE���	��D�J��	$�	$�B��J�N�N�2�d�#�#�#�#�	$�	$r�<c��dgdzdgdzzdgz}d}d}		||}|S#t$rYnwxYw||krt|���tj||��|||z
}|t|��dz
kr|dz
}�q)a Wait (poll) for a key to get a value

        Will wait for `maxwaittime` seconds before raising a KeyError.
        The call exits normally if the `key` field in db gets a value
        within the timeout period.

        Use this for synchronizing different processes or for ensuring
        that an unfortunately timed "db['key'] = newvalue" operation
        in another process (which causes all 'get' operation to cause a
        KeyError for the duration of pickling) won't screw up your program
        logic.
        g�������?rg�?r6r&r)r*�time�sleeprT)r"r�maxwaittime�wtimes�tries�waited�vals       r�waitgetzPickleShareDB.waitget�s�������c�U�Q�Y�&�!��,������
	�
��3�i���
���
�
�
���
������#�#��s�m�m�#��J�v�e�}�%�%�%��F�5�M�!�F��s�6�{�{�A�~�%�%��q���
	s�	"�
/�/c�"�t||��S)z, Get a convenient link for accessing items  )�PickleShareLink)r"�folders  r�getlinkzPickleShareDB.getlinks���t�V�,�,�,rc��d|jzS)NzPickleShareDB('%s'))rrws r�__repr__zPickleShareDB.__repr__s��$�t�y�0�0rru)r~)�__name__�
__module__�__qualname__�__doc__r$r3r=rErGrKrHr_rbrhrRrxrzrWr�r�r�rlrrrrEs%������A�A����$���(��� ���-6�4�#�#�#�#�&���.���.	�	�	�?�?�?�C�C�C�C�!�!�!� � � �$�$�$�����@-�-�-�1�1�1�1�1rrc�*�eZdZdZd�Zd�Zd�Zd�ZdS)r�z� A shortdand for accessing nested PickleShare data conveniently.

    Created through PickleShareDB.getlink(), example::

        lnk = db.getlink('myobjects/test')
        lnk.foo = 2
        lnk.bar = lnk.foo + 5

    c�R�|j�t����dSru)�__dict__r@�locals)r"�db�keydirs   rr$zPickleShareLink.__init__(s"���
���V�X�X�&�&�&�&�&rc�J�|jd|jddz|zS)Nr�r�re)r�)r"rs  r�__getattr__zPickleShareLink.__getattr__+s%���}�T�"�4�=��#:�3�#>��#D�E�Erc�0�||j|jdz|z<dS)Nre)r�r�)r"rr�s   r�__setattr__zPickleShareLink.__setattr__-s��),�����C��#�%�&�&�&rc���|jd}|�|jddz��}d|jd�dd�d�|D�����d�S)	Nr�r�rMz<PickleShareLink 'z': �;c�P�g|]#}t|�������$Srl)r�basename)rn�ks  rroz,PickleShareLink.__repr__.<locals>.<listcomp>4s*��7�7�7�Q�d�1�g�g�&�&�(�(�7�7�7r�>)r�rR�join)r"r�rRs   rr�zPickleShareLink.__repr__/sk��
�]�4�
 ���w�w��
�h�/��5�6�6����M�(�#�#�#��H�H�7�7�$�7�7�7�8�8�8�8�:�	:rN)r�r�r�r�r$r�r�r�rlrrr�r�s]��������'�'�'�F�F�F�-�-�-�:�:�:�:�:rr�c�8�ddl}|�d��}t}ddl}t	|j��dkrt
|��dS|jd}|jdd�}|dkrC|sdg}||d��}ddl}|�|�����dS|dkrn|j	�
��}||d��}t|��}	|���|���D]
\}
}|||
<�dS|dkrI||d��}|���t
|�
d	����dS|d
krt��t��dSdS)Nrz�    pickleshare - manage PickleShare databases

    Usage:

        pickleshare dump /path/to/db > dump.txt
        pickleshare load /path/to/db < dump.txt
        pickleshare test /path/to/db
    r6r&r9�.�load�testwait�250�test)�textwrap�dedentr�sysrT�argvrV�pprintr|�stdinr.�eval�clearr�r��stress)r��usage�DBr��cmd�argsr�r��cont�datar��vs            r�mainr�6s����O�O�O��O�O��
	�
	�E�
�B��J�J�J�
�3�8�}�}�q���
�e������

�(�1�+�C��8�A�B�B�<�D�
�f�}�}�� �C�5�T�
�R��Q��[�[���
�
�
��
�
�b�h�h�j�j�!�!�!�!�!�	�����y�~�~����
�R��Q��[�[���D�z�z��
���
�
�
��8�8�:�:�	�	�C�A�a��B�q�E�E�	�	�	�
�	�	�
�R��Q��[�[��
���
�
�
�
�b�j�j���� � � � � �	��������������
�r�__main__)r��
__future__r�__version__�pathlibr�ImportError�pathlib2rr(r��collections.abc�abc�collections_abc�collections�cPickler,rr��version_inforr�unicoder
�objectrG�MutableMappingrr�r�r�rlrr�<module>r�s����B&�%�%�%�%�%����������������������������������������*�-�-�-�-�-�-�-���*�*�*�)�)�)�)�)�)�*����������������M�M�M�M�M���������
�
�
�
���A��!����6�L�L���>�L�0�0�0�
�F�H�H�	�U1�U1�U1�U1�U1�O�2�U1�U1�U1�r:�:�:�:�:�:�:�:�0%�%�%�N�j����D�F�F�F�F�F��s-��!�!�8�	A�A�A
�
	A�A

Youez - 2016 - github.com/yon3zu
LinuXploit