Ë
    ˜šãj/"  ã                   ó¨   — d dl m Z  d dlmZ d dlmc 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mZ d„ Z G d„ dej
                  «      Zd„ Zy)	é    )Úglob)Úconvert_pathN)Úunique_everseenc                 óŒ   — t        j                  | t        j                  | «      j                  t        j                  z  «       y ©N)ÚosÚchmodÚstatÚst_modeÚS_IWRITE)Útargets    úf/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/setuptools/command/build_py.pyÚmake_writabler      s'   € Ü‡H�HˆV”R—W‘W˜V“_×,Ñ,¬t¯}©}Ñ<Õ=ó    c                   óz   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ «       Zy)Úbuild_pyaX  Enhanced 'build_py' command that includes data files with packages

    The data files are specified via a 'package_data' argument to 'setup()'.
    See 'setuptools.dist.Distribution' for more details.

    Also, this version of the 'build_py' command allows you to specify both
    'py_modules' and 'packages' in the same setup operation.
    c                 óú   — t         j                  j                  | «       | j                  j                  | _        | j                  j
                  xs i | _        d| j                  v r| j                  d= g | _        y )NÚ
data_files)Úorigr   Úfinalize_optionsÚdistributionÚpackage_dataÚexclude_package_dataÚ__dict__Ú_build_py__updated_files©Úselfs    r   r   zbuild_py.finalize_options   sa   € Ü�‰×&Ñ& tÔ,Ø ×-Ñ-×:Ñ:ˆÔØ$(×$5Ñ$5×$JÑ$JÒ$PÈbˆÔ!Ø˜4Ÿ=™=Ñ(Ø—‘˜lÐ+Ø!ˆÕr   c                 ó&  — | j                   s| j                  sy| j                   r| j                  «        | j                  r | j                  «        | j	                  «        | j                  t        j                  j                  | d¬«      «       y)z?Build modules, packages, and copy data files to build directoryNr   )Úinclude_bytecode)	Ú
py_modulesÚpackagesÚbuild_modulesÚbuild_packagesÚbuild_package_dataÚbyte_compiler   r   Úget_outputsr   s    r   Úrunzbuild_py.run$   sh   € à�Š t§}¢}Øà�?Š?Ø×ÑÔ à�=Š=Ø×ÑÔ!Ø×#Ñ#Ô%ð 	×Ñœ$Ÿ-™-×3Ñ3°DÈ1Ð3ÓMÕNr   c                 óŽ   — |dk(  r!| j                  «       | _        | j                  S t        j                  j	                  | |«      S )zlazily compute data filesr   )Ú_get_data_filesr   r   r   Ú__getattr__)r   Úattrs     r   r*   zbuild_py.__getattr__4   s;   € à�<ÒØ"×2Ñ2Ó4ˆDŒOØ—?‘?Ð"Ü�}‰}×(Ñ(¨¨tÓ4Ð4r   c                 óŽ   — t         j                  j                  | |||«      \  }}|r| j                  j	                  |«       ||fS r   )r   r   Úbuild_moduler   Úappend)r   ÚmoduleÚmodule_fileÚpackageÚoutfileÚcopieds         r   r-   zbuild_py.build_module;   sB   € ÜŸ-™-×4Ñ4°T¸6À;ÐPWÓX‰ˆ�ÙØ× Ñ ×'Ñ'¨Ô0Ø˜ˆÐr   c                 ó|   — | j                  «        t        t        | j                  | j                  xs d«      «      S )z?Generate list of '(package,src_dir,build_dir,filenames)' tuples© )Úanalyze_manifestÚlistÚmapÚ_get_pkg_data_filesr!   r   s    r   r)   zbuild_py._get_data_filesA   s/   € à×ÑÔÜ”C˜×0Ñ0°$·-±-Ò2EÀ2ÓFÓGÐGr   c                 ó”   — | j                   j                  di «       t        t        | j                  | j
                  xs d«      «      S )z¡
        Generate list of ``(package,src_dir,build_dir,filenames)`` tuples,
        but without triggering any attempt to analyze or build the manifest.
        Úmanifest_filesr5   )r   Ú
setdefaultr7   r8   r9   r!   r   s    r   Úget_data_files_without_manifestz(build_py.get_data_files_without_manifestF   s:   € ð 	�‰× Ñ Ð!1°2Ô6Ü”C˜×0Ñ0°$·-±-Ò2EÀ2ÓFÓGÐGr   c                 ó&  — | j                  |«      }t        j                  j                  | j                  g|j                  d«      z   Ž }| j                  ||«      D �cg c]"  }t        j                  j                  ||«      ‘Œ$ }}||||fS c c}w )Nú.)Úget_package_dirr   ÚpathÚjoinÚ	build_libÚsplitÚfind_data_filesÚrelpath)r   r1   Úsrc_dirÚ	build_dirÚfileÚ	filenamess         r   r9   zbuild_py._get_pkg_data_filesP   sŒ   € à×&Ñ& wÓ/ˆô —G‘G—L‘L D§N¡NÐ#3°g·m±mÀCÓ6HÑ#HÐJˆ	ð
 ×,Ñ,¨W°gÓ>ö
àô �G‰G�O‰O˜D 'Õ*ð
ˆ	ð 
ð ˜ ¨IÐ5Ð5ùò	
s   Á'Bc                 óh  — | j                  | j                  ||«      }t        t        |«      }t        j
                  j                  |«      }t        t        j                  j                  |«      }t	        j
                  | j                  j                  |g «      |«      }| j                  |||«      S )z6Return filenames for package's data files in 'src_dir')Ú_get_platform_patternsr   r8   r   Ú	itertoolsÚchainÚfrom_iterableÚfilterr   rA   Úisfiler;   ÚgetÚexclude_data_files)r   r1   rG   ÚpatternsÚglobs_expandedÚglobs_matchesÚ
glob_filesÚfiless           r   rE   zbuild_py.find_data_files^   s•   € à×.Ñ.Ø×ÑØØó
ˆô
 œT 8Ó,ˆä!Ÿ™×5Ñ5°nÓEˆÜœBŸG™GŸN™N¨MÓ:ˆ
Ü—‘Ø×Ñ×#Ñ# G¨RÓ0Øó
ˆð ×&Ñ& w°¸Ó?Ð?r   c                 ó˜  — | j                   D ]»  \  }}}}|D ]¯  }t        j                  j                  ||«      }| j	                  t        j                  j                  |«      «       t        j                  j                  ||«      }| j                  ||«      \  }}	t        |«       t        j                  j                  |«      }Œ± Œ½ y)z$Copy data files into build directoryN)	r   r   rA   rB   ÚmkpathÚdirnameÚ	copy_filer   Úabspath)
r   r1   rG   rH   rJ   Úfilenamer   ÚsrcfileÚoutfr3   s
             r   r$   zbuild_py.build_package_datao   sœ   € à6:·o±oò 	3Ñ2ˆG�W˜i¨Ø%ò 3�ÜŸ™Ÿ™ i°Ó:�Ø—‘œBŸG™GŸO™O¨FÓ3Ô4ÜŸ'™'Ÿ,™, w°Ó9�Ø#Ÿ~™~¨g°vÓ>‘��fÜ˜fÔ%ÜŸ'™'Ÿ/™/¨'Ó2‘ñ3ñ	3r   c                 óº  — i x| _         }| j                  j                  sy i }| j                  xs dD ]  }||t	        | j                  |«      «      <   Œ! | j                  d«       | j                  d«      }|j                  j                  D ]Ì  }t        j                  j                  t	        |«      «      \  }}d }|}	|rY||k7  rT||vrP|}t        j                  j                  |«      \  }}
t        j                  j                  |
|«      }|r
||k7  r||vrŒP||v sŒ’|j                  d«      r||	k(  rŒ©|j                  ||   g «      j!                  |«       ŒÎ y )Nr5   Úegg_infoz.py)r;   r   Úinclude_package_datar!   Úassert_relativer@   Úrun_commandÚget_finalized_commandÚfilelistrX   r   rA   rD   rB   Úendswithr<   r.   )r   ÚmfÚsrc_dirsr1   Úei_cmdrA   ÚdÚfÚprevÚoldfÚdfs              r   r6   zbuild_py.analyze_manifestz   sD  € Ø#%Ð%ˆÔ˜bØ× Ñ ×5Ò5ØØˆØ—}‘}Ò*¨ò 	OˆGàGNˆH”_ T×%9Ñ%9¸'Ó%BÓCÒDð	Oð 	×Ñ˜Ô$Ø×+Ñ+¨JÓ7ˆØ—O‘O×)Ñ)ò 	<ˆDÜ—7‘7—=‘=¤°Ó!6Ó7‰DˆAˆqØˆDØˆDÙ˜˜Tš	 a¨xÑ&7Ø�ÜŸ™Ÿ™ aÓ(‘��2Ü—G‘G—L‘L  QÓ'�ñ ˜˜Tš	 a¨xÒ&7ð �HŠ}Ø—=‘= Ô'¨A°ªIØØ—‘˜h q™k¨2Ó.×5Ñ5°dÕ;ñ	<r   c                  ó   — y r   r5   r   s    r   Úget_data_fileszbuild_py.get_data_files’   s   € Ør   c                 ó  — 	 | j                   |   S # t        $ r Y nw xY wt        j                  j	                  | ||«      }|| j                   |<   |r| j
                  j                  s|S | j
                  j                  D ]  }||k(  s|j                  |dz   «      sŒ n |S t        j                  |d«      5 }|j                  «       }ddd«       n# 1 sw Y   nxY wdvr#t        j                  j                  d|›d�«      ‚|S )z8Check namespace packages' __init__ for declare_namespacer?   ÚrbNs   declare_namespacezNamespace package problem: z¤ is a namespace package, but its
__init__.py does not call declare_namespace()! Please fix it.
(See the setuptools manual under "Namespace Packages" for details.)
")Úpackages_checkedÚKeyErrorr   r   Úcheck_packager   Únamespace_packagesÚ
startswithÚioÚopenÚreadÚ	distutilsÚerrorsÚDistutilsError)r   r1   Úpackage_dirÚinit_pyÚpkgrm   Úcontentss          r   rw   zbuild_py.check_package•   s	  € ð	Ø×(Ñ(¨Ñ1Ð1øÜò 	Ùð	úô —-‘-×-Ñ-¨d°G¸[ÓIˆØ)0ˆ×Ñ˜gÑ&á˜d×/Ñ/×BÒBØˆNà×$Ñ$×7Ñ7ò 	ˆCØ�gŠ~ §¡°¸#±Õ!>Ùð	ð ˆNä�W‰W�W˜dÓ#ð 	  qØ—v‘v“xˆH÷	 ÷ 	 ñ 	 úà xÑ/Ü×"Ñ"×1Ò1ò <CðEóð ð ˆs   ‚ ‘	œÂ8CÃCc                 óP   — i | _         t        j                  j                  | «       y r   )ru   r   r   Úinitialize_optionsr   s    r   r…   zbuild_py.initialize_options³   s   € Ø "ˆÔÜ�‰×(Ñ(¨Õ.r   c                 óÚ   — t         j                  j                  | |«      }| j                  j                  �4t
        j                  j                  | j                  j                  |«      S |S r   )r   r   r@   r   Úsrc_rootr   rA   rB   )r   r1   Úress      r   r@   zbuild_py.get_package_dir·   sP   € Ü�m‰m×+Ñ+¨D°'Ó:ˆØ×Ñ×%Ñ%Ð1Ü—7‘7—<‘< × 1Ñ 1× :Ñ :¸CÓ@Ð@Øˆ
r   c                 óþ   ‡‡— t        ‰«      Š| j                  | j                  ||«      }ˆfd„|D «       }t        j                  j                  |«      }t        |«      Šˆfd„‰D «       }t        t        |«      «      S )z6Filter filenames for package's data files in 'src_dir'c              3   óJ   •K  — | ]  }t        j                  ‰|«      –— Œ y ­wr   )ÚfnmatchrP   )Ú.0ÚpatternrX   s     €r   ú	<genexpr>z.build_py.exclude_data_files.<locals>.<genexpr>Å   s   øè ø€ ÒO¸7œŸ™ u¨g×6ÑOùs   ƒ #c              3   ó,   •K  — | ]  }|‰vsŒ|–— Œ y ­wr   r5   )rŒ   ÚfnÚbads     €r   rŽ   z.build_py.exclude_data_files.<locals>.<genexpr>É   s   øè ø€ Ò7˜"¨°3ª”2Ñ7ùs   ƒ	�)r7   rL   r   rM   rN   rO   Úsetr   )	r   r1   rG   rX   rT   Úmatch_groupsÚmatchesÚkeepersr‘   s	      `    @r   rS   zbuild_py.exclude_data_files½   so   ù€ ä�U“ˆØ×.Ñ.Ø×%Ñ%ØØó
ˆó
 PÀhÔOˆä—/‘/×/Ñ/°Ó=ˆÜ�'‹lˆÛ7 Ô7ˆä”O GÓ,Ó-Ð-r   c                 ó†   ‡— t        j                  | j                  dg «      | j                  |g «      «      }ˆfd„|D «       S )zÜ
        yield platform-specific path patterns (suitable for glob
        or fn_match) from a glob-based spec (such as
        self.package_data or self.exclude_package_data)
        matching package in src_dir.
        Ú c              3   óp   •K  — | ]-  }t         j                  j                  ‰t        |«      «      –— Œ/ y ­wr   )r   rA   rB   r   )rŒ   r�   rG   s     €r   rŽ   z2build_py._get_platform_patterns.<locals>.<genexpr>Ù   s/   øè ø€ ò 
ð ô �G‰G�L‰L˜¤,¨wÓ"7×8ñ
ùs   ƒ36)rM   rN   rR   )Úspecr1   rG   Úraw_patternss     ` r   rL   zbuild_py._get_platform_patternsÍ   sC   ø€ ô !—‘Ø�H‰H�R˜ÓØ�H‰H�W˜bÓ!ó
ˆó
ð (ô
ð 	
r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r'   r*   r-   r)   r=   r9   rE   r$   r6   rr   rw   r…   r@   rS   ÚstaticmethodrL   r5   r   r   r   r      sj   „ ñò"òOò 5òòHò
Hò6ò@ò"	3ò<ò0òò</òò.ð  ñ
ó ñ
r   r   c                 ó¬   — t         j                  j                  | «      s| S ddlm} t        j                  d«      j                  «       | z  } ||«      ‚)Nr   )ÚDistutilsSetupErrorzÓ
        Error: setup script specifies an absolute path:

            %s

        setup() arguments must *always* be /-separated paths relative to the
        setup.py directory, *never* absolute paths.
        )r   rA   ÚisabsÚdistutils.errorsr¡   ÚtextwrapÚdedentÚlstrip)rA   r¡   Úmsgs      r   rd   rd   à   sP   € Ü�7‰7�=‰=˜ÔØˆÝ4ô 	�‰ðó		
÷ ‰&‹(Ø
ñ
	ð ñ ˜cÓ
"Ð"r   )r   Údistutils.utilr   Údistutils.command.build_pyÚcommandr   r   r   r‹   r¤   rz   r£   r}   rM   r
   Ú setuptools.extern.more_itertoolsr   r   rd   r5   r   r   ú<module>r¬      sF   ðÝ Ý 'ß )Ð )Û 	Û Û Û 	Û Û Û Ý <ò>ôK
ˆt�}‰}ô K
ó\#r   