o
    j
                     @   s*   d dl mZ d dlmZ G dd dZdS )    )NTRegistryNK)NTRegistryKeyTypesc                   @   sT   e Zd Zdd ZedddZedddZedd	d
ZedddZdd Z	dS )NTRegistryCellc                 C   s   d | _ d | _d S )N)sizedata)self r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiowinreg/filestruct/regcell.py__init__   s   
zNTRegistryCell.__init__TFc                 C   s:   |du r|  d| d n|  |d tj| |d}|jS )z@
		Returns a HBIN block from the data in the reader at offset
		T   r   
nk_partial)seekr   readr   readeroffsetis_filer   cellr   r   r	   load_data_from_offset	   s
   z$NTRegistryCell.load_data_from_offsetc                    sN   |du r|  d| dI dH  n	|  |dI dH  tj| |dI dH }|jS )zH
		Async
		Returns a HBIN block from the data in the reader at offset
		Tr   r   Nr   )r   r   areadr   r   r   r   r	   aload_data_from_offset   s   z%NTRegistryCell.aload_data_from_offsetc                    sh  t  }| dI d H }t|tr|\}}|d ur|n|}|dkr'd|_|S tj|ddd|_|jd |_|jdkr=|S |jdkr| |jd I d H }t|tr^|\|_}|d ur]|n||_|jd d tv r|jd d d	kr|du rt	
|j|_|S t|jd d  |j|_|S | d|j d I d H }t|tr|\|_}|d ur||S ||_|S 
N   s   hbinr   littleT)signed   s   nk)r   r   
isinstancetupler   int
from_bytesr   r   r   	nameparse)r   r   r   resterrr   r   r	   r   "   sL   






zNTRegistryCell.areadc                 C   s   t  }| d}|dkrd|_|S tj|ddd|_|jd |_|jdkr'|S |jdkrd| |jd |_|jd d tv rb|jd d d	krT|du rTt|j|_|S t|jd d  |j|_|S | d|j d |_|S r   )	r   r   r   r    r!   r   r   r   r"   )r   r   r   r$   r   r   r	   r   Q   s&   


zNTRegistryCell.readc                 C   s*   d}| j D ]}|d|| j | f 7 }q|S )Nz== NT Registry Cell struct ==
z	%s: %s 
)__dict__)r   r$   kr   r   r	   __str__j   s   
zNTRegistryCell.__str__N)TF)F)
__name__
__module____qualname__r
   staticmethodr   r   r   r   r(   r   r   r   r	   r      s    .r   N)aiowinreg.filestruct.nkr   aiowinreg.filestruct.keytypesr   r   r   r   r   r	   <module>   s    