U
    c6{i—  ã                   @   s¾   d dl Z d dlmZ d dlmZ d dlmZ ddgZG dd„ dejƒZej	 
¡ Z	e	 ejjeƒ i¡ ej 
¡ Ze ejjeƒ i¡ G d	d
„ d
ejƒZG dd„ dejƒZeƒ Zedœdd„ZdS )é    N)Úerror)Úencoder)ÚunivÚEncoderÚencodec                   @   s   e Zd Zedd„ ƒZdS )Ú
SetEncoderc                    sš   | \‰ }|dkrˆ }n|}|j tjj kr�|js�|dkr@ˆ  ¡ jS ‡ fdd„|jjD ƒ}t|ƒdkr€t 	dt|ƒrtdpvdˆ f ¡‚||d  jS n|jS dS )	zeSort SET components by tag

        Sort depending on the actual Choice value (dynamic sort)
        Nc                    s   g | ]}|j ˆ kr|j ‘qS © )Úname)Ú.0Z	namedType©Ú	componentr   ú</tmp/pip-unpacked-wheel-twf0w2k9/pyasn1/codec/der/encoder.pyÚ
<listcomp>#   s    
ÿz0SetEncoder._componentSortKey.<locals>.<listcomp>é   z%s components for Choice at %rz	Multiple zNone r   )
ÚtypeIdr   ZChoiceÚtagSetZgetComponentZcomponentTypeZ
namedTypesÚlenr   ZPyAsn1Error)ZcomponentAndTypeZasn1SpecZcompTypeÚnamesr   r   r   Ú_componentSortKey   s    
ÿzSetEncoder._componentSortKeyN)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdZdZeZeZdS )ÚSingleItemEncoderTr   N)r   r   r   ZfixedDefLengthModeZfixedChunkSizeÚTAG_MAPÚTYPE_MAPr   r   r   r   r   ?   s   r   c                   @   s   e Zd ZeZdS )r   N)r   r   r   r   ZSINGLE_ITEM_ENCODERr   r   r   r   r   G   s   )Úattrc                 C   sB   dddœ  | ¡ }r6t | › d|› d�t¡ tƒ | S t| ƒ‚d S )Nr   r   )ZtagMapZtypeMapz is deprecated. Please use z	 instead.)ÚgetÚwarningsÚwarnÚDeprecationWarningÚglobalsÚAttributeError)r   ZnewAttrr   r   r   Ú__getattr__z   s    
r#   )r   Zpyasn1r   Zpyasn1.codec.cerr   Zpyasn1.typer   Ú__all__r   r   ÚcopyÚupdateÚSetr   r   r   r   r   r   Ústrr#   r   r   r   r   Ú<module>   s&    
 þ
 þ1