
    h                         S r SSKrSSKrSSKrSSKJrJr  SSKJr  SSK	J
r
Jr   " S S\5      r\" \5       " S S	5      5       r\r " S
 S\R                  5      rS rS rS r/ SQrg)z`
Save and load Small OBjects to and from files, using various formats.

Maintainer: Moshe Zadka
    N)	Interfaceimplementer)styles)logruntimec                   (    \ rS rSrSrS rSS jrSrg)IPersistable   z9An object which can be saved in several formats to a filec                     gzGSet desired format.

@type style: string (one of 'pickle' or 'source')
N styles    \/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/twisted/persisted/sob.pysetStyleIPersistable.setStyle           Nc                     g)XSave object to file.

@type tag: string
@type filename: string
@type passphrase: string
Nr   )tagfilename
passphrases      r   saveIPersistable.save!   r   r   r   NNN)__name__
__module____qualname____firstlineno____doc__r   r   __static_attributes__r   r   r   r	   r	      s    Cr   r	   c                   @    \ rS rSrSrS rS rS rS rS r	SS	 jr
S
rg)
Persistent*   picklec                     Xl         X l        g N)originalname)selfr)   r*   s      r   __init__Persistent.__init__.   s     	r   c                     Xl         gr   r   )r+   r   s     r   r   Persistent.setStyle2   s	    
 
r   c                     U(       a
  UnUS-   nXA4$ U(       a+  U R                    SU SU 3nU R                    SU SU 3nXA4$ U R                    SU 3nU R                    SU 3nXA4$ )Nz-2-z-2..)r*   )r+   r   extr   	finalnames        r   _getFilenamePersistent._getFilename9   s     I 4'H "" ))AcU#cU3H99+Qse1SE2I "" ))Cu-H99+Qse,I""r   c                 v    [        US5       nU" U R                  U5        S S S 5        g ! , (       d  f       g = f)Nwb)openr)   )r+   r   dumpFuncfs       r   	_saveTempPersistent._saveTempE   s(    (D!QT]]A& "!!s   *
8c                 L    U R                   S:X  a  SSKJn  SnX!4$ SS jnSnX!4$ )Nsourcer   )jellyToSourcetasc                 2    [         R                  " XS5        g )N   )r&   dump)objfiles     r   r:   &Persistent._getStyle.<locals>.dumpFuncP   s    Cq)r   tapr(   )r   twisted.persisted.aotr@   )r+   r:   r3   s      r   	_getStylePersistent._getStyleI   s4    ::!GC }	* C}r   Nc                    U R                  5       u  pEUb  [        S5      eU R                  X$U5      u  pb[        R                  " SU R
                  -   S-   U-   S-   5        U R                  X%5        [        R                  S:X  a:  [        R                  R                  U5      (       a  [        R                  " U5        [        R                  " X&5        [        R                  " S5        g)r   Nzpassphrase must be NonezSaving z application to z...win32zSaved.)rJ   	TypeErrorr5   r   msgr*   r<   r   platformTypeospathisfileremoverename)r+   r   r   r   r3   r:   r4   s          r   r   Persistent.saveV   s     (!566"//sC		DII%(::YFNOx*7*rww~~i/H/HIIi 
		(&r   )r*   r)   r   r   )r   r   r   r    r   r,   r   r5   r<   rJ   r   r"   r   r   r   r$   r$   *   s%    E
#'r   r$   c                   $    \ rS rSrSrS rS rSrg)_EverythingEphemeralm   r   c                     Xl         g)zC
@param mainMod: The '__main__' module that this class will proxy.
NmainMod)r+   r\   s     r   r,   _EverythingEphemeral.__init__p   s	     r   c                      [        U R                  U5      $ ! [         aC    U R                  (       a  e [        R
                  " SU-  5        [        R                  " 5       s $ f = f)Nz#Warning!  Loading from __main__: %s)getattrr\   AttributeErrorinitRunr   rO   r   	Ephemeral)r+   keys     r   __getattr__ _EverythingEphemeral.__getattr__v   sR    	*4<<-- 	*||=CD''))	*s    A
A%$A%r[   N)r   r   r   r    ra   r,   rd   r"   r   r   r   rX   rX   m   s    G*r   rX   c                 
   SnUS:X  a  SSK Jn  O[        R                  Sp#[	        X5      n[        [        R                  S   5      nU[        R                  S'   SUl        U    U" U5      nUR                  [        R                  S'    SSS5        [        R                  " 5         SUl        [        WS5      nUb  UR                  U5        U$ ! UR                  [        R                  S'   f = f! , (       d  f       Nn= f)	zLoad 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)rI   rh   r&   loadr9   rX   sysmodulesra   r\   r   	doUpgrader	   r   )r   r   mode_loadfpeevaluepersistables           r   rl   rl      s     DDkk4t	h	B	ckk*5	6B CKK
BJ		1"IE ')jjCKK
# 
 BJud+KU#L ')jjCKK
# 
s$   $C4&C.C4C11C44
Dc                     [        U 5       nUR                  5       nSSS5        SU 0n[        WU S5      n[        XTU5        XA   nU$ ! , (       d  f       N1= f)zLoad 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
N__file__exec)r9   readcompileeval)r   variablefileObjdatadcodeObjrt   s          r   loadValueFromFiler      sS     
h7||~ 
	XAdHf-GQKEL 
s   A
Ac                 `    [         R                  R                  U 5      S   nSSSSSSSS.U   $ )Nrk   pythonr&   r?   )z.tacz.etacz.pyz.tapz.etapz.tasz.etas)rQ   rR   splitext)r   r3   s     r   	guessTyper      sD    
''

8
$Q
'C 
 r   )r   rl   r$   
Persistantr	   r   )r!   rQ   r&   rm   zope.interfacer   r   twisted.persistedr   twisted.pythonr   r   r	   r$   r   rb   rX   rl   r   r   __all__r   r   r   <module>r      sy    
  
 1 $ '9 & \; ; ;~ 
*6++ *(B$
r   