ó
    µ'ÔiÞ@  ã                   ó~   • S r SSKrSSKrSSKrSSKrSSKJr  SSKJ	r	  SSK
Jr  SSKJrJr  SSKJr   " S	 S
\5      rg)zHdistutils.command.build_py

Implements the Distutils 'build_py' command.é    N)Úlog)ÚClassVaré   )ÚCommand)ÚDistutilsFileErrorÚDistutilsOptionError)Úconvert_pathc                   ó  • \ rS rSr% Sr/ SQrSS/r\\\	      \
S'   SS0r\\\	\	4      \
S'   S	 rS S jrS S jrS rS rS S jrS rS rS rS rS rS rS rS rS!S\S
\\	   4S jjrS rS S jrS S jrS S jr Sr!g)"Úbuild_pyé   z5"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   Úboolean_optionsr   Únegative_optc                 ót   • S U l         S U l        S U l        S U l        S U l        SU l        SU l        S U l        g )NFr   )Ú	build_libÚ
py_modulesÚpackageÚpackage_dataÚpackage_dirr   Úoptimizer   ©Úselfs    Úe/var/www/surfInsights/venv3-11/lib/python3.13/site-packages/setuptools/_distutils/command/build_py.pyÚinitialize_optionsÚbuild_py.initialize_options$   s<   € ØˆŒØˆŒØˆŒØ ˆÔØˆÔØˆŒØˆŒØˆ�
ó    ÚreturnNc                 ó°  • U R                  SSS5        U R                  R                  U l        U R                  R                  U l        U R                  R                  U l        0 U l        U R                  R
                  (       aE  U R                  R
                  R                  5        H  u  p[        U5      U R
                  U'   M     U R                  5       U l	        [        U R                  [        5      (       d8   [        U R                  5      U l        SU R                  s=::  a  S::  d   e   eg g ! [        [        4 a    [        S5      ef = f)NÚbuild)r   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ÚAssertionErrorr   )r   ÚnameÚpaths      r   Úfinalize_optionsÚbuild_py.finalize_options.   s"  € Ø×"Ñ"ØÐ/Ð1Cô	
ð ×)Ñ)×2Ñ2ˆŒØ×+Ñ+×6Ñ6ˆŒØ ×-Ñ-×:Ñ:ˆÔØˆÔØ×Ñ×(×(Ø"×/Ñ/×;Ñ;×AÑAÖC‘
�Ü)5°dÓ);�× Ñ  Ó&ñ Dà×-Ñ-Ó/ˆŒô ˜$Ÿ-™-¬×-Ñ-ðJÜ # D§M¡MÓ 2�”Ø˜DŸM™MÕ.¨QÓ.Ð.Ñ.Ð.Ñ.ð .øô ¤Ð/ó JÜ*Ð+HÓIÐIðJús   Ä6D9 Ä9Ec                 óä   • U R                   (       a  U R                  5         U R                  (       a   U R                  5         U R	                  5         U R                  U R                  SS95        g )NF)Úinclude_bytecode)r   Úbuild_modulesr(   Úbuild_packagesÚbuild_package_dataÚbyte_compileÚget_outputsr   s    r   ÚrunÚbuild_py.runG   sR   € ð, �?�?Ø×ÑÔ Ø�=�=Ø×ÑÔ!Ø×#Ñ#Ô%à×Ñ˜$×*Ñ*¸EÐ*ÐBÕCr"   c                 ó�  • / nU R                   (       d  U$ U R                    H›  nU R                  U5      n[        R                  R                  " U R
                  /UR                  S5      -   6 nSnU(       a  [        U5      S-   nU R                  X#5       Vs/ s H  ofUS PM	     nnUR                  X#XG45        M�     U$ s  snf )z?Generate list of '(package,src_dir,build_dir,filenames)' tuplesÚ.r   é   N)
r(   Úget_package_dirÚosr1   Újoinr   ÚsplitÚlenÚfind_data_filesÚappend)r   Údatar   Úsrc_dirÚ	build_dirÚplenÚfileÚ	filenamess           r   r*   Úbuild_py.get_data_filese   s·   € àˆØ�}�}ØˆKØ—}”}ˆGà×*Ñ*¨7Ó3ˆGô Ÿ™Ÿš¨¯©Ð'7¸'¿-¹-ÈÓ:LÑ'LÐNˆIð ˆDÞÜ˜7“| aÑ'�ð 26×1EÑ1EÀgÔ1WÓXÒ1W¨˜d˜e›Ñ1WˆIÐXØ�K‰K˜¨9Ð@ÖAñ %ð ˆùò Ys   ÂCc           	      óØ  • U R                   R                  S/ 5      U R                   R                  U/ 5      -   n/ nU H£  n[        R                  " [        R                  R                  [        R                  " U5      [        U5      5      5      nUR                  U Vs/ s H2  owU;  d  M
  [        R                  R                  U5      (       d  M0  UPM4     sn5        M¥     U$ s  snf )z6Return filenames for package's data files in 'src_dir'Ú )
r   ÚgetÚglobrA   r1   rB   Úescaper	   ÚextendÚisfile)r   r   rH   ÚglobsÚfilesÚpatternÚfilelistÚfns           r   rE   Úbuild_py.find_data_files{   sµ   € à×!Ñ!×%Ñ% b¨"Ó-°×0AÑ0A×0EÑ0EÀgÈrÓ0RÑRˆØˆÛˆGä—y’yÜ—‘—‘œTŸ[š[¨Ó1´<ÀÓ3HÓIóˆHð �L‰LÙ%óÚ%�r°5©“¼R¿W¹W¿^¹^ÈB×=O—™Xñö ñ ð ˆùòs   Â!	C'
Â."C'
ÃC'
c                 ó8  • U R                    HŠ  u  pp4U H~  n[        R                  R                  X55      nU R	                  [        R                  R                  U5      5        U R                  [        R                  R                  X%5      USS9  M€     MŒ     g)z$Copy data files into build directoryF©Úpreserve_modeN)r+   rA   r1   rB   ÚmkpathÚdirnameÚ	copy_file)r   Ú_packagerH   rI   rL   ÚfilenameÚtargets          r   r8   Úbuild_py.build_package_dataŠ   sp   € à7;·´Ñ3ˆH˜yÛ%�ÜŸ™Ÿ™ iÓ:�Ø—‘œBŸG™GŸO™O¨FÓ3Ô4Ø—‘Ü—G‘G—L‘L Ó3°VÈ5ð ó ó &ò 8Gr"   c                 óL  • UR                  S5      nU R                  (       d%  U(       a  [        R                  R                  " U6 $ g/ nU(       aN   U R                  SR	                  U5         nUR                  SU5        [        R                  R                  " U6 $ U R                  R                  S5      nUb  UR                  SU5        U(       a  [        R                  R                  " U6 $ g! [         a    UR                  SUS   5        US	  Of = fU(       a  MÔ  N‡)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).r>   rO   r   éÿÿÿÿ)rC   r   rA   r1   rB   ÚinsertÚKeyErrorrP   )r   r   r1   ÚtailÚpdirs        r   r@   Ú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   ÁC4 Ã4"DÄDc                 óv  • US:w  af  [         R                  R                  U5      (       d  [        SU S35      e[         R                  R	                  U5      (       d  [        SU S35      eU(       aF  [         R                  R                  US5      n[         R                  R                  U5      (       a  U$ g )NrO   zpackage directory 'z' does not existzsupposed package directory 'z ' exists, but is not a directoryz__init__.py)rA   r1   Úexistsr   ÚisdirrB   rT   )r   r   r   Úinit_pys       r   Úcheck_packageÚbuild_py.check_package»   s£   € ð
 ˜"ÓÜ—7‘7—>‘> +×.Ñ.Ü(Ø)¨+¨Ð6FÐGóð ô —7‘7—=‘= ×-Ñ-Ü(Ø2°;°-ð @-ð -óð ö Ü—g‘g—l‘l ;°Ó>ˆGÜ�w‰w�~‰~˜g×&Ñ&Ø�ð r"   c                 ó|   • [         R                  R                  U5      (       d  [        R                  " SX!5        gg)Nz!file %s (for module %s) not foundFT)rA   r1   rT   r   Úwarning)r   ÚmoduleÚmodule_files      r   Úcheck_moduleÚbuild_py.check_moduleÕ   s*   € Ü�w‰w�~‰~˜k×*Ñ*Ü�KŠKÐ;¸[ÔQØàr"   c                 óL  • U R                  X5        [        R                  " [        R                  R	                  [        R
                  " U5      S5      5      n/ n[        R                  R                  U R                  R                  5      nU H�  n[        R                  R                  U5      nXu:w  aT  [        R                  R                  [        R                  R                  U5      5      S   nUR                  XU45        M{  U R                  SU 35        M‘     U$ )Nz*.pyr   z
excluding )rp   rQ   rA   r1   rB   rR   Úabspathr'   Úscript_nameÚsplitextÚbasenamerF   Údebug_print)	r   r   r   Úmodule_filesÚmodulesÚsetup_scriptr   Úabs_frt   s	            r   Úfind_package_modulesÚbuild_py.find_package_modulesÜ   sÐ   € Ø×Ñ˜7Ô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à× Ñ  :¨l¨^Ð!<Ö=ñ ð ˆr"   c                 óè  • 0 n/ nU R                    Hº  nUR                  S5      nSR                  USS 5      nUS   n X   u  pxU(       d2  U R                  XW5      n	US4X'   U	(       a  UR                  USU	45        [        R                  R                  XvS-   5      n
U R                  X:5      (       d  M§  UR                  XVU
45        M¼     U$ ! [         a    U R	                  U5      nSn N«f = f)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.
r>   r   rf   Fr?   Ú__init__ú.py)
r   rC   rB   rh   r@   rp   rF   rA   r1   rv   )r   r(   r   rt   r1   r   Úmodule_baser   Úcheckedro   ru   s              r   Úfind_modulesÚbuild_py.find_modulesë   sþ   € ð ˆð ˆð —o”oˆFØ—<‘< Ó$ˆDØ—h‘h˜t A b˜zÓ*ˆGØ˜r™(ˆKð Ø)1Ñ):Ñ&�ö
 Ø×,Ñ,¨WÓB�Ø%0°!Ð$4�Ñ!ÞØ—N‘N G¨Z¸Ð#AÔBô
 Ÿ'™'Ÿ,™, {À%Ñ4GÓHˆKØ×$Ñ$ V×9Ñ9Ùà�N‰N˜G°+Ð>Ö?ñ1 &ð4 ˆøô' ó  Ø"×2Ñ2°7Ó;�Ø’ð ús   ¿CÃC1Ã0C1c                 ó  • / nU R                   (       a  UR                  U R                  5       5        U R                  (       aF  U R                   H6  nU R	                  U5      nU R                  X#5      nUR                  U5        M8     U$ )a  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   rS   r‰   r(   r@   r‚   )r   r   r   r   Úms        r   Úfind_all_modulesÚbuild_py.find_all_modules  sm   € ð ˆØ�?�?Ø�N‰N˜4×,Ñ,Ó.Ô/Ø�=�=ØŸ=œ=�Ø"×2Ñ2°7Ó;�Ø×-Ñ-¨gÓC�Ø—‘˜qÖ!ñ )ð ˆr"   c                 óR   • U R                  5        Vs/ s H  oS   PM	     sn$ s  snf )Nrf   )r�   )r   rt   s     r   Úget_source_filesÚbuild_py.get_source_files/  s'   € Ø)-×)>Ñ)>Ô)@ÓAÒ)@˜v�r”
Ñ)@ÑAÐAùÒAs   “$c                 óh   • U/[        U5      -   US-   /-   n[        R                  R                  " U6 $ )Nr†   )ÚlistrA   r1   rB   )r   rI   r   rt   Úoutfile_paths        r   Úget_module_outfileÚbuild_py.get_module_outfile2  s1   € Ø!�{¤T¨'£]Ñ2°f¸u±nÐ5EÑEˆÜ�w‰w�|Š|˜\Ð*Ð*r"   r5   c                 ó’  • U R                  5       n/ nU HÓ  u  pEnUR                  S5      nU R                  U R                  XE5      nUR	                  U5        U(       d  MM  U R
                  (       a-  UR	                  [        R                  R                  USS95        U R                  S:”  d  M�  UR	                  [        R                  R                  XpR                  S95        MÕ     UU R                   VVV	V
Vs/ s H/  u  pHpšU
  H"  n[        R                  R                  X—5      PM$     M1     snn
n	nn-  nU$ s  snn
n	nnf )Nr>   rO   )Úoptimizationr   )r�   rC   r•   r   rF   r   Ú	importlibÚutilÚcache_from_sourcer   r+   rA   r1   rB   )r   r5   r   Úoutputsr   rt   Ú_module_filerb   rH   rI   rL   s              r   r:   Úbuild_py.get_outputs6  s  € Ø×'Ñ'Ó)ˆØˆÛ-4Ñ)ˆG˜\Ø—m‘m CÓ(ˆGØ×.Ñ.¨t¯~©~¸wÓOˆHØ�N‰N˜8Ô$ßÐØ—<—<Ø—N‘NÜ!Ÿ™×8Ñ8¸ÐPRÐ8ÐSôð —=‘= 1Õ$Ø—N‘NÜ!Ÿ™×8Ñ8Ø$·=±=ð 9ð öñ .5ð  	à:>¿/º/÷
â:IÑ6� )Ü%�ô �G‰G�L‰L˜Ö-á%ñ .Ù:Iõ
ñ 	
ˆð ˆùö
s   Ã?6E c                 óT  • [        U[        5      (       a  UR                  S5      nO&[        U[        [        45      (       d  [        S5      eU R                  U R                  X15      n[        R                  R                  U5      nU R                  U5        U R                  X$SS9$ )Nr>   z:'package' must be a string (dot-separated), list, or tupleFr\   )r,   ÚstrrC   r“   ÚtupleÚ	TypeErrorr•   r   rA   r1   r_   r^   r`   )r   rt   ru   r   ÚoutfileÚdirs         r   Úbuild_moduleÚbuild_py.build_moduleQ  s‡   € Ü�gœs×#Ñ#Ø—m‘m CÓ(‰GÜ˜G¤d¬E ]×3Ñ3ÜØLóð ð ×)Ñ)¨$¯.©.¸'ÓJˆÜ�g‰g�o‰o˜gÓ&ˆØ�‰�CÔØ�~‰~˜kÀ%ˆ~ÐHÐHr"   c                 ó`   • U R                  5       nU H  u  p#nU R                  X4U5        M     g ©N)r‰   r¥   )r   r   r   rt   ru   s        r   r6   Úbuild_py.build_modulesa  s1   € Ø×#Ñ#Ó%ˆÛ,3Ñ(ˆG˜[ð
 ×Ñ˜f°7Ö;ò -4r"   c                 ó¸   • U R                    HJ  nU R                  U5      nU R                  X5      nU H  u  pEnX:X  d   eU R                  XVU5        M!     ML     g r¨   )r(   r@   r‚   r¥   )r   r   r   r   Úpackage_rt   ru   s          r   r7   Úbuild_py.build_packagesj  s_   € Ø—}”}ˆGð ×.Ñ.¨wÓ7ˆKØ×/Ñ/°ÓEˆGó 29Ñ-� +ØÓ*Ð*Ð*Ø×!Ñ! &°wÖ?ó 29ò %r"   c                 ón  • [         R                  (       a  U R                  S5        g SSKJn  U R
                  nUS   [        R                  :w  a  U[        R                  -   nU R                  (       a  U" USU R                  US9  U R                  S:”  a  U" UU R                  U R                  US9  g g )Nz%byte-compiling is disabled, skipping.r   )r9   rf   r   )r   r   Úprefix)ÚsysÚdont_write_bytecodeÚwarnrš   r9   r   rA   Úsepr   r   r   )r   rV   r9   r®   s       r   r9   Úbuild_py.byte_compile~  sŒ   € Ü×"×"Ø�I‰IÐ=Ô>Øå'à—‘ˆØ�"‰:œŸ™ÓØœbŸf™f‘_ˆFð
 �<�<Ù˜¨°$·*±*ÀVÒLØ�=‰=˜1ÓÙØØŸ™Ø—j‘jØó	ð r"   )
r   r   r+   r   r   r   r   r   r(   r   )r#   N)T)"Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚdescriptionÚuser_optionsr   r   r“   r    Ú__annotations__r   Údictr    r2   r;   r*   rE   r8   r@   rp   rv   r‚   r‰   r�   r�   r•   Úboolr:   r¥   r6   r7   r9   Ú__static_attributes__© r"   r   r   r      s¼   ‡ ØK€Kò€Lð -6°wÐ+?€O�X˜d 3™iÑ(Ó?Ø.:¸IÐ-F€L�(˜4  S ™>Ñ*ÓFòôJô2Dò<ò,ôò%òNò4òò2òhò Bò+ñ¨Dð ¸DÀ¹Iõ ò6Iô <ô@÷(r"   r   )Ú__doc__rQ   Úimportlib.utilr™   rA   r¯   Údistutils._logr   Útypingr   Úcorer   Úerrorsr   r   rš   r	   r   r¾   r"   r   Ú<module>rÅ      s5   ðñ0ó Û Û 	Û 
Ý Ý å ß =Ý ôCˆwõ Cr"   