
     -Ph#              	         d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZej        dk     rddlZnddlZddlZ ddl!Z ddl"Z"ddl#Z$ddl%Z$ddl&Z$ddl'Z$ddl(Z$ddl#m)Z)m*Z* 	 ddl+m,Z,m-Z- n# e.$ r dnd
Z- G d de/          Z,Y nw xY wej0        r\ddlm1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z= ddl#m>Z>m?Z?m@Z@mAZAmBZBmCZC  eAd          ZD e<d          ZEe6d         ZFe@eFe5eG         f         ZHdZI eJ eKeLe"jI        M                    d          dd                             ZNeNdk     rdhnh dZOdZPdZQg dZRe
jS        T                                ZU ejV        d          ZW eXd e
jS        jY        D                       sJ dddddd d!d!d"ZZdod&Z[ G d' d(          Z\ ej]                    dpd*            Z^dqd/Z_	 	 drdsd;Z` G d< d=          Za G d> d?eb          Zc G d@ dAec          Zd G dB dCec          Ze G dD dEec          Zf G dF dGe"jg                  ZhdtdIZi G dJ dK          Zj G dL dMej          ZkdudPZldvdRZm G dS dT          Znejo        dwdxdW            ZpdydYZq	 dweQdZdzd]ZrePdZd{d^Zsd|daZtd}ddZueudwd~df            Zveudwd~dg            ZwewZxeu	 dwddi            Zyeu	 	 drddl            Zzeu	 	 drddm            Z{dS )z6Meson Python build backend

Implements PEP 517 hooks.
    )annotationsN)      )cached_propertyread_binary)InvalidLicenseExpressioncanonicalize_license_expressionsstrreturnc                2    t          j        dd           | S )Nzcanonicalization and validation of license expression in "project.license" as defined by PEP-639 requires packaging version 24.2 or later.   
stacklevel)warningswarn)r
   s    P/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonpy/__init__.pyr	   r	   >   s/    NZ[	] 	] 	] 	]     c                      e Zd ZdS )r   N)__name__
__module____qualname__ r   r   r   r   D   s        r   r   )AnyCallableDefaultDictDictListLiteralOptionalSequenceTextIOTupleTypeTypeVarUnion)
CollectionIteratorMapping	ParamSpecPathSelfPT)distsetupcompileinstallz0.18.0.r   r   	   version>   licenser6   license-filesz1.8.2z0.63.3z,^[^.]+\.(?:(?P<abi>[^.]+)\.)?(?:so|pyd|dll)$c              #  P   K   | ]!}t          j        t          d |           V  "dS )fooN)rematch_EXTENSION_SUFFIX_REGEX.0xs     r   	<genexpr>rA   a   s5      
h
hA28+Y1YY77
h
h
h
h
h
hr   scriptspurelibplatlibheadersdatamesonpy-libs)z{bindir}z{py_purelib}z{py_platlib}z{moduledir_shared}z{includedir}z	{datadir}z{libdir}z{libdir_shared}sourcesDict[str, Dict[str, Any]]0DefaultDict[str, List[Tuple[pathlib.Path, str]]]c                j   t          j        t                    }i }|                                 D ] \  }}|                                D ]\  }}t	          j        |d                   j        d         }t	          j        j        dd          }t                              |          }	|	t          dt                              |	dk    s|	dk    rj        d         }
|                    |
|	          }||	k    rt          j        t	          j        |	gj        dd         R            }t          j        |t          fd||         D                       z            }t          d	|
 d
|	 d| d|d|d          |dk    s'|dk    r|t          j                            |          r\d |                    dg           D             }d |                    dg           D             }t          j        |          D ]\  }}}|                                D ][}t          j                            ||          }t          j                            ||          }||v r|                    |           \|                                 t/          |          D ]i}t          j                            ||          }t          j                            ||          }||v rG||z  }||	                             ||f           j||	                             ||f           |S )zBMap files to the wheel, organized by wheel installation directory.destinationr      NzBCould not map installation path to an equivalent wheel directory: rC   rD   c              3  Z   K   | ]%\  }}|j         d          j         d         k    !|V  &dS )r   rM   N)parts)r?   dr
   rL   s      r   rA   z _map_to_wheel.<locals>.<genexpr>   sE      1y1y1VWV]^_V`doduvwdxVxVx!VxVxVxVx1y1yr   zThe z package is split between z and z: z, a "pure: false" argument may be missing in meson.build. It is recommended to set it in "import('python').find_installation()"install_subdirstargetsc                L    h | ]!}t           j                            |          "S r   ospathnormpathr>   s     r   	<setcomp>z _map_to_wheel.<locals>.<setcomp>   s(     ^ ^ ^!1!1!!4!4 ^ ^ ^r   exclude_filesc                L    h | ]!}t           j                            |          "S r   rT   r>   s     r   rX   z _map_to_wheel.<locals>.<setcomp>   s(    \\\ 0 0 3 3\\\r   exclude_dirs)collectionsdefaultdictlistitemspathlibr+   rO   _INSTALLATION_PATH_MAPget
BuildErrorr   
setdefaultrU   fspathnextrV   isdirwalkcopyjoinrelpathremovesortsortedappend)rH   wheel_filespackageskeygroupsrctargetanchordstrV   packageotherthisthatrY   r[   rootdirnames	filenamesnamedirsrcrk   filesrcfiledstrL   s                           @r   _map_to_wheelr   r   s   DOD[\`DaDaK!Hmmoo (5 (5
U ;;== '	5 '	5KC!,vm'<==K &q)F, 1!"" 56C)--f55D| !zfijufvfv!z!z{{{y  DI$5$5%+A. ++GT::D==9W\$%O9J1229N%O%O%OPPD9UT1y1y1y1yE@R1y1y1y-y-y%yzzD$cw c c$ c cU c cc c(,c c cd d d
 '''3)+;+;c@R@R+; ^ ^fjjZ\>]>] ^ ^ ^\\VZZXZ=[=[\\\13 E E-D(I ( 2 2!#dD!9!9"$'//&#">">"l22$OOD111MMOOO &y 1 1 E E"$',,tT":":"$'//'3"?"?"m33$"%-#D)00'71CDDDDEE  D!((#s4444O'	5R r   c                  6    e Zd ZdZdZdZdZed
d            Zd	S )stylez[31mz[93mz	[36m[1mz[0mstringr   r   c                .    t          j        dd|           S )z(Strip ANSI escape sequences from string.z\033\[[;?0-9]*[a-zA-Z] )r;   subr   s    r   stripzstyle.strip   s     v/V<<<r   N)r   r   r   r   )	r   r   r   ERRORWARNINGINFORESETstaticmethodr   r   r   r   r   r      sF        EGDE= = = \= = =r   r   boolc                    t           j                            d           dt          j        v rdS dt          j        v sAt           j                                        rrt          j                            d          dk    rOt           j        dk    r=t          j                            d	          st          j	        
                                S d
S dS )z2Determine whether logging should use ANSI escapes.replace)errorsNO_COLORFFORCE_COLORTERMdumbwin32ANSICONT)sysstdoutreconfigurerU   environisattyrb   platformmesonpy_utilsetup_windows_consoler   r   r   _use_ansi_escapesr      s     J),,,RZu
""cj&7&7&9&9"bjnnV>T>TX^>^>^<7""2:>>)+D+D"=66888t5r   r   kwargsr   Nonec                p    t                      st                              |           } t          | fi | d S N)r   r   r   print)r   r   s     r   _logr      s=     %V$$	&Fr   messageUnion[Warning, str]categoryType[Warning]filenamelinenointfileOptional[TextIO]lineOptional[str]c                \    t          t          j         dt          j         d|             dS )zICallable to override the default warning handler, to have colored output.zmeson-python: warning: N)r   r   r   r   )r   r   r   r   r   r   s         r   _showwarningr      s2     	EM	H	H	H	Hw	H	HIIIIIr   c                  .    e Zd ZddZddZdd
ZddZdS )_clicountertotalr   r   r   c                H    || _         t          j        d          | _        d S )NrM   )start)_total	itertoolscount_count)selfr   s     r   __init__z_clicounter.__init__   s!    oA...r   r,   c                    | S r   r   r   s    r   	__enter__z_clicounter.__enter__   s    r   descriptionr   c                    dt          | j                   d| j         d| }t                      rt	          d|ddd           d S t	          |           d S )	N[/z] r   z[0KT)sependflush)rf   r   r   r   r   )r   r   r   s      r   updatez_clicounter.update   sg    C4$$CCt{CCkCC 	$"($??????$KKKKKr   exc_typer   	exc_valueexc_tbc                B    t                      rt                       d S d S r   )r   r   )r   r   r   r   s       r   __exit__z_clicounter.__exit__   s'     	GGGGG	 	r   N)r   r   r   r   )r   r,   )r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r      sd        / / / /           r   r   c                      e Zd ZddZdS )Errorr   r   c                6    t          | j        d                   S )Nr   )r   argsr   s    r   __str__zError.__str__   s    49Q<   r   Nr   r   )r   r   r   r   r   r   r   r   r      s(        ! ! ! ! ! !r   r   c                      e Zd ZdZdS )ConfigErrorz#Error in the backend configuration.Nr   r   r   __doc__r   r   r   r   r      s        ----r   r   c                      e Zd ZdZdS )rc   zError when building the wheel.Nr   r   r   r   rc   rc      s        ((((r   rc   c                      e Zd ZdZdS )MesonBuilderErrorz&Error when building the Meson package.Nr   r   r   r   r   r      s        0000r   r   c                  n     e Zd Zd fdZeej        j        dfd fd            Ze	dd            Z
 xZS )Metadatar   r   r   r   r   c                    t          j        d|t           j                  st          j        d| d           t                      j        |g|R i | d S )Nz)^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$zInvalid project name "z". A valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number)r;   r<   
IGNORECASEpyproject_metadataConfigurationErrorsuperr   )r   r   r   r   	__class__s       r   r   zMetadata.__init__   s~    xDdBMZZ 	j$7i i i ij j j 	/////////r   NrF   Mapping[str, Any]project_dirr+   metadata_versionr   r   r,   c                \   t                                          |||          }t          |j                  t          z
  }|r6d                    d |D                       }t          j        d|           t          |j	        t                    rt          |j	                  |_	        |S )Nz, c              3  "   K   | ]
}d | d V  dS "Nr   r>   s     r   rA   z*Metadata.from_pyproject.<locals>.<genexpr>  s*      EEAx1xxxEEEEEEr   zUnsupported dynamic fields: )r   from_pyprojectsetdynamic_SUPPORTED_DYNAMIC_FIELDSrj   r   r   
isinstancer7   r   r	   )clsrF   r   r   metadataunsupported_dynamicfieldsr   s          r   r   zMetadata.from_pyproject  s     77))$=MNN "("2336OO 	aYYEE1DEEEEEF$78_W]8_8_``` h&,, 	Q>x?OPPHr   c                8    | j                             dd          S )z.Name to be used in wheel and sdist file names.-_)canonical_namer   r   s    r   distribution_namezMetadata.distribution_name  s     "**3444r   )r   r   r   r   r   r   )rF   r   r   r+   r   r   r   r,   r   )r   r   r   r   classmethodrU   rV   curdirr   propertyr   __classcell__)r   s   @r   r   r      s        0 0 0 0 0 0  GN*.	      [( 5 5 5 X5 5 5 5 5r   r   r+   c                x   t          | d          5 }t          j        dk    r#|                    d          dv cddd           S t          j        dk    st          j        dk    r%|                    d          d	k    cddd           S |                    d          d
k    cddd           S # 1 swxY w Y   dS )zCheck if file is a native file.rbdarwin   )s   s   s   s   Nr   cygwinr   s   MZs   ELF)openr   r   read)r   fs     r   
_is_nativer     s*    
dD		 +Q<8##66!99 ! + + + + + + + + \W$$(@(@66!99%+ + + + + + + + 66!99
*+ + + + + + + + + + + + + + + + + +s   'B/8B/
B//B36B3c                  :   e Zd ZdZd'dZed(d            Zed(d            Zed(d            Z	ed)d            Z
ed*d            Zed*d            Zed*d            Zed*d            Zed+d            Zed+d            Zed,d            Zd-d!Zd.d#Zd/d%Zd&S )0_WheelBuilderz+Helper class to build wheels from projects.r   r   manifest)Dict[str, List[Tuple[pathlib.Path, str]]]limited_apir   allow_windows_shared_libsr   r   c                >    || _         || _        || _        || _        d S r   )	_metadata	_manifest_limited_api_allow_windows_shared_libs)r   r   r  r  r  s        r   r   z_WheelBuilder.__init__5  s(     "!'*C'''r   c                P    t          | j                            d                    S )NrG   r   r  rb   r   s    r   _has_internal_libsz _WheelBuilder._has_internal_libsA  s     DN&&~66777r   c                P    t          | j                            d                    S )NrD   r  r   s    r   _has_extension_modulesz$_WheelBuilder._has_extension_modulesE  s"     DN&&y11222r   c                    | j         d         s| j         d         rdS | j         d         D ]\  }}t          |          r dS dS )z-Whether the wheel is architecture independentrD   rG   FrB   T)r  r  )r   r   r   s      r   _purez_WheelBuilder._pureJ  sa     >)$ 	~(F 	5~i0 	 	GAt$ uutr   mesonpy._tags.Tagc                    | j         r!t          j                            ddd          S | j        s!t          j                            ddd          S t          j                            d| j        d          S )zWheel tags.py3noneanyN)r  r   _tagsTagr  _stable_abir   s    r   tagz_WheelBuilder.tagT  sl     : 	;=$$UFE:::* 	:
 =$$UFD999}  t'7>>>r   r   c                H    | j         j         d| j         j         d| j         S )z/Wheel name, this includes the basename and tag.r   )r  r   r6   r&  r   s    r   r   z_WheelBuilder.namea  s,     .2XXT^5KXXdhXXXr   c                :    | j         j         d| j         j         dS )Nr   z
.dist-infor  r   r6   r   s    r   _distinfo_dirz_WheelBuilder._distinfo_dirf  s#    .2WWT^5KWWWWr   c                :    | j         j         d| j         j         dS )Nr   z.datar)  r   s    r   	_data_dirz_WheelBuilder._data_dirj  s#    .2RRT^5KRRRRr   c                "    d| j         j         dS )Nr3   z.mesonpy.libs)r  r   r   s    r   	_libs_dirz_WheelBuilder._libs_dirn  s    B4>3BBBBr   bytesc                    t          j        d                                                              | j        rdnd| j                                                  S )z Return WHEEL file for dist-info.z
            Wheel-Version: 1.0
            Generator: meson
            Root-Is-Purelib: {is_purelib}
            Tag: {tag}
        truefalse)
is_purelibr&  )textwrapdedentr   formatr  r&  encoder   s    r   wheelz_WheelBuilder.wheelr  sY         
 UWWVV!%8vv  
 
 &((	r   c                N   | j         j                                        }|                    | j         j        | j         j        d           d}|D ]C}||         r9|d| dz  }||                                         D ]\  }}|| d| dz  }|dz  }D|                                S )zdist-info entry_points.txt.)console_scriptsgui_scriptsr   r   z]
z = 
)r  entrypointsri   r   rB   r;  r_   r7  )r   rF   text
entrypointr   ru   s         r   entrypoints_txtz_WheelBuilder.entrypoints_txt  s     ~)..00#~5>5
 
 	 	 	
  	 	JJ +J++++$($4$:$:$<$< 3 3LD&t222222DD{{}}r   r   c                    | j         rdt          j        vrx| j        d         D ]h\  }}t                              |j                  }|rB|                    d          }|+|dk    r%t          dt          j
        |          d          idS d S )N__pypy__rD   abiabi3zPThe package declares compatibility with Python limited API but extension module z) is tagged for a specific Python version.)r  r   builtin_module_namesr  r=   r<   r   rs   rc   rU   re   )r   rV   r   r<   rC  s        r   r%  z_WheelBuilder._stable_abi  s      	33K!K!K
  >)4 d da/55di@@ d++e,,C3&==(c&(iooc c cd d d 6tr   
wheel_filemesonpy._wheelfile.WheelFileoriginr+   rL   pathlib.Pathc                   | j         rt          |          rpt          j        dk    r| j        st          d          t          j                            | j	        |j
                  }t          j                            ||           	 |                    ||                                           dS # t           $ r, t          j        |                              d          s Y dS w xY w)zAdd a file to the wheel.r   zLoading shared libraries bundled in the Python wheel on Windows requires setting the DLL load path or preloading. See the documentation for the "tool.meson-python.allow-windows-internal-shared-libs" option.z.pdbN)r  r  r   r   r  NotImplementedErrorrU   rV   rk   r.  parentr   _rpath	fix_rpathwriteas_posixFileNotFoundErrorre   endswith)r   rF  rH  rL   libspaths        r   _install_pathz_WheelBuilder._install_path  s     " 	;&!! ;<7**43R*-]^ ^ ^ 7??4>;;MNN((:::	V[%9%9%;%;<<<<<  	 	 	9V$$--f55   	s   (B2 22C('C(whlc           	        |                     | j         dt          | j                                                             |                     | j         d| j                   | j        r#|                     | j         d| j                   t          | j        j        t          j
                  rP| j        j        j        }|r=|                    || j         dt          j                            |                      t!          | j        dd           }|rI|D ]H}|                    || j         dt#          j        |                                                      Gd S d S )Nz	/METADATAz/WHEELz/entry_points.txtr   license_filesz
/licenses/)writestrr*  r/  r  	as_rfc822r8  r@  r   r7   r   Licenser   rO  rU   rV   basenamegetattrr`   r+   rP  )r   rU  license_filerW  r
  s        r   _wheel_write_metadataz#_WheelBuilder._wheel_write_metadata  sv   *555uT^=U=U=W=W7X7XYYY*222DJ??? 	YLLD.AAA4CWXXX dn,.@.HII 	b>16L b		,4+=(`(`@P@PQ]@^@^(`(`aaa  FF 	\" \ \		! 2ZZgl1oo>V>V>X>XZZ[[[[	\ 	\\ \r   	directoryc           	        t          j        || j         d          }t          j                            |d          5 }|                     |           t          t          d | j	        
                                D                                 5 }| j        rdnd}| j	                                        D ]|\  }}|D ]t\  }}	|                    |	           ||k    rn<|dk    rt          j        | j        |          }nt          j        | j        ||          }|                     ||	|           u}	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |S )N.whlwc              3  4   K   | ]}t          |          V  d S r   )lenr>   s     r   rA   z&_WheelBuilder.build.<locals>.<genexpr>  s(       I IAQ I I I I I Ir   rC   rD   rG   )r`   r+   r   r   
_wheelfile	WheelFiler^  r   sumr  valuesr  r_   r   r.  r,  rT  )
r   r_  rF  rU  counterr|   rV   entriesrw   rt   s
             r   buildz_WheelBuilder.build  s   \)	-?-?-?@@
))*c:: 	:c&&s+++S I I1F1F1H1H I I IIIJJ :g$(J=yyI%)^%9%9%;%; : :MD'$+ : :Ss+++4<< !^33"),t~s"C"CCC"),t~tS"I"IC**3S9999::	: : : : : : : : : : : : : : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:* s7   AEB"E 4E E	EE	EEEN)
r   r   r  r  r  r   r  r   r   r   r   r   )r   r  r   )r   r/  r   r   )rF  rG  rH  r+   rL   rI  r   r   )rU  rG  r   r   r_  r+   r   rI  )r   r   r   r   r   r  r  r  r   r  r&  r   r*  r,  r.  r8  r@  r%  rT  r^  rk  r   r   r   r  r  2  s       55
D 
D 
D 
D 8 8 8 X8 3 3 3 X3    _ 
? 
? 
? X
? Y Y Y XY X X X XX S S S XS C C C XC 
 
 
 X
    X$    _*   6\ \ \ \&     r   r  c                  2    e Zd Zedd            Z	 dddZdS )_EditableWheelBuilderr   Collection[str]c                   t                      }| j        D ]t}| j        |         D ]d\  }}|j        d                             d          \  }}}|r$||z   }|t          v r|                    |           O|                    |           eu|S )Nr   r3   )r   r  rO   	partition	_SUFFIXESadd)	r   modulestype_rV   r   r   dotextsuffixs	            r   _top_level_modulesz(_EditableWheelBuilder._top_level_modules  s    %%^ 
	& 
	&E>%0 	& 	&a!%A!8!8!=!=c3 & 3YF**D))) KK%%%%	& r   Fr_  r+   
source_dirrI  	build_dirbuild_command	List[str]verboser   c                   t          j        || j         d          }t          j                            |d          5 }|                     |           |                    | j         d|	                                
                    d                     d| j        j         d}|                    | dt          dd	          t          j        d
| j        j        d| j        dt#          j        |          d|d|d          
                    d          z              |                    | j        j         dd| 
                    d                     d d d            n# 1 swxY w Y   |S )Nra  rb  z/direct_url.jsonutf-8r   _editable_loader.pyr   z_editable.pyz4
                   install(
                       z,
                       z,
                   )z-editable.pthzimport )r`   r+   r   r   re  rf  r^  rX  r*  as_urir7  r  r   r   r4  r5  r{  rU   re   r   )	r   r_  r|  r}  r~  r  rF  rU  loader_module_names	            r   rk  z_EditableWheelBuilder.build  s    \)	-?-?-?@@
))*c:: 	@c&&s+++LL%777!!##**7335 5 5
 "XT^%E!W!W!WLL%***I~66 J+J J /J J 	),,	J J
 &J J  J J J : :  )	* 	* 	* LL>0???.,..55g>>@ @ @)	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@0 s   D"E,,E03E0N)r   rq  F)r_  r+   r|  rI  r}  rI  r~  r  r  r   r   rI  )r   r   r   r  r{  rk  r   r   r   rp  rp    sP           X  9>      r   rp  	pyprojectDict[str, Any]c           	         dd}dddd}dd} |||| |fdt           D                       d          }|                     di                               di           } ||d          S )Nscheme$Dict[str, Callable[[Any, str], Any]]r   $Callable[[Any, str], Dict[str, Any]]c                     d fd}|S )	Nvaluer   r   r   r   r  c                   t          | t                    st          d| d          i }|                                 D ]F\  }}                    |          }|t          d| d| d           ||| d|           ||<   G|S )NConfiguration entry "z" must be a tablezUnknown configuration entry "r3   r   )r   dictr   r_   rb   )r  r   tablerr   valcheckr  s         r   funcz8_validate_pyproject_config.<locals>._table.<locals>.func$  s    eT** S!"Q$"Q"Q"QRRRE!KKMM 9 9S

3=%&Sd&S&SS&S&S&STTT"U34#88c

Lr   )r  r   r   r   r   r  r   )r  r  s   ` r   _tablez*_validate_pyproject_config.<locals>._table#  s(    		 		 		 		 		 		 r   r  r   r   r   r  c                    t          | t                    rt          d | D                       st          d| d          | S )Nc              3  @   K   | ]}t          |t                    V  d S r   )r   r   r>   s     r   rA   z?_validate_pyproject_config.<locals>._strings.<locals>.<genexpr>1  s,      1T1T*Q2D2D1T1T1T1T1T1Tr   r  z" must be a list of strings)r   r^   allr   r  r   s     r   _stringsz,_validate_pyproject_config.<locals>._strings0  sS    %&& 	Yc1T1Te1T1T1T.T.T 	YWdWWWXXXr   r   c                V    t          | t                    st          d| d          | S )Nr  z" must be a boolean)r   r   r   r  s     r   _boolz)_validate_pyproject_config.<locals>._bool5  s4    %&& 	QOdOOOPPPr   c                    t          | t                    st          d| d          t          j                            |           rt          j                            |           } | S )Nr  z" must be a string)r   r   r   rU   rV   isfileabspathr  s     r   _string_or_pathz3_validate_pyproject_config.<locals>._string_or_path:  s]    %%% 	PNdNNNOOO7>>%   	+GOOE**Er   c                    i | ]}|S r   r   )r?   r   r  s     r   
<dictcomp>z._validate_pyproject_config.<locals>.<dictcomp>E  s(     
 
 
#D(
 
 
r   )mesonlimited-api"allow-windows-internal-shared-libsr   toolzmeson-pythonztool.meson-python)r  r  r   r  r  r   r   r   r   r  r  r   r   r   r   r   r  r   r   r   r   r   )_MESON_ARGS_KEYSrb   )r  r  r  r  r  r  r  s         @r   _validate_pyproject_configr  !  s          
   
    V .3 
 
 
 
'7
 
 
  	   F MM&"%%))."==E6%,---r   config_settingsc                x   dd}dd}dd
}|||||||dt          fdt          D                       sJ i }|                                 D ]\  }}                    |          }|st	          j        |                                d          }|r5d                    d |D                       }	t          d| d|	 d          t          d| d           |||          ||<   ddi}
|
                                D ]2\  }}||v r||v rt          d| d| d          ||v r||         ||<   3|S )z.Validate options received from build frontend.r  r   r   r   r   c                V    t          | t                    st          d| d          | S )NzOnly one value for "z" can be specified)r   r   r   r  s     r   _stringz*_validate_config_settings.<locals>._stringQ  s4    %%% 	OMTMMMNNNr   r   c                    dS )NTr   r  s     r   r  z(_validate_config_settings.<locals>._boolV  s    tr   r  c                P    t          t          | t                    r| gn|           S r   )r^   r   r   r  s     r   _string_or_stringsz5_validate_config_settings.<locals>._string_or_stringsY  s%    
5# 6 6AUHHEBBBr   )builddir	build-direditable-verbosez	dist-argsz
setup-argszcompile-argszinstall-argsc              3  &   K   | ]}| d v V  dS )-argsNr   )r?   r   optionss     r   rA   z,_validate_config_settings.<locals>.<genexpr>e  s.      FFT$~~~(FFFFFFr   Nr   )nz or c              3  "   K   | ]
}d | d V  dS r   r   )r?   r<   s     r   rA   z,_validate_config_settings.<locals>.<genexpr>m  s*      *M*ME<u<<<*M*M*M*M*M*Mr   zUnknown option "z". Did you mean ?r   r  r  zOption "z)" is a backward compatibility alias for "z". Only one can be usedr  r  r  )	r  r  r_   rb   difflibget_close_matcheskeysrj   r   )r  r  r  r  configrr   r  parsermatchesalternativesaliasesaltr  s               @r   _validate_config_settingsr  N  s      
   C C C C !'(** G FFFF5EFFFFFFFFF%++-- 	) 	)
US!!>/W\\^^qIIIG =%{{*M*MW*M*M*MMM!"YS"Y"Y,"Y"Y"YZZZ!";S";";";<<<fUC((s 	ZG MMOO & &S&==SF]]sssWZsssttt&== +F3KMr   c                  B   e Zd ZdZ	 	 d(d)dZd*dZd+d,dZed-d            Z e	j
        d          d.d            Z e	j
                    d/d            Zed0d            Zed1d            Zed2d            Zed2d             Zed3d"            Zd4d%Zd4d&Zd4d'ZdS )5Projectz3Meson project wrapper to generate Python artifacts.NFr|  r+   r}  
meson_argsOptional[MesonArgs]editable_verboser   r   r   c                J   t          j        |                                          | _        t          j        |                                          | _        || _        | j        dz  | _        | j        dz  | _        t          j	        t                    | _        d| _        t          j        | j                            d                              d                    }t#          |          }|                    di                                           D ]%\  }}| j        |                             |           &|r:|                                D ]%\  }}| j        |                             |           &t+          |                    d                    | _        t/                      | _        | j        t3          d	t4           d
          t6          j                            d| j                   | j                            dd           t?          | j                                                   stC          | j                   tE          j#                    $                    d          rt6          j                            dd          %                                }	|	rtM          j'        dd          }
|
(                    dd           |
)                    |	*                                          \  }}|rt3          d|	          tW          |j,                  ^}}|rt3          d|	          t[          j.                    \  }}}||k    rt6          j                            dd| d|           }|/                    |          st3          d|	d|d          |dk    rdn|}ta          j1        d|d|d |d!|d"|d#|d$          }| j        2                    |d           | j        d%                             d&t7          j3        | j                  f           ta          j1        d'th          j5         d(          }| j        2                    |d           | j                            d)          6                                }| 7                    |*           d+|v rtp          9                    || j                  | _:        d,| j:        j;        v rF| j<        }|t{          j>        d-          t~          j@        A                    |          | j:        _@        d.| j:        j;        v r)| jB        }|t{          j>        d/          || j:        _C        d0| j:        j;        v r| jD        | j:        _E        nq| jF        | j<        }}|st{          j>        d1          t          d2k    r| jB        | jD        d3ni }tq          d>|t~          j@        A                    |          d4|| _:        | j:        jH        rsd| j:        jH        _I        t[          jJ                    K                    d5          | j:        jH        vr0t          d6| j:        jH         d7t[          jJ                               |                    d8d          | _        | j        r8| M                    d9          }t          d: |D             d           }|sd| _        | j        r0t          tE          jP        d;                    rt          d<          |                    d=d          | _R        d S )?Nzmeson-python-native-file.inizmeson-python-cross-file.iniFpyproject.tomlr  encodingr   r  zCould not find ninja version z
 or newer.NINJAT)exist_okparentszmacosx-	ARCHFLAGSr   )add_helpallow_abbrevz-archro   )actionz%Unknown flag specified in $ARCHFLAGS=z;Multi-architecture builds are not supported but $ARCHFLAGS=_PYTHON_HOST_PLATFORMr   z$ARCHFLAGS=z and $_PYTHON_HOST_PLATFORM=z do not agreearm64aarch64zP
                        [binaries]
                        c = ['cc', '-arch', z1]
                        cpp = ['c++', '-arch', z1]
                        objc = ['cc', '-arch', z4]
                        objcpp = ['c++', '-arch', zq]
                        [host_machine]
                        system = 'darwin'
                        cpu = z&
                        cpu_family = z?
                        endian = 'little'
                    r0   z--cross-filez.
            [binaries]
            python = 'z
'
        zmeson-private/coredata.dat)r   projectr6   zMField "version" declared as dynamic but version is not defined in meson.buildr7   zOField "license" declared as dynamic but license is not specified in meson.buildr8   zUSection "project" missing in pyproject.toml and version is not defined in meson.buildr4   )r7   rW  )r   r6   +z$The package requires Python version z, running on r  zintro-buildoptionsc              3  >   K   | ]}|d          dk    |d         V  dS )r   zpython.allow_limited_apir  Nr   )r?   options     r   rA   z#Project.__init__.<locals>.<genexpr>  s5      ppf6&>UoCoCo&/CoCoCoCoppr   Py_GIL_DISABLEDzThe package targets Python's Limited API, which is not supported by free-threaded CPython. The "python.allow_limited_api" Meson build option may be used to override the package default.r  r   )Sr`   r+   absolute_source_dir
_build_dir_editable_verbose_meson_native_file_meson_cross_filer\   r]   r^   _meson_argsr  tomllibloadsjoinpath	read_textr  rb   r_   extend_get_meson_command_meson_env_ninja_command_ninjar   _NINJA_REQUIRED_VERSIONrU   r   rd   mkdirr"  iterdir_add_ignore_files	sysconfigget_platform
startswithr   argparseArgumentParseradd_argumentparse_known_argssplitr   archr   mac_verrR  r4  r5  
write_textre   r   
executableis_file
_configurer   r   r  r   _meson_versionr   r   	packagingr6   Version_meson_licenser7   _meson_license_filesrW  _meson_name_PYPROJECT_METADATA_VERSIONrequires_pythonprereleasespython_versionrstripr   _inforf   r   get_config_varrc   r  )r   r|  r}  r  r  r  pyproject_configrr   r  	archflagsr  r   unknownr  ry   macverr   
nativearchr@   familycross_file_datanative_file_datar   r6   r7   r   r   r  s                               r   r   zProject.__init__  s    #<
33<<>>!,y11::<<!1"&/4R"R!%3P!P&1&=d&C&C! M$"2";";<L"M"M"W"Wah"W"i"ijj	 6i@@*..vr::@@BB 	0 	0JCS!((////  	4(..00 4 4
U %,,U3333 ))9)=)=g)F)FGG(**;a>Uaaabbb

gt{333 	tT::: 4?**,,-- 	/do... !##..y99 !	j
{B77==??I j "0%eTTT##GH#=== & 7 7	8I8I J Jg ]%&[i&[&[\\\"49~~u s%&qdm&q&qrrr(0(8(:(:%::%%
--.EG`QWG`G`Z^G`G`aaA::d++ u)*s	*s*sab*s*s*sttt*.'//YYtF&.o 7-17 7 157 7 15	7 7
 487 7  $7 7 '-7 7 7 ' 'O *55oPW5XXX$W-44nbiPTPfFgFg5hiii $? ,~, , ,   	**+;g*NNN o../KLLTTVV 	K000 	!!%44Y@PQQDNDN222-?,?gi i i)2):)B)B7)K)K&DN222-?,?ik k k *1&$."888/3/H, !,d.A'D m(;km m m
 -66  .!%!:   =?  &f49J9R9RSZ9[9[ff_effDN >) 	?9=DN*6&((//44DN<ZZZ'>4>;Y > >"*"9";";> >? ? ?
 -00FF 	*jj!566GppppprvwwE *$)! 	ri&>?P&Q&Q!R!R 	rqr r r +;*>*>?cej*k*k'''r   cmdSequence[str]c                    t          d                    t          d                    |                    d           t	          j        || j                  }|j        dk    rt          |j                  dS )	zInvoke a subprocess.z {style.INFO}+ {cmd}{style.RESET}r   )r   r  T)r   )cwdr   N)	r   r6  r   rj   
subprocessrunr  
returncode
SystemExit)r   r  rs      r   _runzProject._run"  sr    
 	/66UQT6VV^bccccN3DO444<1Q\*** r   r   c                2   t          j        | j                  t          j        | j                  dddg| j        d         dt          j        | j                   }|r|                    dd           |                     | j        dg|z              dS )	zConfigure Meson project.z-Dbuildtype=releasez-Db_ndebug=if-releasez-Db_vscrt=mdr0   z--native-file=r   z--reconfigureN)	rU   re   r  r  r  r  insertr   r  )r   r   
setup_argss      r   r  zProject._configure,  s     Id&''Ido&&!#
 g&
 BRYt'>??AA

  	2a111		$+ 6: 6677777r   r  c                    | j         J t          j        dk    rA| j        dgz   }t	          | j        d                   }|r|                    d|           |S | j         g| j        d         S )Nr   r1   z--ninja-args=)r  r   r   r  r^   r  ro   )r   r  r   s      r   _build_commandzProject._build_command@  s    {&&&<7""
 ++C(344D 5

3433444J:d.y9::r   )maxsizec                :    |                      | j                   dS )zBuild the Meson project.N)r   r%  r   s    r   rk  zProject.buildO  s     			$%&&&&&r   r   r   r   c                    | j                             d| d          }t          j        |                    d                    S )z$Read info from meson-info directory.z
meson-infoz.jsonr  r  )r  r  jsonr  r  )r   r   infos      r   r  zProject._infoT  s?     ''nnnEEz$..'.::;;;r   rJ   c                   |                      d          }t          j        d          }|                    d           |                    dddd	           |                    | j        d
                   \  }}|j        r$d |j                            d          D             nd}d d |j                            d          D             D             }t          j
        t                    }|                                D ]W\  }}	|	                                D ]=\  }
}||d         |vr|                    d          }|	||v sd|v r2|||         |
<   >Xt          |          S )z<The files to be added to the wheel, organized by wheel path.zintro-install_planF)r  z--tagsz--skip-subprojectsr  *r   )nargsconstdefaultr2   c                6    h | ]}|                                 S r   r   )r?   ts     r   rX   z$Project._manifest.<locals>.<setcomp>f  s     @@@a		@@@r   ,Nc                    h | ]}||S r   r   r?   ps     r   rX   z$Project._manifest.<locals>.<setcomp>g  s    bbb!`abAbbbr   c              3  >   K   | ]}|                                 V  d S r   r1  r5  s     r   rA   z$Project._manifest.<locals>.<genexpr>g  s*      '\'\a		'\'\'\'\'\'\r   r&  
subproject)r  r  r  r  r  r  tagsr  skip_subprojectsr\   r]   r  r_   rb   r   )r   install_planr  r   r   install_tagsr:  rH   rr   rR   ru   detailsr8  s                r   r  zProject._manifestZ  s   
 zz"677 (%888H%%%03PRSSS))$*:9*EFFaDHIW@@49??3+?+?@@@@SWbb'\'\4;P;V;VWZ;[;['\'\'\bbb @K?VW[?\?\(..00 	/ 	/LC#*==?? / /+l0R0R$[[66
)z=M/M/MQTXhQhQh'.V$$/ W%%%r   c                j    |                      d          d         }t          |t                    sJ |S )z=The project name specified with ``project()`` in meson.build.intro-projectinfodescriptive_namer  r   r   r   r  s     r   r  zProject._meson_namew  s7     

.//0BC%%%%%%r   r   c                z    |                      d          d         }t          |t                    sJ |dk    rdS |S )zTThe version specified with the ``version`` argument to ``project()`` in meson.build.r?  r6   	undefinedNrA  rB  s     r   r  zProject._meson_version~  sF     

.//	:%%%%%%K4r   c                ^   |                      d                              dd          }|dS t          |t                    sJ t	          |          dk    rt          j        d          |d         }t          |t                    sJ |dk    rdS t          t          |                    S )zTThe license specified with the ``license`` argument to ``project()`` in meson.build.r?  r7   NrM   zkUsing a list of strings for the license declared in meson.build is ambiguous: use a SPDX license expressionr   r  )	r  rb   r   r^   rd  r   r   r   r	   rB  s     r   r  zProject._meson_license  s     

.//33ItDD=4%&&&&&u::>>$7}  a%%%%%%I42599:::r   Optional[List[pathlib.Path]]c                    |                      d                              dd          }|sdS t          |t                    sJ d |D             S )z`The license files specified with the ``license_files`` argument to ``project()`` in meson.build.r?  rW  Nc                6    g | ]}t          j        |          S r   )r`   r+   r>   s     r   
<listcomp>z0Project._meson_license_files.<locals>.<listcomp>  s     ///AQ///r   )r  rb   r   r^   rB  s     r   r  zProject._meson_license_files  s]     

.//33OTJJ 	4%&&&&&//////r   r_  rI  c           
     p   |                      | j        dddddg| j        d         z              | j        j         d| j        j         }| j        pd}| j         d| }t          j	        | j
        d| d	          }t          j	        || d	          }d
}t          j        |d          5 }t          j                            |          5 }	|                                D ]}
|
                                r|
j        }t'          j        t'          j        t'          j        |
j                  |
j                            }	 t1          j        |                    |                    }
||
_        n)# t4          $ r t7          j        d| d           Y nEw xY w|
                                rt7          j        d| d           |
                                t1          j        |
          }
|
                                r|                    |
j                  }i |
_         |
j        !                    dd          d         }d                    ||f          |
_        |dk    r|
j"        }dx|
_#        |
_$        d
x|
_%        |
_&        |	'                    |
|           |
                                s2|
                                st7          j        d|
j         d           
t          j(        | d          }
d
x|
_%        |
_&        dx|
_#        |
_$        ||
_"        tS          | j        *                                          }tW          |          |
_,        |	'                    |
t[          j.        |                     ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   |S )zCGenerates a sdist (source distribution) in the specified directory.r/   z--allow-dirtyz
--no-testsz	--formatsgztarr   rD  z
meson-distz.tar.gzr   zr:gzz\symbolic link with absolute path target, pointing outside the archive, or dangling ignored: rM   r   z/symbolic link pointing to a directory ignored: r   r  r|   z,special file in the source archive ignored: z	/PKG-INFON)/r   r  r  r  r   r6   r  r  r`   r+   r  tarfiler  r   r   create_targz
getmembersissymr   	posixpathrW   rj   dirnamelinknameri   	getmemberKeyErrorr   r   rg   r  extractfilepax_headersr  mtimeunamegnameuidgidaddfileTarInfor/  rY  rd  sizeioBytesIO)r   r_  	dist_namemeson_versionmeson_dist_namemeson_dist_path
sdist_pathpyproject_toml_mtime
meson_distsdistmemberr   ru   r   stemr   s                   r   rh  zProject.sdist  s~    			$+,U\ x_c_opv_w xxyyy~7RR$.:PRR	+:{!-????!,tFaFaFabb\)	-B-B-BCC
 \/622 ]	8j'-B\B\]gBhBh ]	8lq$//11 Cd Cd llnn d!;D&/	y?PQWQ\?]?]_e_n0o0oppF "&:+?+?+G+G!H!H&*#    D=AD DPQS S S S 	
 ||~~ d TdTTabd d d d% llnn d, 6**==?? $d%11&+>>D  *,F& ";,,S!44Q7D"%((It+<"="=FK////5|,
 398FL6<.//FJMM&$//// d dMTv{TTabd d d d _	%<%<%<==F&''FJ*00FL6<  0FLT^557788Hh--FKMM&"*X"6"6777{]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8 ]	8~ s\   - N+A6N.E32N3#F	NF	G/NN+N	N+N	N++N/2N/c                    |                                   t          | j        | j        | j        | j                  }|                     |          S )z-Generates a wheel in the specified directory.)rk  r  r  r  r  r  r   r_  builders      r   r8  zProject.wheel  s?    

@QSWSrss}}Y'''r   c                    |                                   t          | j        | j        | j        | j                  }|                     || j        | j        | j        | j	                  S )z7Generates an editable wheel in the specified directory.)
rk  rp  r  r  r  r  r  r  r%  r  rl  s      r   editablezProject.editable  sS    

'HY[_[z{{}}Y(8$/4K^`d`vwwwr   )NF)
r|  r+   r}  r+   r  r  r  r   r   r   )r  r  r   r   r  )r   r   r   r   )r   r  )r   r   )r   r   r   r   )r   rJ   r   rm  )r   rF  rn  )r   r   r   r   r   r   r  r  r%  	functools	lru_cacherk  r  r  r  r  r  r  rh  r8  ro  r   r   r   r  r    s       == +/!&]l ]l ]l ]l ]l~+ + + +8 8 8 8 8( ; ; ; X; Y&&&' ' ' '&' Y< < < <
 & & & X&8    X    X ; ; ; X; 0 0 0 X0k k k kZ( ( ( (x x x x x xr   r  Optional[Dict[Any, Any]]Iterator[Project]c              #    K   t          | pi           t          j        dfdt          D                       }t          j        j        }                    d          }t                              d                    }t          j
                    5 }|)|                    t          j        d|                    }t          ||||          V  ddd           dS # 1 swxY w Y   dS )z3Create the project given the given config settings.	MesonArgsc                D    i | ]}|                     | d g           S )r  )rb   )r?   r   settingss     r   r  z_project.<locals>.<dictcomp>  s0    *o*o*oVZ4nnnb1Q1Q*o*o*or   r  r  Nz	.mesonpy-)prefixdir)r  typingcastr  rU   rV   r   rb   r   
contextlib	ExitStackenter_contexttempfileTemporaryDirectoryr  )r  r  r|  r}  r  ctxrw  s         @r   _projectr    s?      ))>B??H[*o*o*o*o^n*o*o*oppJJ[))IHLL);<<==				 K3))(*E[^h*i*i*ijjIj)Z9IJJJJJK K K K K K K K K K K K K K K K K Ks   A C##C'*C'Tuple[int, ...]c                    	 t          t          t          |                     d          dd                             S # t          $ r Y dS w xY w)zParse version string.r3   Nr   )r   )tuplemapr   r  
ValueErrorr   s    r   _parse_version_stringr  *  sV    Sfll3//344555   uus   <? 
AA)r6   r  r  c                  t           j                            d| pd          } |                     d          rAt           j                            |           st          d|  d          t          j        | g}n| g}	 t          j
        |dgz   dd          }n&# t          $ r}t          d	|  d
          |d}~ww xY w|j        dk    r)t          d|j                                                   |j                                        }t!          |          t!          |          k     rt          d| d| d          |S )z#Return the command to invoke meson.MESONr  r  z%Could not find the specified meson: "r   	--versionT)r>  capture_outputzmeson executable "z" not foundNr   zCould not execute meson: zCould not find meson version z or newer, found r3   )rU   r   rb   rR  rV   existsr   r   r  r  r  rQ  r  stderrr   r   r  )r  r6   r  r  errrb  s         r   r  r  2  sc    JNN7E$4W55E ~~e w~~e$$ 	PNeNNNOOO~u%gLN3+.T$OOO L L LAuAAABBKL|qHahnn6F6FHHIIIHNN$$M]++.CG.L.LLLd'ddTadddeeeJs   =B 
B<#B77B<c                   t          |           }t          j                            d          }|r|gng d}|D ]N}t	          j        |          }|6t          j        |dgddd          j        } t          |           |k    r|c S OdS )z5Returns the path to ninja, or None if no ninja found.r  )ninjazninja-buildsamuNr  FT)r  r>  r  )	r  rU   r   rb   shutilwhichr  r  r   )r6   required_version	env_ninjaninja_candidatesr  
ninja_paths         r   r  r  Y  s    ,W55
w''I&/U	{{5U5U5U! " "\%((
! nj+%>eRVgklllsG$W--1AAA!!!!4r   r_  rI  c                    |                      d                              t          j        d          d           |                      d                              t          j        d          d           d S )Nz
.gitignorezr
        # This file is generated by meson-python. It will not be recreated if deleted or modified.
        *
    r  r  z	.hgignorez
        # This file is generated by meson-python. It will not be recreated if deleted or modified.
        syntax: glob
        **/*
    )r  r  r4  r5  )r_  s    r   r  r  g  s    |$$// A 1	 1	  0    {##..x @ 0	 0	 	 /     r   r  Callable[P, T]c                H     t          j                   d fd            }|S )	Nr   P.argsr   P.kwargsr   r.   c            	     <   t           t          _        	  | i |S # t          t          t
          j        f$ rc}t          j         dt          j	         d}t          dt          j        t          |          |          z              t          d          |d }~ww xY w)Nzmeson-python: error:r   r<  rM   )r   r   showwarningr   r   r   r   r   r   r   r   r4  indentr   r  )r   r   excrx  r  s       r   wrapperz _pyproject_hook.<locals>.wrappert  s    +	)4((((/1C1VW 	) 	) 	)GGGGGFC&999:::Q--S(	)s    BABB)r   r  r   r  r   r.   )rp  wraps)r  r  s   ` r   _pyproject_hookr  s  s=    _T) ) ) ) ) ) Nr   Optional[Dict[str, str]]c                    g }t           j                            d          +t                      |                    dt
                      |S )Nr  	ninja >= )rU   r   rb   r  ro   r  r  dependenciess     r   get_requires_for_build_sdistr    sK    L	z~~g&+=+?+?+GA(?AABBBr   c                .   g }t           j                            d          +t                      |                    dt
                      t          j                            d          r)t          j
        d          s|                    d           |S )Nr  r  linuxpatchelfzpatchelf >= 0.11.0)rU   r   rb   r  ro   r  r   r   r  r  r  r  s     r   get_requires_for_build_wheelr    s    L	z~~g&+=+?+?+GA(?AABBB
|w'' 2Z0H0H 20111r   sdist_directoryc                    t          j        |           }t          |          5 }|                    |          j        cd d d            S # 1 swxY w Y   d S r   )r`   r+   r  rh  r   )r  r  outr  s       r   build_sdistr    s     ,
'
'C	/	"	" 'g}}S!!&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '   AAAwheel_directorymetadata_directoryc                    t          j        |           }t          |          5 }|                    |          j        cd d d            S # 1 swxY w Y   d S r   )r`   r+   r  r8  r   r  r  r  r  r  s        r   build_wheelr    s     ,
'
'C	/	"	" 'g}}S!!&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'r  c                   |si }d|vr(d|vr$dt           j                                        z   |d<   t          j        |           }t          |          5 }|                    |          j        cd d d            S # 1 swxY w Y   d S )Nr  r  zbuild/)r   r#  get_abi_tagr`   r+   r  ro  r   r  s        r   build_editabler    s      /))j.O.O'/'-2K2K2M2M'M$
,
'
'C	/	"	" *g$$)* * * * * * * * * * * * * * * * * *s   A;;A?A?)r
   r   r   r   )rH   rI   r   rJ   rl  )r   r   r   r   r   r   )NN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r+   r   r   )r  r  r   r  )r  r  r   r  r   )r  rr  r   rs  )r   r   r   r  )r  r   r6   r   r   r  )r6   r   r   r   )r_  rI  r   r   )r  r  r   r  )r  r  r   r  )r  r   r  rr  r   r   )r  r   r  rr  r  r   r   r   )|r   
__future__r   r  r\   r|  ri   r  rp  importlib.machinery	importlibr_  r   r)  rU   r`   r   rP  r;   r  r  r   r  rL  r  r4  rz  r   version_infotomlir  packaging.utilsr  packaging.versionr   mesonpy._compatr   mesonpy._rpathmesonpy._tagsmesonpy._utilmesonpy._wheelfiler   r   packaging.licensesr   r	   ImportError	ExceptionTYPE_CHECKINGr   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   MesonArgsKeysr   ru  __version__r  r  r   r  r  r   r  _MESON_REQUIRED_VERSIONr  	machineryall_suffixesrt  r1   r=   r  EXTENSION_SUFFIXESra   r   r   rq  r   r   r   r   RuntimeErrorr   r   rc   r   StandardMetadatar   r  r  rp  r  r  r  contextmanagerr  r  r  r  r  r  r  r  get_requires_for_build_editabler  r  r  r   r   r   <module>r     s   
 # " " " " "                    				      				       				      



          gNNN                                 8 8 8 8 8 8 8 8\\\\\\\\\ 	 	 	       9     	 
 	2TTTTTTTTTTTTTTTT	#AAABMtCy01I  $eCC-?-K-Q-QRU-V-VWYXYWY-Z$[$[\\ -H6-Q-QYMMW~W~W~ ! " ::: ,,..	$"*%TUU 
s
h
hATAg
h
h
hhh h h h
 #%
 
 / / / /d	= 	= 	= 	= 	= 	= 	= 	=    (    "	J 	J 	J 	J 	J       (! ! ! ! !L ! ! !
. . . . .% . . .) ) ) ) ) ) ) )1 1 1 1 1 1 1 1!5 !5 !5 !5 !5!2 !5 !5 !5H+ + + +${ { { { { { { {|. . . . .M . . .b*. *. *. *.Z/ / / /dWx Wx Wx Wx Wx Wx Wx Wxt K K K K K     $$7N$ $ $ $ $ $N *A      	 	 	 	
 
 
 
      	 	 	 	 	 #?   15' ' ' ' '   $(,' ' ' ' '  15(,* * * * * * *s   &B/ /C	C	