
    N&iF                     8   d Z dZddlZddlmZmZ ddlmZ ddlmZm	Z	 ddl
mZmZ ddlmZ 	 ddlZn3# e$ r+ 	 ddlZ G d	 d
e          Zee_        n# e$ r dZY nw xY wY nw xY wej        dk    rddlmZ nddlmZ  G d de          Z G d de          ZdS )z+
Directives for figures and simple images.
reStructuredText    N)nodesutils)	Directive)
directivesstates)fully_normalize_namewhitespace_normalize_name)set_classesc                       e Zd ZdS )PILN)__name__
__module____qualname__     s/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/docutils/parsers/rst/directives/images.pyr   r      s          r   r   )   r   )url2pathnamec            	           e Zd ZdZdZeez   Zd ZdZdZdZ	e
j        e
j        e
j        e
j        ee
j        e
j        e
j        dZd Zd	S )
Image)leftcenterright)topmiddlebottomc                 @    t          j        | t          j                  S N)r   choicer   align_valuesarguments    r   alignzImage.align*   s      5+=>>>r      r   T)altheightwidthscaler$   targetclassnamec           
         d| j         v rt          | j        t          j                  r\| j         d         | j        vrG|                     d| j        d| j         d         dd                    | j                  d          n[| j         d         | j	        vrG|                     d| j        d| j         d         dd                    | j	                  d          g }t          j        | j        d                   }|| j         d	<   d }d
| j         v rt          j        | j         d
                                                   }d |D             }| j                            || j        | j                  \  }}|dk    rt%          j        |          }nr|dk    rWt%          j        t)          |          t+          |                    }||_        | j        j                            |           n|                    |           | j         d
= t5          | j                    t%          j        | j        fi | j         }|                     |           |r||z  }||gz   S ||gz   S )Nr$   z
Error in "z" directive: "zp" is not a valid value for the "align" option within a substitution definition.  Valid values for "align" are: "z", "z".zO" is not a valid value for the "align" option.  Valid values for "align" are: "r   urir*   c                     g | ]}|S r   r   ).0lines     r   
<listcomp>zImage.run.<locals>.<listcomp>T   s    ,,,dT,,,r   refuri)r3   refname)r4   r,   )options
isinstancestater   SubstitutionDefalign_v_valueserrorr,   joinalign_h_valuesr   r.   	argumentsescape2null
splitlinesparse_target
block_textlinenor   	referencer	   r
   indirect_reference_namedocumentnote_refnameappendr   imageadd_name)selfmessagesrC   reference_nodeblocktarget_typedata
image_nodes           r   runz	Image.run<   s   dl""$*f&<== :<(0CCC***  999dl7&;&;&;!;;t':;;;;	=> > > D g&d.AAAjjj yyy$,w"7"7"7{{4#677779: : :
 N4>!#455	'Ut|##&X&( ((2
 ,,e,,,E $
 7 7t!5 !5Kh&&!&!=!=!=	))!&0662488": ": ": :>6
#00@@@@%%%X&DL!!![AADLAA
j!!! 	+j(N~...zl**r   N)r   r   r   r<   r9   r!   r$   required_argumentsoptional_argumentsfinal_argument_whitespacer   	unchangedlength_or_unitless length_or_percentage_or_unitless
percentageunchanged_requiredclass_optionoption_specrQ   r   r   r   r   r   $   s        0N0N!N2L? ? ?  $$.':&G&1!':&3%/1 1K-+ -+ -+ -+ -+r   r   c                   ~    e Zd Zd Zd Zej                                        Zeed<   ej	        ed<   eed<   dZ
d ZdS )	Figurec                 @    t          j        | t          j                  S r   )r   r    r]   r<   r"   s    r   r$   zFigure.alignn   s     6+@AAAr   c                 `    |                                  dk    rdS t          j        | d          S )NrH   px)lowerr   rW   r"   s    r   figwidth_valuezFigure.figwidth_valueq   s/    >>w&&7>xNNNr   figwidthfigclassr$   Tc                    | j                             dd           }| j                             dd           }| j                             dd           }t          j        |           \  }t	          |t
          j                  r|gS t          j        d|          }|dk    rt          r| j	        j
        j        j        rt          |d                   }	 t          j                            |                    t!          j                                        }| j	        j
        j        j                            |                    dd                     d	|j        d
         z  |d<   ~n# t,          t.          f$ r Y nw xY wn|||d<   |r|dxx         |z  cc<   |r||d<   | j        r;t          j                    }| j	                            | j        | j        |           |d
         }	t	          |	t
          j                  r;t          j        |	j        dg|	j        R  }
|	j         |
_         |	j!        |
_!        ||
z  }nut	          |	t
          j"                  rtG          |	          d
k    sH| j$        j%        &                    dt          j'        | j(        | j(                  | j)                  }||gS tG          |          dk    r|t          j*        dg|dd          R  z  }|gS )Nrc   rd   r$    rH   r.   \/z%dpxr   r(   classesz4Figure caption must be a paragraph or empty comment.)r1   r%   )+r5   popr   rQ   r6   r   system_messagefigurer   r7   rE   settingsfile_insertion_enabledr   openencodesysgetfilesystemencodingrecord_dependenciesaddreplacesizeIOErrorUnicodeEncodeErrorcontentElementnested_parsecontent_offset	paragraphcaption	rawsourcechildrensourcer1   commentlenstate_machinereporterr:   literal_blockrA   rB   legend)rJ   rc   
figclassesr$   rP   figure_node	imagepathimgnode
first_noder~   r:   s               r   rQ   z
Figure.run}   s   <##J55\%%j$77
  $//	$j%"677 	 <l2z22w tz*3J (E):;;		)..%,,S-F-H-HIIK KC
 J'0DHH!))$446 6 6+1CHQK+?K(  !34   D !#+K  	1	"""j0""" 	)#(K < 	;=??DJ##DL$2EtLLLaJ*eo66 ,-
(<b >)3)<> > >!+!2)w& U];; ,j//Q..*399L)$/4?KK; : ( ( $U++4yy1}}u|B:abb::::}s   AE( (E<;E<N)r   r   r   r$   rb   r   r[   copyr   rZ   has_contentrQ   r   r   r   r]   r]   l   s        B B BO O O #((**K,K
(5K
 KK. . . . .r   r]   )__doc____docformat__rq   docutilsr   r   docutils.parsers.rstr   r   r   docutils.nodesr	   r
   docutils.parsers.rst.rolesr   	PIL.Imager   ImportErrorr   objectversion_infourllib.requestr   urllibr]   r   r   r   <module>r      s  
  # 


 ! ! ! ! ! ! ! ! * * * * * * 3 3 3 3 3 3 3 3 J J J J J J J J 2 2 2 2 2 2   &		    v+++++++######E+ E+ E+ E+ E+I E+ E+ E+P? ? ? ? ?U ? ? ? ? ?s2   3 A#AA#AA#AA#"A#