o
    f÷§iã  ã                   @  sT   d Z ddlmZ dZddlmZ ddlmZ ddlm	Z	 dZ
dZG d	d
„ d
eƒZdS )z<Module: barcode.itf

:Provided barcodes: Interleaved 2 of 5
é    )Úannotationszrestructuredtext en)ÚBarcode)Úitf)ÚIllegalCharacterErrorgš™™™™™É?gš™™™™™@c                      sN   e Zd ZdZd Zdddd„Zdd
d„Zdd„ Zddd„Zd‡ fdd„	Z	‡  Z
S )ÚITFa¶  Initializes a new ITF instance.

    :parameters:
        code : String
            ITF (Interleaved 2 of 5) numeric string
        writer : barcode.writer Instance
            The writer to render the barcode (default: SVGWriter).
        narrow: Integer
            Width of the narrow elements (default: 2)
        wide: Integer
            Width of the wide elements (default: 5)
            wide/narrow must be in the range 2..3
    Né   é   ÚreturnÚNonec                 C  sL   |  ¡ stdƒ‚t|ƒd dkrd| }|| _|p|  ¡ | _|| _|| _d S )Nz"ITF code can only contain numbers.r   r   Ú0)Úisdigitr   ÚlenÚcodeÚdefault_writerÚwriterÚnarrowÚwide)Úselfr   r   r   r   © r   ú?/home/ubuntu/.local/lib/python3.10/site-packages/barcode/itf.pyÚ__init__"   s   
zITF.__init__Ústrc                 C  ó   | j S ©N©r   ©r   r   r   r   Ú__str__-   ó   zITF.__str__c                 C  r   r   r   r   r   r   r   Úget_fullcode0   r   zITF.get_fullcodeú	list[str]c                 C  sî   t j}tdt| jƒdƒD ]/}t| j| ƒ}t| j|d  ƒ}tdƒD ]}|t j| |  ¡ 7 }|t j| |  ¡ 7 }q"q|t j	7 }d}|D ].}|dkrR|d| j
 7 }|dkr]|d	| j
 7 }|d
krh|d| j 7 }|dkrs|d	| j 7 }qE|gS )Nr   r   é   r   Ú ÚWÚ1Úwr   ÚNÚn)r   ÚSTARTÚranger   r   ÚintÚCODESÚupperÚlowerÚSTOPr   r   )r   ÚdataÚiÚ
bars_digitÚspaces_digitÚjÚrawÚer   r   r   Úbuild3   s*   þ
€z	ITF.buildc                   s,   t | j tdœ}| |pi ¡ tƒ  ||¡S )N)Úmodule_widthÚ
quiet_zone)ÚMIN_SIZEr   ÚMIN_QUIET_ZONEÚupdateÚsuperÚrender)r   Úwriter_optionsÚtextÚoptions©Ú	__class__r   r   r<   H   s
   þz
ITF.render)Nr   r   )r	   r
   )r	   r   )r	   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   r   r   r5   r<   Ú__classcell__r   r   r@   r   r      s    

r   N)rE   Ú
__future__r   Ú__docformat__Úbarcode.baser   Úbarcode.charsetsr   Úbarcode.errorsr   r8   r9   r   r   r   r   r   Ú<module>   s    