Ë
    ˜šãjo@  ã                   ól   — d Z ddlZddlZddlZddlZddlmZ ddl­ ddl	m
Z
 ddlmZ  G d„ de«      Zy)	zHdistutils.command.build_py

Implements the Distutils 'build_py' command.é    N)ÚCommand)Ú*)Úconvert_path)Úlogc                   óœ   — e Zd ZdZg d¢ZddgZddi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d„Zd„ Zd„ Zd„ Zd„ Zy)Úbuild_pyz5"build" pure Python modules (copy to build directory)))z
build-lib=Údzdirectory to "build" (copy) to)ÚcompileÚczcompile .py to .pyc)ú
no-compileNz!don't compile .py files [default])z	optimize=ÚOzlalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0])ÚforceÚfz2forcibly build everything (ignore file timestamps)r
   r   r   c                 ót   — d | _         d | _        d | _        d | _        d | _        d| _        d| _        d | _        y )Nr   )Ú	build_libÚ
py_modulesÚpackageÚpackage_dataÚpackage_dirr
   Úoptimizer   ©Úselfs    úq/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/setuptools/_distutils/command/build_py.pyÚinitialize_optionszbuild_py.initialize_options    s<   € ØˆŒØˆŒØˆŒØ ˆÔØˆÔØˆŒØˆŒØˆ�
ó    c                 ó”  — | j                  ddd«       | j                  j                  | _        | j                  j                  | _        | j                  j                  | _        i | _        | j                  j
                  rD| j                  j
                  j                  «       D ]  \  }}t        |«      | j
                  |<   Œ | j                  «       | _	        t        | j                  t        «      s6	 t        | j                  «      | _        d| j                  cxk  rdk  sJ ‚ J ‚y y # t        t        f$ r t        d«      ‚w xY w)NÚbuild)r   r   )r   r   r   é   zoptimize must be 0, 1, or 2)Úset_undefined_optionsÚdistributionÚpackagesr   r   r   Úitemsr   Úget_data_filesÚ
data_filesÚ
isinstancer   ÚintÚ
ValueErrorÚAssertionErrorÚDistutilsOptionError)r   ÚnameÚpaths      r   Úfinalize_optionszbuild_py.finalize_options*   s$  € Ø×"Ñ" 7Ø#=Ø#5ô	7ð ×)Ñ)×2Ñ2ˆŒØ×+Ñ+×6Ñ6ˆŒØ ×-Ñ-×:Ñ:ˆÔØˆÔØ×Ñ×(Ò(Ø"×/Ñ/×;Ñ;×AÑAÓCò <‘
��dÜ)5°dÓ);�× Ñ  Ò&ð<à×-Ñ-Ó/ˆŒô ˜$Ÿ-™-¬Ô-ðJÜ # D§M¡MÓ 2�”Ø˜DŸM™MÔ.¨QÒ.Ð.Ñ.Ð.Ñ.ð .øô ¤Ð/ò JÜ*Ð+HÓIÐIðJús   Ã64D, Ä,Ec                 óÖ   — | j                   r| j                  «        | j                  r | j                  «        | j	                  «        | j                  | j                  d¬«      «       y )Nr   )Úinclude_bytecode)r   Úbuild_modulesr!   Úbuild_packagesÚbuild_package_dataÚbyte_compileÚget_outputsr   s    r   Úrunzbuild_py.runC   sR   € ð, �?Š?Ø×ÑÔ Ø�=Š=Ø×ÑÔ!Ø×#Ñ#Ô%à×Ñ˜$×*Ñ*¸AÐ*Ó>Õ?r   c                 óx  — g }| j                   s|S | j                   D ]•  }| j                  |«      }t        j                  j                  | j
                  g|j                  d«      z   Ž }d}|rt        |«      dz   }| j                  ||«      D �cg c]  }||d ‘Œ	 }}|j                  ||||f«       Œ— |S c c}w )z?Generate list of '(package,src_dir,build_dir,filenames)' tuplesú.r   é   N)
r!   Úget_package_dirÚosr+   Újoinr   ÚsplitÚlenÚfind_data_filesÚappend)r   Údatar   Úsrc_dirÚ	build_dirÚplenÚfileÚ	filenamess           r   r#   zbuild_py.get_data_filesa   sÊ   € àˆØ�}Š}ØˆKØ—}‘}ò 	BˆGà×*Ñ*¨7Ó3ˆGô Ÿ™Ÿ™¨¯©Ð'7¸'¿-¹-ÈÓ:LÑ'LÐNˆIð ˆDÙÜ˜7“| A‘~�ð )-×(<Ñ(<¸WÀgÓ(NöØ $��T�U’ðˆIð ð �K‰K˜ '¨9°iÐ@ÕAð!	Bð" ˆùò	s   ÂB7c           	      ó¸  — | j                   j                  dg «      | j                   j                  |g «      z   }g }|D ]”  }t        j                  t        j                  j                  t        j                  |«      t        |«      «      «      }|j                  |D �cg c](  }||vsŒt        j                  j                  |«      r|‘Œ* c}«       Œ– |S c c}w )z6Return filenames for package's data files in 'src_dir'Ú )
r   ÚgetÚglobr9   r+   r:   Úescaper   ÚextendÚisfile)r   r   r@   ÚglobsÚfilesÚpatternÚfilelistÚfns           r   r=   zbuild_py.find_data_filesy   s·   € à×"Ñ"×&Ñ& r¨2Ó.Ø×$Ñ$×(Ñ(¨°"Ó5ñ6ˆàˆØò 	)ˆGä—y‘y¤§¡§¡¬d¯k©k¸'Ó.BÄLÐQXÓDYÓ!ZÓ[ˆHà�L‰L xö ( °2¸U²?Ü—G‘G—N‘N 2Ô&ò ò (õ )ð		)ð ˆùò(s   Â	C
Â)#C
c                 óB  — d}| j                   D ]Ž  \  }}}}|D ]‚  }t        j                  j                  ||«      }| j	                  t        j                  j                  |«      «       | j                  t        j                  j                  ||«      |d¬«       Œ„ Œ� y)z$Copy data files into build directoryNF©Úpreserve_mode)r$   r9   r+   r:   ÚmkpathÚdirnameÚ	copy_file)r   Úlastdirr   r@   rA   rD   ÚfilenameÚtargets           r   r1   zbuild_py.build_package_data†   s†   € àˆØ6:·o±oò 	4Ñ2ˆG�W˜i¨Ø%ò 4�ÜŸ™Ÿ™ i°Ó:�Ø—‘œBŸG™GŸO™O¨FÓ3Ô4Ø—‘œrŸw™wŸ|™|¨G°XÓ>ÀØ-2ð õ 4ñ4ñ	4r   c                 ó  — |j                  d«      }| j                  s|rt        j                  j                  |Ž S yg }|rM	 | j                  dj	                  |«         }|j                  d|«       t        j                  j                  |Ž S | j                  j                  d«      }|�|j                  d|«       |rt        j                  j                  |Ž S y# t        $ r |j                  d|d   «       |d= Y nw xY w|rŒÅŒy)z½Return the directory, relative to the top of the source
           distribution, where package 'package' should be found
           (at least according to the 'package_dir' option, if any).r6   rF   r   éÿÿÿÿ)r;   r   r9   r+   r:   ÚinsertÚKeyErrorrG   )r   r   r+   ÚtailÚpdirs        r   r8   zbuild_py.get_package_dir�   sñ   € ð �}‰}˜SÓ!ˆà×ÒÙÜ—w‘w—|‘| TÐ*Ð*ààˆDÙð/Ø×+Ñ+¨C¯H©H°T«NÑ;�Dð
 —K‘K  4Ô(ÜŸ7™7Ÿ<™<¨Ð.Ð.ð ×'Ñ'×+Ñ+¨BÓ/�ØÐ#Ø—K‘K  4Ô(áÜŸ7™7Ÿ<™<¨Ð.Ð.àøô+  ò !Ø—K‘K  4¨¡8Ô,Ø˜Ršð!úò øs   ÁC Ã!D Ã?D c                 ót  — |dk7  rZt         j                  j                  |«      st        d|z  «      ‚t         j                  j	                  |«      st        d|z  «      ‚|rWt         j                  j                  |d«      }t         j                  j                  |«      r|S t        j                  d|«       y )NrF   z%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz__init__.pyz8package init file '%s' not found (or not a regular file))	r9   r+   ÚexistsÚDistutilsFileErrorÚisdirr:   rK   r   Úwarn)r   r   r   Úinit_pys       r   Úcheck_packagezbuild_py.check_package·   s¤   € ð
 ˜"ÒÜ—7‘7—>‘> +Ô.Ü(Ø=ÀÑKóMð Mä—7‘7—=‘= Ô-Ü(ð0Ø2=ñ>ó?ð ?ñ
 Ü—g‘g—l‘l ;°Ó>ˆGÜ�w‰w�~‰~˜gÔ&Ø�ä—‘ð 4Ø6=ô?ð
 r   c                 ór   — t         j                  j                  |«      st        j                  d||«       yy)Nz!file %s (for module %s) not foundFT)r9   r+   rK   r   rd   )r   ÚmoduleÚmodule_files      r   Úcheck_modulezbuild_py.check_moduleÒ   s)   € Ü�w‰w�~‰~˜kÔ*Ü�H‰HÐ8¸+ÀvÔNØàr   c                 óF  — | j                  ||«       t        j                  t        j                  j	                  t        j
                  |«      d«      «      }g }t        j                  j                  | j                  j                  «      }|D ]Ž  }t        j                  j                  |«      }||k7  rTt        j                  j                  t        j                  j                  |«      «      d   }|j                  |||f«       Œ{| j                  d|z  «       Œ� |S )Nz*.pyr   zexcluding %s)rf   rH   r9   r+   r:   rI   Úabspathr    Úscript_nameÚsplitextÚbasenamer>   Údebug_print)	r   r   r   Úmodule_filesÚmodulesÚsetup_scriptr   Úabs_frh   s	            r   Úfind_package_moduleszbuild_py.find_package_modulesÙ   sÛ   € Ø×Ñ˜7 KÔ0Ü—y‘y¤§¡§¡¬d¯k©k¸+Ó.FÈÓ!OÓPˆØˆÜ—w‘w—‘ t×'8Ñ'8×'DÑ'DÓEˆàò 	@ˆAÜ—G‘G—O‘O AÓ&ˆEØ˜Ò$ÜŸ™×)Ñ)¬"¯'©'×*:Ñ*:¸1Ó*=Ó>¸qÑA�Ø—‘ ¨°Ð3Õ4à× Ñ  °,Ñ!>Õ?ð	@ð ˆr   c                 óÐ  — i }g }| j                   D ]°  }|j                  d«      }dj                  |dd «      }|d   }	 ||   \  }}|s/| j                  ||«      }	|df||<   |	r|j                  |d|	f«       t        j                  j                  ||dz   «      }
| j                  ||
«      sŒ�|j                  |||
f«       Œ² |S # t        $ r | j	                  |«      }d}Y Œ�w xY w)aÈ  Finds individually-specified Python modules, ie. those listed by
        module name in 'self.py_modules'.  Returns a list of tuples (package,
        module_base, filename): 'package' is a tuple of the path through
        package-space to the module; 'module_base' is the bare (no
        packages, no dots) module name, and 'filename' is the path to the
        ".py" file (relative to the distribution root) that implements the
        module.
        r6   r   r[   r7   Ú__init__ú.py)
r   r;   r:   r]   r8   rf   r>   r9   r+   rj   )r   r!   rr   rh   r+   r   Úmodule_baser   Úcheckedre   ri   s              r   Úfind_moduleszbuild_py.find_modulesè   s  € ð ˆð ˆð —o‘oò 	@ˆFØ—<‘< Ó$ˆDØ—h‘h˜t A b˜zÓ*ˆGØ˜r™(ˆKðØ)1°'Ñ):Ñ&�˜gñ
 Ø×,Ñ,¨W°kÓB�Ø%0°!Ð$4�˜Ñ!ÙØ—N‘N G¨Z¸Ð#AÔBô
 Ÿ'™'Ÿ,™, {°KÀ%Ñ4GÓHˆKØ×$Ñ$ V¨[Ô9Øà�N‰N˜G [°+Ð>Õ?ð1	@ð4 ˆøô' ò Ø"×2Ñ2°7Ó;�Ø’ðús   ¿CÃC%Ã$C%c                 ó  — g }| j                   r|j                  | j                  «       «       | j                  rE| j                  D ]6  }| j	                  |«      }| j                  ||«      }|j                  |«       Œ8 |S )a4  Compute the list of all modules that will be built, whether
        they are specified one-module-at-a-time ('self.py_modules') or
        by whole packages ('self.packages').  Return a list of tuples
        (package, module, module_file), just like 'find_modules()' and
        'find_package_modules()' do.)r   rJ   r{   r!   r8   ru   )r   rr   r   r   Úms        r   Úfind_all_moduleszbuild_py.find_all_modules  st   € ð ˆØ�?Š?Ø�N‰N˜4×,Ñ,Ó.Ô/Ø�=Š=ØŸ=™=ò "�Ø"×2Ñ2°7Ó;�Ø×-Ñ-¨g°{ÓC�Ø—‘˜qÕ!ð"ð ˆr   c                 óN   — | j                  «       D �cg c]  }|d   ‘Œ	 c}S c c}w )Nr[   )r~   )r   rh   s     r   Úget_source_fileszbuild_py.get_source_files,  s#   € Ø)-×)>Ñ)>Ó)@ÖA˜v��r“
ÒAÐAùÒAs   “"c                 óf   — |gt        |«      z   |dz   gz   }t        j                  j                  |Ž S )Nrx   )Úlistr9   r+   r:   )r   rA   r   rh   Úoutfile_paths        r   Úget_module_outfilezbuild_py.get_module_outfile/  s1   € Ø!�{¤T¨'£]Ñ2°f¸u±nÐ5EÑEˆÜ�w‰w�|‰|˜\Ð*Ð*r   c                 ó€  — | j                  «       }g }|D ]Î  \  }}}|j                  d«      }| j                  | j                  ||«      }|j	                  |«       |sŒI| j
                  r0|j	                  t        j                  j                  |d¬«      «       | j                  dkD  sŒ•|j	                  t        j                  j                  || j                  ¬«      «       ŒÐ || j                  D ���	�
�cg c].  \  }}}	}
|
D ]"  }t        j                  j                  |	|«      ‘Œ$ Œ0 c}}
}	}}z  }|S c c}}
}	}}w )Nr6   rF   )Úoptimizationr   )r~   r;   r„   r   r>   r
   Ú	importlibÚutilÚcache_from_sourcer   r$   r9   r+   r:   )r   r.   rr   Úoutputsr   rh   ri   rX   r@   rA   rD   s              r   r3   zbuild_py.get_outputs3  s*  € Ø×'Ñ'Ó)ˆØˆØ.5ò 
	?Ñ*ˆW�f˜kØ—m‘m CÓ(ˆGØ×.Ñ.¨t¯~©~¸wÈÓOˆHØ�N‰N˜8Ô$ÚØ—<’<Ø—N‘N¤9§>¡>×#CÑ#CØ ¨rð $Dó $3ô 4à—=‘= 1Ó$Ø—N‘N¤9§>¡>×#CÑ#CØ ¨t¯}©}ð $Dó $>õ ?ð
	?ð 	à:>¿/¹/÷ò á6�˜ )¨YØ%òð ô �G‰G�L‰L˜ HÕ-ðØ-öñ 	ˆð ˆùös   Ã93D7c                 óJ  — t        |t        «      r|j                  d«      }n!t        |t        t        f«      st        d«      ‚| j                  | j                  ||«      }t        j                  j                  |«      }| j                  |«       | j                  ||d¬«      S )Nr6   z:'package' must be a string (dot-separated), list, or tupler   rR   )r%   Ústrr;   r‚   ÚtupleÚ	TypeErrorr„   r   r9   r+   rU   rT   rV   )r   rh   ri   r   ÚoutfileÚdirs         r   Úbuild_modulezbuild_py.build_moduleJ  s‡   € Ü�gœsÔ#Ø—m‘m CÓ(‰GÜ˜G¤d¬E ]Ô3ÜØNóPð Pð ×)Ñ)¨$¯.©.¸'À6ÓJˆÜ�g‰g�o‰o˜gÓ&ˆØ�‰�CÔØ�~‰~˜k¨7À!ˆ~ÓDÐDr   c                 ó`   — | j                  «       }|D ]  \  }}}| j                  |||«       Œ y ©N)r{   r‘   )r   rr   r   rh   ri   s        r   r/   zbuild_py.build_modulesY  s:   € Ø×#Ñ#Ó%ˆØ.5ò 	<Ñ*ˆW�f˜kð
 ×Ñ˜f k°7Õ;ñ	<r   c                 ó¶   — | j                   D ]J  }| j                  |«      }| j                  ||«      }|D ]   \  }}}||k(  sJ ‚| j                  |||«       Œ" ŒL y r“   )r!   r8   ru   r‘   )r   r   r   rr   Úpackage_rh   ri   s          r   r0   zbuild_py.build_packagesb  su   € Ø—}‘}ò 	@ˆGð ×.Ñ.¨wÓ7ˆKØ×/Ñ/°¸ÓEˆGð 4;ò @Ñ/�˜6 ;Ø (Ò*Ð*Ð*Ø×!Ñ! &¨+°wÕ?ñ@ñ	@r   c                 óŽ  — t         j                  r| j                  d«       y ddlm} | j
                  }|d   t        j                  k7  r|t        j                  z   }| j                  r! ||d| j                  || j                  ¬«       | j                  dkD  r, ||| j                  | j                  || j                  ¬«       y y )Nz%byte-compiling is disabled, skipping.r   )r2   r[   )r   r   ÚprefixÚdry_run)ÚsysÚdont_write_bytecoderd   Údistutils.utilr2   r   r9   Úsepr
   r   r˜   r   )r   rM   r2   r—   s       r   r2   zbuild_py.byte_compilev  sš   € Ü×"Ò"Ø�I‰IÐ=Ô>Øå/Ø—‘ˆØ�"‰:œŸ™ÒØœbŸf™f‘_ˆFð
 �<Š<Ù˜¨Ø#Ÿz™z°&À$Ç,Á,õPà�=‰=˜1ÒÙ˜¨¯©Ø#Ÿz™z°&À$Ç,Á,öPð r   N)r7   )Ú__name__Ú
__module__Ú__qualname__ÚdescriptionÚuser_optionsÚboolean_optionsÚnegative_optr   r,   r4   r#   r=   r1   r8   rf   rj   ru   r{   r~   r€   r„   r3   r‘   r/   r0   r2   © r   r   r   r      s‹   „ àK€Kò
€Lð ! 'Ð*€OØ  9Ð-€LòòJò2@ò<ò0ò4ò%òNò6òò2òhò Bò+óò.Eò<ò@ó(Pr   r   )Ú__doc__r9   Úimportlib.utilr‡   r™   rH   Údistutils.corer   Údistutils.errorsr›   r   Ú	distutilsr   r   r¤   r   r   ú<module>rª      s4   ðñ0ó 
Û Û 
Û å "Ü Ý 'Ý ôyP�õ yPr   