관리-도구
편집 파일: binhex.cpython-39.pyc
a �����DOg�9����������������������@���s ��d�Z�ddlZddlZddlZddlZddlZddlZejdedd��g�d�Z G�dd��de �ZdZd Z d ZdZdZG�d d��d�Zdd��ZG�dd��d�Zejdd���ZG�dd��d�ZG�dd��d�ZG�dd��d�Zdd��ZG�dd��d�ZG�dd ��d �ZG�d!d"��d"�Zd#d$��ZdS�)%z�Macintosh binhex compression/decompression. easy interface: binhex(inputfilename, outputfilename) hexbin(inputfilename, outputfilename) �����Nzthe binhex module is deprecated����)� stacklevel)�binhex�hexbin�Errorc�������������������@���s���e�Zd�ZdS�)r���N)�__name__� __module__�__qualname__��r ���r ����/usr/lib64/python3.9/binhex.pyr���%���s���r�������i�����@��������c�������������������@���s���e�Zd�Zdd��ZdS�)�FInfoc�����������������C���s���d|�_�d|�_d|�_d�S�)Nz????r���)�Type�Creator�Flags��selfr ���r ���r����__init__6���s����zFInfo.__init__N)r���r���r ���r���r ���r ���r ���r���r���5���s���r���c�����������������C���s����t���}t�|�d��<}|�d�}d|vr,d|_|�dd��|���}W�d�����n1�sT0����Y��tj� |��\}}|� ddd�}|||dfS�) N�rbi���r���ZTEXTr����:�-r���)r����io�open�readr����seek�tell�os�path�split�replace)�name�finfo�fp�dataZdsize�dir�filer ���r ���r����getfileinfo;���s���� &r(���c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) �openrsrcc�����������������G���s���d�S��Nr ����r����argsr ���r ���r���r���I���s����zopenrsrc.__init__c�����������������G���s���dS��N�����r ���r+���r ���r ���r���r���L���s����z openrsrc.readc�����������������G���s���d�S�r*���r ���r+���r ���r ���r����writeO���s����zopenrsrc.writec�����������������C���s���d�S�r*���r ���r���r ���r ���r����closeR���s����zopenrsrc.closeN)r���r���r ���r���r���r/���r0���r ���r ���r ���r���r)���H���s���r)���c�������������������c���s@���t�����$�t��ddt��d�V��W�d�����n1�s20����Y��d�S�)N�ignore��)�warnings�catch_warnings�filterwarnings�DeprecationWarningr ���r ���r ���r����_ignore_deprecation_warningX���s���� r7���c�������������������@���s0���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd S�)�_Hqxcoderenginez(Write data to the coder in 3-byte chunksc�����������������C���s ���||�_�d|�_d|�_td�|�_d�S�)Nr.���r���)�ofpr%����hqxdata�LINELEN�linelen�r���r9���r ���r ���r���r���b���s����z_Hqxcoderengine.__init__c�����������������C���s����|�j�|�|�_�t|�j��}|d�d�}|�j�d�|��}|�j�|d���|�_�|sHd�S�t���"�|�jt�|��|�_W�d�����n1�sv0����Y��|��d��d�S�)N����r���)r%����lenr7���r:����binascii�b2a_hqx�_flush)r���r%���ZdatalenZtodor ���r ���r���r/���h���s���� 0z_Hqxcoderengine.writec�����������������C���sr���d}|t�|�j�|�j�krH||�j�}|�j�|�j||��d���t|�_|}q|�j|d���|�_|rn|�j�|�jd���d�S�)Nr������� s���: )r?���r:���r<���r9���r/���r;���)r����force�first�lastr ���r ���r���rB���t���s���� z_Hqxcoderengine._flushc�����������������C���s\���|�j�r@t���$�|�jt�|�j���|�_W�d�����n1�s60����Y��|��d��|�j����|�`d�S�)Nr���)r%���r7���r:���r@���rA���rB���r9���r0���r���r ���r ���r���r0������s����2 z_Hqxcoderengine.closeN)r���r���r ����__doc__r���r/���rB���r0���r ���r ���r ���r���r8���_���s ���r8���c�������������������@���s(���e�Zd�ZdZdd��Zdd��Zdd��ZdS�) �_Rlecoderenginez4Write data to the RLE-coder in suitably large chunksc�����������������C���s���||�_�d|�_d�S�r-���)r9���r%���r=���r ���r ���r���r�������s����z_Rlecoderengine.__init__c�����������������C���sf���|�j�|�|�_�t|�j��tk�rd�S�t����t�|�j��}W�d�����n1�sF0����Y��|�j�|��d|�_�d�S�r-���)r%���r?����REASONABLY_LARGEr7���r@����rlecode_hqxr9���r/���)r���r%����rledatar ���r ���r���r/�������s����*z_Rlecoderengine.writec�����������������C���sV���|�j�rDt����t�|�j��}W�d�����n1�s.0����Y��|�j�|��|�j����|�`d�S�r*���)r%���r7���r@���rJ���r9���r/���r0���)r���rK���r ���r ���r���r0�������s����* z_Rlecoderengine.closeN)r���r���r ���rG���r���r/���r0���r ���r ���r ���r���rH�������s��� rH���c�������������������@���sL���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dS�)�BinHexc����������� ������C���s����|\}}}}d}t�|t�r.|}t�|d�}d}zR|�d��t|�} t| �|�_d|�_|d�u�r`t ��}||�_ ||�_|��||��t |�_W�n���|r�|������Y�n0�d�S�)NF�wbTs0���(This file must be converted with BinHex 4.0) :r���)� isinstance�strr���r���r/���r8���rH���r9����crcr����dlen�rlen� _writeinfo�_DID_HEADER�stater0���) r���Zname_finfo_dlen_rlenr9���r"���r#���rQ���rR���Zclose_on_errorZofnameZhqxerr ���r ���r���r�������s*���� zBinHex.__init__c�����������������C���s����t�|�}|dkrtd��t|g�|�d��d�}|j|j�}}t|t�rR|�d�}t|t�rf|�d�}||�}t� d|j �}t� d|�j|�j�} ||�|�| �} |�� | ��|�����d�S�)N�?���zFilename too longzlatin-1������>hz>ii)r?���r����bytes�encoder���r���rN���rO����struct�packr���rQ���rR����_write� _writecrc)r���r"���r#����nl�d�tpZcrZd2Zd3Zd4�infor ���r ���r���rS�������s���� zBinHex._writeinfoc�����������������C���s ���t��||�j�|�_|�j�|��d�S�r*���)r@����crc_hqxrP���r9���r/����r���r%���r ���r ���r���r]�������s����z BinHex._writec�����������������C���s4���|�j�dk�rd}nd}|�j�t�||�j����d|�_�d�S�)Nr���rX���z>H)rP���r9���r/���r[���r\���)r����fmtr ���r ���r���r^�������s ���� zBinHex._writecrcc�����������������C���s0���|�j�tkrtd��|�jt|��|�_|��|��d�S�)NzWriting data at the wrong time)rU���rT���r���rQ���r?���r]���rd���r ���r ���r���r/�������s���� zBinHex.writec�����������������C���s,���|�j�dkrtd|�jf���|�����t|�_d�S�)Nr���zIncorrect data size, diff=%r)rQ���r���rR���r^���� _DID_DATArU���r���r ���r ���r���� close_data����s���� zBinHex.close_datac�����������������C���sB���|�j�tk�r|�����|�j�tkr$td��|�jt|��|�_|��|��d�S�)Nz'Writing resource data at the wrong time)rU���rf���rg���r���rR���r?���r]���rd���r ���r ���r���� write_rsrc����s���� zBinHex.write_rsrcc�����������������C���s����|�j�d�u�rd�S�zb|�j�tk�r"|�����|�j�tkr4td��|�jdkrNtd|�jf���|�����W�d�|�_�|�j}|�`|����nd�|�_�|�j}|�`|����0�d�S�)NzClose at the wrong timer���z$Incorrect resource-datasize, diff=%r)rU���rf���rg���r���rR���r^���r9���r0���r=���r ���r ���r���r0�������s$���� �zBinHex.closeN)r���r���r ���r���rS���r]���r^���r/���rg���rh���r0���r ���r ���r ���r���rL�������s��� rL���c�����������������C���s����t�|��}t||�}t�|�d��4}|�d�}|s0q<|�|��q |����W�d����n1�sX0����Y��t|�d�}|�d�}|s|q�|�|��ql|� ���|� ���dS�)zEbinhex(infilename, outfilename): create binhex-encoded copy of a filer�������N) r(���rL���r���r���r���r/���rg���r)���rh���r0���)�inp�outr#���r9����ifpr`���r ���r ���r���r�������s���� & r���c�������������������@���s(���e�Zd�ZdZdd��Zdd��Zdd��ZdS�) �_Hqxdecoderenginez*Read data via the decoder in 4-byte chunksc�����������������C���s���||�_�d|�_d�S�)Nr���)rl����eof�r���rl���r ���r ���r���r�����s����z_Hqxdecoderengine.__init__c�����������������C���s����d}|}|dkr�|�j�r|S�|d�d�d�}|�j�|�}z>t��� �t�|�\}|�_�W�d����n1�sd0����Y��W�q�W�n�tjy����Y�n0�|�j�d�}|s�td��||�}q6||�}|t|��}|s|�j�std��q|S�) z&Read at least wtd bytes (or until EOF)r.���r���r���r>�������Nr���zPremature EOF on binhex file) rn���rl���r���r7���r@���Za2b_hqxZ Incompleter���r?���)r���ZtotalwtdZdecdata�wtdr%���Z decdatacur�newdatar ���r ���r���r�����s*���� . z_Hqxdecoderengine.readc�����������������C���s���|�j�����d�S�r*����rl���r0���r���r ���r ���r���r0���:��s����z_Hqxdecoderengine.closeN)r���r���r ���rG���r���r���r0���r ���r ���r ���r���rm�����s���!rm���c�������������������@���s0���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd S�)�_RledecoderenginezRead data via the RLE-coderc�����������������C���s���||�_�d|�_d|�_d|�_d�S�)Nr.���r���)rl���� pre_buffer�post_bufferrn���ro���r ���r ���r���r���@��s����z_Rledecoderengine.__init__c�����������������C���sD���|t�|�j�kr"|��|t�|�j����|�jd�|��}|�j|d���|�_|S�r*���)r?���rv����_fill)r���rq����rvr ���r ���r���r���F��s ����z_Rledecoderengine.readc�����������������C���sB��|�j�|�j�|d���|�_�|�jjrdt���$�|�jt�|�j���|�_W�d�����n1�sP0����Y��d|�_�d�S�t|�j��}|�j�dd���t d�t �kr�|d�}nX|�j�dd���t kr�|d�}n<|�j�dd���t d�kr�|d�}n|�j�dd��t kr�n|d �}t���,�|�jt�|�j�d�|����|�_W�d�����n1��s$0����Y��|�j�|d���|�_�d�S�) Nrp���r.������rW���r>������r������r���) ru���rl���r���rn���r7���rv���r@���Z rledecode_hqxr?����RUNCHAR)r���rq���Zmarkr ���r ���r���rw���M��s.���� �$ �&z_Rledecoderengine._fillc�����������������C���s���|�j�����d�S�r*���rs���r���r ���r ���r���r0���r��s����z_Rledecoderengine.closeN)r���r���r ���rG���r���r���rw���r0���r ���r ���r ���r���rt���=��s ���%rt���c�������������������@���sL���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dS�)�HexBinc�����������������C���sf���t�|t�rt�|d�}|�d�}|s,td��|dkr6q|dkrqBqt|�}t|�|�_d|�_ |�� ���d�S�)Nr���r���zNo binhex data foundrC�������:r���)rN���rO���r���r���r���r���rm���rt���rl���rP����_readheader)r���rl���ZchZhqxifpr ���r ���r���r���v��s���� zHexBin.__init__c�����������������C���s ���|�j��|�}t�||�j�|�_|S�r*���)rl���r���r@���rc���rP���)r���r?���r%���r ���r ���r����_read���s����zHexBin._readc�����������������C���sN���t��d|�j�d��d�d@�}|�jd@�|�_||�jkrDtd|�j|f���d|�_d�S�)NrX���r���r���i����zCRC error, computed %x, read %x)r[����unpackrl���r���rP���r���)r���Zfilecrcr ���r ���r���� _checkcrc���s���� �zHexBin._checkcrcc�����������������C���s����|���d�}|���t|��}|���d�}|�����|dd��}|dd��}t�d|dd���d�}t�d|dd ���d�|�_t�d|d d���d�|�_||�_t��|�_||�j_ ||�j_ ||�j_t|�_ d�S�) Nr������������ ���rX�������r���z>l����)r�����ordr����r[���r����rQ���rR����FNamer���r���r���r���rT���rU���)r���r?����fname�rest�typeZcreator�flagsr ���r ���r���r������s���� zHexBin._readheaderc�����������������G���sj���|�j�tkrtd��|r,|d�}t||�j�}n|�j}d}t|�|k�rZ||��|t|����}q6|�j|�|�_|S�)NzRead data at wrong timer���r.���)rU���rT���r����minrQ���r?���r����)r����nrx���r ���r ���r���r������s���� zHexBin.readc�����������������C���s6���|�j�tkrtd��|�jr$|��|�j�}|�����t|�_�d�S�)Nzclose_data at wrong time)rU���rT���r���rQ���r����r����rf����r����dummyr ���r ���r���rg������s���� zHexBin.close_datac�����������������G���sZ���|�j�tkr|�����|�j�tkr$td��|r>|d�}t||�j�}n|�j}|�j|�|�_|��|�S�)Nz Read resource data at wrong timer���)rU���rT���rg���rf���r���r����rR���r����)r���r����r ���r ���r���� read_rsrc���s���� zHexBin.read_rsrcc�����������������C���sT���|�j�d�u�rd�S�z.|�jr"|��|�j�}|�����W�d�|�_�|�j����nd�|�_�|�j����0�d�S�r*���)rU���rR���r����r����rl���r0���r����r ���r ���r���r0������s���� �zHexBin.closeN)r���r���r ���r���r����r����r���r���rg���r����r0���r ���r ���r ���r���r}���u��s��� r}���c�����������������C���s����t�|��}|j}|s|j}t�|d��,}|�d�}|s6qB|�|��q&W�d����n1�sV0����Y��|����|�d�}|r�t |d�}|�|��|�d�}|s�q�|�|��q�|� ���|� ���dS�)z6hexbin(infilename, outfilename) - Decode binhexed filerM���ri���N)r}���r���r����r���r���r���r/���rg���r����r)���r0���)rj���rk���rl���r#���r9���r`���r ���r ���r���r������s$���� * r���)rG���r@���� contextlibr���r���r[���r3����warnr6����__all__� Exceptionr���rT���rf���rI���r;���r|���r���r(���r)����contextmanagerr7���r8���rH���rL���r���rm���rt���r}���r���r ���r ���r ���r����<module>���s:���� (^+8h