
    
gx                         d dl Z d dlmZmZmZ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dS )	    N)TYPE_CHECKINGAnyDictOptionalTupleType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dS )	BaseImagez)
    Base QRCode image output class.
    Nkindallowed_kindsFTc                     || _         || _        || _        | j        | j         dz  z   | j        z  | _        |                    d          | _         | j        di || _        |                                  d S )N   qrcode_modules )	borderwidthbox_size
pixel_sizepopmodules	new_image_imginit_new_image)selfr   r   r   argskwargss         C/var/www/api/venv/lib/python3.11/site-packages/qrcode/image/base.py__init__zBaseImage.__init__   sw    
 :a74=Hzz"233"DN,,V,,	    c                     dS )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88r#   c                     dS )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   s[    
 4;$-/4;$-/F"A$5$9:
 	
r#   returnc                     dS )zT
        Build the image class. Subclasses should return the class created.
        Nr   r   r    s     r!   r   zBaseImage.new_imageE   r)   r#   c                     d S Nr   r0   s    r!   r   zBaseImage.init_new_imageK   s    r#   c                     | j         S )z@
        Return the image class for further processing.
        )r   r<   s     r!   	get_imagezBaseImage.get_imageN   s     yr#   c                     || j         }| j         p|| j        v }|r ||          }|s	|| j        v }|s't          dt          |           j         d|           |S )z%
        Get the image type.
        NzCannot set z	 type to )r   r   
ValueErrortype__name__)r   r   	transformalloweds       r!   
check_kindzBaseImage.check_kindT   s     <9D((FDD4F,F 	59T??D 5$"44 	QO4::+>OOOOPPPr#   c                 j    |dk     r|dk     p'|dk     o| j         |z
  dk     p| j         |z
  dk     o|dk     S )zB
        Find whether the referenced module is in an eye.
              )r   r%   s      r!   is_eyezBaseImage.is_eyec   sS    
 1W q 2a0DJ,q02
S 1$0q	
r#   r>   )rD   
__module____qualname____doc__r   r   str__annotations__r   r   needs_contextneeds_processingneeds_drawrectr"   abcabstractmethodr(   intr.   r1   r4   r9   r   r   r   r@   rG   rK   r   r#   r!   r   r      s~          D(3-*.M8E#J'...MN   	  
@C @c @x @ @ @ @9 9 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_aliasesr:   c                 *    |                                  S r>   rY   r0   s    r!   get_default_module_drawerz-BaseImageWithDrawer.get_default_module_drawerr       ((***r#   c                 *    |                                  S r>   r\   r0   s    r!   get_default_eye_drawerz*BaseImageWithDrawer.get_default_eye_draweru   r^   r#   Tr
   module_drawer
eye_drawerN)ra   rb   c                    |                      |          p|                                 | _        |                      |          p|                                 | _         t                      j        |i | d S r>   )
get_drawerr]   ra   r`   rb   superr"   )r   ra   rb   r   r    	__class__s        r!   r"   zBaseImageWithDrawer.__init__}   su     OOM**Nd.L.L.N.N 	 //*55V9T9T9V9V$)&)))))r#   drawerc                 `    t          |t                    s|S | j        |         \  }} |di |S )Nr   )
isinstancerO   rZ   )r   rg   
drawer_clsr    s       r!   rd   zBaseImageWithDrawer.get_drawer   sC     &#&& 	M!08
Fz##F###r#   c                     | j                             |            | j                            |            t                                                      S )N)img)ra   
initializerb   re   r   )r   rf   s    r!   r   z"BaseImageWithDrawer.init_new_image   sL    %%$%///""t",,,ww%%'''r#   r&   r'   r*   r   c                     |                      ||          }|                     ||          r| j        n| j        }|j        r|                    ||          nt          |j        |         |                   }|                    ||           d S r>   )	r9   rK   rb   ra   needs_neighborsactive_with_neighborsboolr   r(   )r   r&   r'   r*   boxrg   	is_actives          r!   r.   z$BaseImageWithDrawer.drawrect_context   s    nnS#&&$(KKS$9$9Qt?Q %,B$$S#...bjoc*++ 	 	Y'''''r#   )rD   rL   rM   r   r
   rP   rZ   DrawerAliasesr]   r`   rQ   r	   rO   r"   r   rd   r   rV   r.   __classcell__)rf   s   @r!   rX   rX   n   sj        ~....$&NM&&&+> + + + ++ + + + + M####    
 ;?7;	* * * ^S$67* .#t34	* * * * * * $NC56$	.	!$ $ $ $( ( ( ( (	(C 	(c 	(x 	( 	( 	( 	( 	( 	( 	( 	(r#   rX   )rT   typingr   r   r   r   r   r   r	   &qrcode.image.styles.moduledrawers.baser
   qrcode.mainr   r   rO   rt   r   rX   r   r#   r!   <module>ry      s   



 I I I I I I I I I I I I I I I I I I A A A A A A 877777777 S%^ 4d38n DEEF^
 ^
 ^
 ^
 ^
 ^
 ^
 ^
B6( 6( 6( 6( 6() 6( 6( 6( 6( 6(r#   