
    BPcr                     F    d Z ddlmZ ddlmZ g dZ G d de          ZdS )	zL
Python barcode renderer for UPCE barcodes. Designed for use with Inkscape.
   )
EanBarcode    )inkex_gettext)
111000110100110010110001101100100110100011101010101001100101c                   h    e Zd ZdZdZdZddgZddgZdZdd
Z	d Z
ed             Zed             ZdS )Upcez%Generate EAN6/UPC-E barcode generatorupce
               020Fc                     t          j        dgd|dd         d|d                   | _        t          j        |d         |dd         t                    }|                     |          S )zGenerate a UPC-E Barcode0   Nr   )r   spacetextencode_interleavedFAMSenclose)selfnumguidecodes       ./usr/share/inkscape/extensions/barcode/Upce.py_encodezUpce._encode3   s\    $cUAs2A2w3r7CC	,SWc"1"gtDD||D!!!    c                     t          |          dk    rt                              |          }|                     |          }t                              |          |z   S )zGenerate a UPCE Checksumr   )lenr   convert_e2aget_checksumconvert_a2e)r"   numberresults      r&   append_checksumzUpce.append_checksum9   sR    v;;!%%f--F""6**''&00r(   c                    | d         dk    st          |           dk    rt          t          d                    | dd         }| dd         }|dd         d	k    s|dd         d
k    s|dd         dk    r-|dd         dk    r|dd         |dd         z   |d         z   S n|dd         dk    r'|dd         d	k    r|dd         |dd         z   dz   S nc|d         dk    r%|dd         dk    r|dd         |d         z   dz   S n2|dd         dk    r$t          |d                   dk    r||d         z   S t          t          d                    )z,Converting UPC-A to UPC-E, may cause errors.r   r   r   zInvalid UPC Numberr   r   r   N00010020000      3   00004)r*   
ValueError_int)r.   makerproducts      r&   r-   zUpce.convert_a2e@   s    !9s6{{b00Q344555 qs2, 9qrre!3!3uQRRyE7I7Irr{d""RaRy7122;.q99 #1Q3Z4rr{e##RaRy7122;.44 $1X__rr{f$$QqSzGAJ.44 %RaR[F""s71:':': 71:%%/00111r(   c                 R   t          |           dk    rdS | d         dv r$d| dd         z   | d         z   dz   | dd         z   S | d         dk    rd| dd	         z   d
z   | d	d         z   S | d         dk    rd| dd         z   d
z   | d         z   S d| dd         z   dz   | d         z   S )z,Convert UPC-E to UPC-A by padding with zerosr   Nr7   )r   12r   r   r:   r8   r6   00000r;   r9   )r*   )r.   s    r&   r+   zUpce.convert_e2ab   s    
 v;;!4!9''#fQi/&86!A#;FF!9#g-qs;;!9#g-q	99VBQBZ&(6!944r(   N)F)__name__
__module____qualname____doc__name	font_sizelengthschecks
center_barr'   r0   staticmethodr-   r+    r(   r&   r   r   *   s        //DI"gGWFJ" " " "1 1 1 2 2 \2B 5 5 \5 5 5r(   r   N)rH   BaseEanr   inkex.localizationr   r=   r    r   rO   r(   r&   <module>rR      s   &         1 1 1 1 1 1  F5 F5 F5 F5 F5: F5 F5 F5 F5 F5r(   