File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/zmq/utils/__pycache__/z85.cpython-310.pyc
Back
o ;j. � @ s^ d Z ddlmZ ddlZdZdd� ee�D �Zdd� ed �D �ddd � Zdd� Z d d� Z dS )z�Python implementation of Z85 85-bit encoding Z85 encoding is a plaintext encoding for a bytestring interpreted as 32bit integers. Since the chunks are 32bit, a bytestring must be a multiple of 4 bytes. See ZMQ RFC 32 for details. � )�annotationsNsU 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#c C s i | ]\}}||�qS � r )�.0�idx�cr r �A/opt/saltstack/salt/lib/python3.10/site-packages/zmq/utils/z85.py� <dictcomp> s r c C s g | ]}d | �qS )�U r )r �ir r r � <listcomp> s r � ���c C sv t | �d rtdt | �� ���t | �d }t�d|d�d�| �}g }|D ]}tD ] }|�t|| d � q(q$t|�S )zencode raw bytes into Z85� z"length must be multiple of 4, not �>�d�Ir )�len� ValueError�struct�unpack�_85s�append�Z85CHARS�bytes)�rawbytes�nvalues�values�encoded�v�offsetr r r �encode s �r c C s� t | t�rz| �d�} W n ty td��w t| �d r'tdt| �� ���t| �d }g }tdt| �d�D ]}d}tt�D ]\}}|t | || | 7 }q?|� |� q7tjd|d�d�g|�R � S ) z3decode Z85 bytes to raw bytes, accepts ASCII string�asciiz4string argument should contain only ASCII charactersr z&Z85 length must be multiple of 5, not r r r r ) � isinstance�strr �UnicodeEncodeErrorr r �range� enumerater �Z85MAPr r �pack)Zz85bytesr r r �value�jr r r r �decode( s �r+ )�__doc__� __future__r r r r&