o
    ÊtBhË  ã                   @   sH   d 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
zrestructuredtext ené    )ÚBarcode)Úitf)ÚIllegalCharacterErrorgš™™™™™É?gš™™™™™@c                   @   sD   e Zd ZdZd Zddd„Zdd„ ZeZd	d
„ Zdd„ Z	ddd„Z
d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é   é   c                 C   sL   |  ¡ stdƒ‚t|ƒd dkrd| }|| _|pt ¡ | _|| _|| _d S )Nz"ITF code can only contain numbers.r   r   Ú0)	Úisdigitr   ÚlenÚcoder   Údefault_writerÚwriterÚnarrowÚwide)Úselfr   r   r   r   © r   úb/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/barcode/itf.pyÚ__init__    s   
zITF.__init__c                 C   ó   | j S ©N©r   ©r   r   r   r   Ú__unicode__+   ó   zITF.__unicode__c                 C   r   r   r   r   r   r   r   Úget_fullcode0   r   zITF.get_fullcodec                 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                 C   s,   t | j tdœ}| |pi ¡ t | ||¡S )N)Úmodule_widthÚ
quiet_zone)ÚMIN_SIZEr   ÚMIN_QUIET_ZONEÚupdater   Úrender)r   Úwriter_optionsÚtextÚoptionsr   r   r   r6   H   s
   þz
ITF.render)Nr   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   r   Ú__str__r   r0   r6   r   r   r   r   r      s    
r   N)r=   Ú__docformat__Úbarcode.baser   Úbarcode.charsetsr   Úbarcode.errorsr   r3   r4   r   r   r   r   r   Ú<module>   s    