
    BUhe                         d dl Z d dlmZmZmZmZ d dlmZ erd dlm	Z	m
Z
 eeeee   eeef   f   f   Z G d d      Z G d de      Zy)	    N)TYPE_CHECKINGAnyOptionalUnion)QRModuleDrawer)ActiveWithNeighborsQRCodec                   
   e Zd ZU dZdZee   ed<   dZee	e      ed<   dZ
dZdZd Zej                  d        Zd	ed
eddfdZd Zej                  dd       Zd Zej                  defd       Zd Zd ZddZd	ed
efdZy)	BaseImagez)
    Base QRCode image output class.
    Nkindallowed_kindsFTc                    || _         || _        || _        | j                  | j                   dz  z   | j                  z  | _        |j	                  d      | _         | j                  di || _        | j                          y )N   qrcode_modules )	borderwidthbox_size
pixel_sizepopmodules	new_image_imginit_new_image)selfr   r   r   argskwargss         R/var/www/html/profi_bot/bot/venv/lib/python3.12/site-packages/qrcode/image/base.py__init__zBaseImage.__init__   sj    
 ::a74==Hzz"23"DNN,V,	    c                      y)z9
        Draw a single rectangle of the QR code.
        Nr   r   rowcols      r   drawrectzBaseImage.drawrect!       r    r#   r$   qrr	   c                     t        d      )zV
        Draw a single rectangle of the QR code given the surrounding context
        zBaseImage.drawrect_contextNotImplementedError)r   r#   r$   r'   s       r   drawrect_contextzBaseImage.drawrect_context'   s     "">??r    c                     t        d      )z4
        Processes QR code after completion
        zBaseImage.drawimager)   r   s    r   processzBaseImage.process-   s     ""788r    c                      y)z&
        Save the image file.
        Nr   )r   streamr   s      r   savezBaseImage.save3   r&   r    c                     || j                   z   | j                  z  }|| j                   z   | j                  z  }||f|| j                  z   dz
  || j                  z   dz
  ffS )z
        A helper method for pixel-based image generators that specifies the
        four pixel coordinates for a single rect.
           )r   r   )r   r#   r$   xys        r   	pixel_boxzBaseImage.pixel_box9   sg    
 4;;$--/4;;$--/F"A$5$9:
 	
r    returnc                      y)zT
        Build the image class. Subclasses should return the class created.
        Nr   r   r   s     r   r   zBaseImage.new_imageE   r&   r    c                      y Nr   r-   s    r   r   zBaseImage.init_new_imageK   s    r    c                     | j                   S )z@
        Return the image class for further processing.
        )r   r9   s     r   	get_imagezBaseImage.get_imageN   s     yyr    c                     || j                   }| j                   xs || j                  v }|r ||      }|s|| j                  v }|s$t        dt        |       j                   d|       |S )z%
        Get the image type.
        zCannot set z	 type to )r   r   
ValueErrortype__name__)r   r   	transformalloweds       r   
check_kindzBaseImage.check_kindT   sz     <99D(((FDD4F4F,FT?D$"4"44{4:+>+>*?yOPPr    c                     |dk  xr |dk  xs4 |dk  xr | j                   |z
  dk  xs | j                   |z
  dk  xr |dk  S )zB
        Find whether the referenced module is in an eye.
              )r   r"   s      r   is_eyezBaseImage.is_eyec   sW    
 1W q 2a0DJJ,q02

S 1$0q	
r    r;   )rA   
__module____qualname____doc__r   r   str__annotations__r   tupleneeds_contextneeds_processingneeds_drawrectr   abcabstractmethodr%   intr+   r.   r1   r6   r   r   r   r=   rD   rH   r   r    r   r   r      s     D(3-*.M8E#J'.MN 	 
@C @c @x @9 	 


 	S  

# 
C 
r    r   c                        e Zd ZU ee   ed<   i Zeed<   defdZdefdZ	dZ
ded<   ded	<   d
d
ddeeed
f   d	eeed
f   f fdZdeeed
f   dee   fdZ fdZdededdfdZ xZS )BaseImageWithDrawerdefault_drawer_classdrawer_aliasesr7   c                 "    | j                         S r;   rW   r-   s    r   get_default_module_drawerz-BaseImageWithDrawer.get_default_module_drawerr       ((**r    c                 "    | j                         S r;   rZ   r-   s    r   get_default_eye_drawerz*BaseImageWithDrawer.get_default_eye_draweru   r\   r    Tr   module_drawer
eye_drawerN)r_   r`   c                    | j                  |      xs | j                         | _        | j                  |      xs | j                         | _        t        |   |i | y r;   )
get_drawerr[   r_   r^   r`   superr   )r   r_   r`   r   r   	__class__s        r   r   zBaseImageWithDrawer.__init__}   sY     OOM*Nd.L.L.N 	 //*5V9T9T9V$)&)r    drawerc                 Z    t        |t              s|S | j                  |   \  }} |di |S )Nr   )
isinstancerL   rX   )r   re   
drawer_clsr   s       r   rb   zBaseImageWithDrawer.get_drawer   s6     &#&M!008
F#F##r    c                     | j                   j                  |        | j                  j                  |        t        |          S )N)img)r_   
initializer`   rc   r   )r   rd   s    r   r   z"BaseImageWithDrawer.init_new_image   s=    %%$%/""t",w%''r    r#   r$   r'   r	   c                    | j                  ||      }| j                  ||      r| j                  n| j                  }|j                  r|j                  ||      nt        |j                  |   |         }|j                  ||       y r;   )	r6   rH   r`   r_   needs_neighborsactive_with_neighborsboolr   r%   )r   r#   r$   r'   boxre   	is_actives          r   r+   z$BaseImageWithDrawer.drawrect_context   sw    nnS#&$(KKS$9t?Q?Q %% $$S#.bjjoc*+ 	 	Y'r    )rA   rI   rJ   r@   r   rM   rX   DrawerAliasesr[   r^   rO   r   rL   r   r   rb   r   rT   r+   __classcell__)rd   s   @r   rV   rV   n   s    ~..$&NM&+> ++ + M##  
 ;?7;	* ^S$67* .#t34	* $NC56$	.	!$(	(C 	(c 	(x 	(r    rV   )rR   typingr   r   r   r   &qrcode.image.styles.moduledrawers.baser   qrcode.mainr   r	   dictrL   rN   r@   rr   r   rV   r   r    r   <module>rx      sX    
 6 6 A7 S%^ 4d38n DEEF^
 ^
B6() 6(r    