a
    {]                     @   sX   d dl Z d dlZG dd deZdd ZdD ]Zee q,dd Zd	D ]Zee qFdS )
    Nc                   @   s   e Zd ZdZdd Zedd Zdd Zdd	 Zd
d Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZejdkreZneZeZdS ) TdbTextWrapperzText interface for a TDB filec                 C   s
   || _ d S N_tdb)selftdb r   +/usr/lib/python3/dist-packages/_tdb_text.py__init__   s    zTdbTextWrapper.__init__c                 C   s   | j S r   r   r   r   r   r	   raw   s    zTdbTextWrapper.rawc                 C   s,   | d}| j|}|d ur(|dS d S Nzutf-8)encoder   getdecoder   keyresultr   r   r	   r      s    
zTdbTextWrapper.getc                 C   s&   | d}| d}| j|| d S r   )r   r   appendr   r   valuer   r   r	   r      s    

zTdbTextWrapper.appendc                 C   s   | j  }|r|dS d S r   )r   firstkeyr   )r   r   r   r   r	   r       s    
zTdbTextWrapper.firstkeyc                 C   s,   | d}| j|}|d ur(|dS d S r   )r   r   nextkeyr   r   r   r   r	   r   %   s    
zTdbTextWrapper.nextkeyc                 C   s   | d}| j| d S r   )r   r   deleter   r   r   r   r	   r   +   s    
zTdbTextWrapper.deletec                 C   s&   | d}| d}| j|| d S r   )r   r   storer   r   r   r	   r   /   s    

zTdbTextWrapper.storec                 c   s    t | jD ]}|dV  q
d S r   )iterr   r   r   r   r   r	   __iter__4   s    zTdbTextWrapper.__iter__c                 C   s   | d}| j| }|dS r   )r   r   r   r   r   r   r	   __getitem__8   s    

zTdbTextWrapper.__getitem__c                 C   s   | d}|| jv S r   r   r   r   r   r   r	   __contains__=   s    
zTdbTextWrapper.__contains__c                 C   s
   d| j  S )Nz<TdbTextWrapper for %r>r   r   r   r   r	   __repr__A   s    zTdbTextWrapper.__repr__c                 C   s"   | d}| d}|| j|< d S r   r   r   r   r   r	   __setitem__D   s    

zTdbTextWrapper.__setitem__c                 C   s   | d}| j|= d S r   r   r   r   r   r	   __delitem__I   s    
zTdbTextWrapper.__delitem__)   r   N)__name__
__module____qualname____doc__r
   propertyr   r   r   r   r   r   r   r   r   r    r!   r"   r#   sysversion_infokeysZiterkeysZhas_keyr   r   r   r	   r      s(   

r   c                    s8   t tj|   fdd} j|_ j|_tt| | d S )Nc                    s    | j g|R i |S r   r   )r   argskwargsorigr   r	   wrapperY   s    z_add_wrapper.<locals>.wrapper)getattrr   Tdbr%   r(   setattrr   )namer1   r   r/   r	   _add_wrapperV   s
    r6   )Ztransaction_cancelZtransaction_commitZtransaction_prepare_commitZtransaction_startZreopenZlock_allZ
unlock_allZread_lock_allZread_unlock_allclose	add_flagsZremove_flagsclearZrepackZenable_seqnumZincrement_seqnum_nonblockc                    sD   t tj }|j} fdd} fdd}tt t|||d d S )Nc                    s   t | j S r   )r2   r   r   r5   r   r	   getterx   s    z_add_getter.<locals>.getterc                    s   t | j |S r   )r4   r   )r   r   r:   r   r	   setter{   s    z_add_getter.<locals>.setter)doc)r2   r   r3   r(   r4   r   r)   )r5   r0   r=   r;   r<   r   r:   r	   _add_gettert   s
    r>   )Z	hash_sizeZmap_sizeZfreelist_sizeflagsZmax_deadfilenameZseqnumtext)r*   r   objectr   r6   r5   r>   r   r   r   r	   <module>   s   K

	