
    -Ph                        d dl mZ d dlZd dlZd dlZd dlZej        rddlm	Z	  G d dej
                  Z G d d	e          Z G d
 de          Z G d de          ZdS )    )annotationsN   )	Argumentsc                     e Zd ZddZej        dd            Zej        dd            Zeej        dd	                        Z	eej        dd
                        Z
eej        dd                        Zeej        dd                        Zeej        dd                        Zeej        dd                        ZddZdS )
SampleImplargsr   c                   |j         | _         |j        | _        t          j        dd| j                                                   | _        | j                                        | _        | j                                        | _	        d| _
        |j        | _        |j        r|j                            d          ng | _        d S )Nz	[^a-z0-9]_z1.0.0,)nameversionresublowerlowercase_tokenupperuppercase_token
capitalizecapitalized_tokenmeson_versionforcedepssplitdependencies)selfr   s     _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/templates/sampleimpl.py__init__zSampleImpl.__init__   s    I	|!vlC9J9JKK#399;;!%!5!@!@!B!B$Z
48IEDIOOC0002    returnNonec                    d S N r   s    r   create_executablezSampleImpl.create_executable       r   c                    d S r"   r#   r$   s    r   create_libraryzSampleImpl.create_library    r&   r   strc                    d S r"   r#   r$   s    r   exe_templatezSampleImpl.exe_template$   	     	r   c                    d S r"   r#   r$   s    r   exe_meson_templatezSampleImpl.exe_meson_template)   r,   r   c                    d S r"   r#   r$   s    r   lib_templatezSampleImpl.lib_template.   r,   r   T.Optional[str]c                    d S r"   r#   r$   s    r   lib_test_templatezSampleImpl.lib_test_template3   r,   r   c                    d S r"   r#   r$   s    r   lib_meson_templatezSampleImpl.lib_meson_template8   r,   r   c                    d S r"   r#   r$   s    r   
source_extzSampleImpl.source_ext=   r,   r   c                J    d                     d | j        D                       S )N c              3  "   K   | ]
}d | dV  dS )z
  dependency('z'),Nr#   ).0ds     r   	<genexpr>z2SampleImpl._format_dependencies.<locals>.<genexpr>C   s.      LLQ0!000LLLLLLr   )joinr   r$   s    r   _format_dependencieszSampleImpl._format_dependenciesB   s&    wwLL$:KLLLLLLr   N)r   r   r   r    r   r)   )r   r1   )__name__
__module____qualname__r   abcabstractmethodr%   r(   propertyr+   r.   r0   r3   r5   r7   r?   r#   r   r   r   r      s       F F F F 	    	        X     X     X     X     X     XM M M M M Mr   r   )	metaclassc                  "    e Zd ZdZddZddZdS )	ClassImplz+For Class based languages, like Java and C#r   r    c                   | j          d| j         }t          j                            |          sct          |dd          5 }|                    | j                            | j	        | j                              d d d            n# 1 swxY w Y   | j
        st          j                            d          st          ddd          5 }|                    | j                            | j	        | j	        || j        | j        |                                                      d d d            d S # 1 swxY w Y   d S d S )N.wutf-8encoding)project_name
class_namemeson.buildrQ   exe_namesource_namer   r   r   )r   r7   ospathexistsopenwriter+   formatr   r   r.   r   r   r?   r   rV   fs      r   r%   zClassImpl.create_executableJ   s   /CC$/CCw~~k** 	Uk3999 UQ)00di<@<R 1 T T U U UU U U U U U U U U U U U U U U : 	bRW^^M:: 	bmS7;;; bq/66DI@D	CN?C|EIEWDHD]D]D_D_ 7 a a b b bb b b b b b b b b b b b b b b b b b	b 	bs%   :B		BBAD33D7:D7c                   | j          d| j         }| j          d| j         }| j        | j        | j          d| j         ||| j         d| j        | j        | j        | j        | j        |                                 d}t          j	        
                    |          sOt          |dd          5 }|                     | j        j        d	i |           d d d            n# 1 swxY w Y   | j        rnt          j	        
                    |          sOt          |dd          5 }|                     | j        j        d	i |           d d d            n# 1 swxY w Y   | j        st          j	        
                    d          sRt          ddd          5 }|                     | j        j        d	i |           d d d            d S # 1 swxY w Y   d S d S )
NrL   _test._test)utokenltoken
class_testrR   source_filetest_source_filetest_exe_namerQ   lib_name	test_namer   r   r   rM   rN   rO   rS   r#   )r   r7   r   r   r   r   r   r?   rW   rX   rY   rZ   r[   r0   r\   r3   r   r5   r   rh   ri   kwargsr^   s        r   r(   zClassImpl.create_libraryY   s   ,@@t@@-FFT_FF	 0 0#'#9 @ @ @ $ 6!)&/&*&:#A#A#A"&)"2#3!\#'#5"&";";"="=  w~~h'' 	<hg666 <!0)0::6::;;;< < < < < < < < < < < < < < <! 	A"'..*C*C 	Aiw777 A15.5????@@@A A A A A A A A A A A A A A A: 	BRW^^M:: 	BmS7;;; Bq6/6@@@@AAAB B B B B B B B B B B B B B B B B B	B 	Bs6   .&C  C$'C$#&EEE&GGGNr@   )rB   rC   rD   __doc__r%   r(   r#   r   r   rJ   rJ   F   sL        55b b b bB B B B B Br   rJ   c                  *    e Zd ZdZd	dZd
dZd	dZdS )FileImplz$File based languages without headersr   r    c                x   | j          d| j         }t          j                            |          s]t          |dd          5 }|                    | j                            | j	                             d d d            n# 1 swxY w Y   | j
        st          j                            d          st          ddd          5 }|                    | j                            | j	        | j	        || j        | j        |                                                      d d d            d S # 1 swxY w Y   d S d S )NrL   rM   rN   rO   )rQ   rS   rT   )r   r7   rW   rX   rY   rZ   r[   r+   r\   r   r   r.   r   r   r?   r]   s      r   r%   zFileImpl.create_executabley   s   -AAAAw~~k** 	Jk3999 JQ)00di0HHIIIJ J J J J J J J J J J J J J J: 	bRW^^M:: 	bmS7;;; bq/66DI@D	CN?C|EIEWDHD]D]D_D_ 7 a a b b bb b b b b b b b b b b b b b b b b b	b 	bs%   4BB
BAD--D14D1T.Dict[str, str]c                   | j         | j        | j        | j        | j        dd          d| j        | j         d| j         | j         d| j         | j         d| j        | j        | j        | j        | j        |                                 dS )zwGet Language specific keyword arguments

        :return: A dictionary of key: values to fill in the templates
        r      _funcrL   r`   ra   )rb   rc   
header_dirrR   function_name	namespacere   rf   rg   rQ   rh   ri   r   r   r   )r   r   r   r7   r   r   r   r?   r$   s    r   
lib_kwargszFileImpl.lib_kwargs   s     **.0 $ 4QqS 9@@@-"2FFT_FF#'#7 P Pt P P $ 4;;; I,-|!/ 5577
 
 	
r   c                (   | j          d| j         }| j          d| j         }|                                 }t          j                            |          sOt          |dd          5 }|                     | j        j	        di |           d d d            n# 1 swxY w Y   | j
        rnt          j                            |          sOt          |dd          5 }|                     | j
        j	        di |           d d d            n# 1 swxY w Y   | j        st          j                            d          sRt          ddd          5 }|                     | j        j	        di |           d d d            d S # 1 swxY w Y   d S d S )NrL   r`   rM   rN   rO   rS   r#   )r   r7   rw   rW   rX   rY   rZ   r[   r0   r\   r3   r   r5   rj   s        r   r(   zFileImpl.create_library   s   *>>T_>>+DD4?DD	""w~~h'' 	<hg666 <!0)0::6::;;;< < < < < < < < < < < < < < <! 	A"'..*C*C 	Aiw777 A15.5????@@@A A A A A A A A A A A A A A A: 	BRW^^M:: 	BmS7;;; Bq6/6@@@@AAAB B B B B B B B B B B B B B B B B B	B 	Bs6   (&BB!B&DDD&FF	F	Nr@   r   rp   )rB   rC   rD   rl   r%   rw   r(   r#   r   r   rn   rn   u   s`        ..b b b b
 
 
 
.B B B B B Br   rn   c                       e Zd Zeej        d	d                        Zeej        d	d                        Zd
 fdZd fdZ	 xZ
S )FileHeaderImplr   r)   c                    d S r"   r#   r$   s    r   
header_extzFileHeaderImpl.header_ext   r,   r   c                    d S r"   r#   r$   s    r   lib_header_templatez"FileHeaderImpl.lib_header_template   r,   r   rp   c                p    t                                                      }| j         d| j         |d<   |S )NrL   header_file)superrw   r   r}   )r   rk   	__class__s     r   rw   zFileHeaderImpl.lib_kwargs   s:    ##%%#'#7 K K$/ K K}r   r    c                z   t                                                       |                                 }t          j                            |d                   s`t          |d         dd          5 }|                    | j        	                    |                     d d d            d S # 1 swxY w Y   d S d S )Nr   rM   rN   rO   )
r   r(   rw   rW   rX   rY   rZ   r[   r   
format_map)r   rk   r^   r   s      r   r(   zFileHeaderImpl.create_library   s      ""w~~f]344 	Ef]+S7CCC Eq0;;FCCDDDE E E E E E E E E E E E E E E E E E	E 	Es   3.B..B25B2rA   ry   r@   )rB   rC   rD   rG   rE   rF   r}   r   rw   r(   __classcell__)r   s   @r   r{   r{      s            X     X     
E E E E E E E E E Er   r{   )
__future__r   rE   rW   r   typingTTYPE_CHECKINGminitr   ABCMetar   rJ   rn   r{   r#   r   r   <module>r      s;  
 # " " " " " 



 				 				    ? "!!!!!!3M 3M 3M 3M 3M3; 3M 3M 3M 3Ml,B ,B ,B ,B ,B
 ,B ,B ,B^5B 5B 5B 5B 5Bz 5B 5B 5BpE E E E EX E E E E Er   