Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib64/python3.7/site-packages/twisted/persisted/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/twisted/persisted/__pycache__/sob.cpython-37.pyc

B

:��]M�@s�dZddlmZmZddlZddlZyddlZWnek
rLddlZYnXddl	m
Z
mZddlm
Z
ddlmZmZGdd�de�Zee�Gd	d
�d
��ZeZGdd�de
j�Zd
d�Zdd�Zdd�Zddd
dddgZdS)z`
Save and load Small OBjects to and from files, using various formats.

Maintainer: Moshe Zadka
�)�division�absolute_importN)�log�runtime)�styles)�implementer�	Interfacec@s"eZdZdZdd�Zddd�ZdS)�IPersistablez9An object which can be saved in several formats to a filecCsdS)zWSet desired format.

        @type style: string (one of 'pickle' or 'source')
        N�)�styler
r
�H/opt/alt/python37/lib64/python3.7/site-packages/twisted/persisted/sob.py�setStyleszIPersistable.setStyleNcCsdS)zxSave object to file.

        @type tag: string
        @type filename: string
        @type passphrase: string
        Nr
)�tag�filename�
passphraser
r
r�save%szIPersistable.save)NNN)�__name__�
__module__�__qualname__�__doc__r
rr
r
r
rr	sr	c@sBeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
d�Z	dS)�
Persistent�picklecCs||_||_dS)N)�original�name)�selfrrr
r
r�__init__3szPersistent.__init__cCs
||_dS)zWSet desired format.

        @type style: string (one of 'pickle' or 'source')
        N)r)rrr
r
rr
7szPersistent.setStylecCs\|r|}|d}nB|r8d|j||f}d|j||f}nd|j|f}d|j|f}||fS)Nz-2z
%s-%s-2.%sz%s-%s.%sz%s-2.%sz%s.%s)r)rr�extr�	finalnamer
r
r�_getFilename>s
zPersistent._getFilenamec	Cs&t|d��}||j|�WdQRXdS)N�wb)�openr)rr�dumpFunc�fr
r
r�	_saveTempJszPersistent._saveTempcCs0|jdkrddlm}d}ndd�}d}||fS)N�sourcer)�
jellyToSourceZtascSst�||d�dS)N�)r�dump)�obj�filer
r
rr!Ssz&Persistent._getStyle.<locals>.dumpFuncZtap)r�twisted.persisted.aotr%)rr!rr
r
r�	_getStyleNs
zPersistent._getStyleNcCs�|��\}}|dk	r$td��d|}|�|||�\}}t�d|jd|d�|�||�tjdkr~t	j
�|�r~t	�|�t	�
||�t�d�dS)	zxSave object to file.

        @type tag: string
        @type filename: string
        @type passphrase: string
        Nzpassphrase must be None�ezSaving z application to z...�win32zSaved.)r+�	TypeErrorrr�msgrr#rZplatformType�os�path�isfile�remove�rename)rrrrrr!rr
r
rrXs
zPersistent.save)NNN)
rrrrrr
rr#r+rr
r
r
rr.s
rc@s eZdZdZdd�Zdd�ZdS)�_EverythingEphemeralrcCs
||_dS)zS
        @param mainMod: The '__main__' module that this class will proxy.
        N)�mainMod)rr6r
r
rrrsz_EverythingEphemeral.__init__cCsFyt|j|�Stk
r@|jr&�nt�d|�t��SYnXdS)Nz#Warning!  Loading from __main__: %s)�getattrr6�AttributeError�initRunrr/r�	Ephemeral)r�keyr
r
r�__getattr__xsz _EverythingEphemeral.__getattr__N)rrrr9rr<r
r
r
rr5nsr5c
Cs�d}|dkrddlm}ntjd}}t||�}ttjd�}|tjd<d|_|�"z||�}Wd|j	tjd<XWdQRXt
��d|_t|d�}|dk	r�|�
|�|S)	z�Load an object from a file.

    Deserialize an object from a file. The file can be encrypted.

    @param filename: string
    @param style: string (one of 'pickle' or 'source')
    �rr$r)�unjellyFromSource�rb�__main__�N)r*r>r�loadr r5�sys�modulesr9r6rZ	doUpgrader	r
)rr�mode�_load�fp�ee�valueZpersistabler
r
rrB�s$



rBc	CsJt|d��}|��}WdQRXd|i}t||d�}t|||�||}|S)z�Load the value of a variable in a Python file.

    Run the contents of the file in a namespace and return the result of the
    variable named C{variable}.

    @param filename: string
    @param variable: string
    r=N�__file__�exec)r �read�compile�eval)r�variableZfileObj�data�dZcodeObjrIr
r
r�loadValueFromFile�s	rRcCs(tj�|�d}dddddddd�|S)NrA�pythonrr$)z.tacz.etacz.pyz.tapz.etapz.tasz.etas)r0r1�splitext)rrr
r
r�	guessType�srU�
Persistant)r�
__future__rrr0rCZcPickler�ImportErrorZtwisted.pythonrrZtwisted.persistedrZzope.interfacerrr	rrVr:r5rBrRrU�__all__r
r
r
r�<module>
s&>!