Ë
    nûàg¨@  ã                   ór   — 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m	Z	 ddl
mZmZ ddlmZ  G d„ d	e	«      Zy)
zHdistutils.command.build_py

Implements the Distutils 'build_py' command.é    N)Úlogé   )ÚCommand)ÚDistutilsFileErrorÚDistutilsOptionError)Úconvert_pathc                   óœ   — 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 )NFr   )Ú	build_libÚ
py_modulesÚpackageÚpackage_dataÚpackage_dirr   Úoptimizer   ©Úselfs    úd/var/www/skyplay_api_hub/venv/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   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_optionszbuild_py.finalize_options-   s%  € Ø×"Ñ"ØÐ/Ð1Cô	
ð ×)Ñ)×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 )NF)Úinclude_bytecode)r   Úbuild_modulesr"   Úbuild_packagesÚbuild_package_dataÚbyte_compileÚget_outputsr   s    r   Úrunzbuild_py.runF   sR   € ð, �?Š?Ø×ÑÔ Ø�=Š=Ø×ÑÔ!Ø×#Ñ#Ô%à×Ñ˜$×*Ñ*¸EÐ*ÓBÕCr   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_filesd   sÃ   € àˆØ�}Š}ØˆKØ—}‘}ò 	BˆGà×*Ñ*¨7Ó3ˆGô Ÿ™Ÿ™¨¯©Ð'7¸'¿-¹-ÈÓ:LÑ'LÐNˆIð ˆDÙÜ˜7“| aÑ'�ð 26×1EÑ1EÀgÈwÓ1WÖX¨˜˜d˜ešÐXˆIÐXØ�K‰K˜ '¨9°iÐ@ÕAð	Bð ˆùò Y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                  |«      sŒ(|‘Œ+ 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_filesz   s¶   € à×!Ñ!×%Ñ% b¨"Ó-°×0AÑ0A×0EÑ0EÀgÈrÓ0RÑRˆØˆØò 	ˆGä—y‘yÜ—‘—‘œTŸ[™[¨Ó1´<ÀÓ3HÓIóˆHð �L‰LØ%öØ¨°5ª¼R¿W¹W¿^¹^ÈBÕ=O’òõ ð	ð ˆùòs   Â	C
Â)C
Ã	C
c                 ó>  — | j                   D ]Ž  \  }}}}|D ]‚  }t        j                  j                  ||«      }| j	                  t        j                  j                  |«      «       | j                  t        j                  j                  ||«      |d¬«       Œ„ Œ� y)z$Copy data files into build directoryF©Úpreserve_modeN)r%   r9   r+   r:   ÚmkpathÚdirnameÚ	copy_file)r   Ú_packager@   rA   rD   ÚfilenameÚtargets          r   r1   zbuild_py.build_package_data‰   s�   € à7;·±ò 	Ñ3ˆH�g˜y¨)Ø%ò �ÜŸ™Ÿ™ i°Ó:�Ø—‘œBŸG™GŸO™O¨FÓ3Ô4Ø—‘Ü—G‘G—L‘L ¨(Ó3°VÈ5ð õ ññ	r   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                 óL  — |dk7  r\t         j                  j                  |«      st        d|› d�«      ‚t         j                  j	                  |«      st        d|› d�«      ‚|rAt         j                  j                  |d«      }t         j                  j                  |«      r|S y )NrF   zpackage directory 'z' does not existzsupposed package directory 'z ' exists, but is not a directoryz__init__.py)r9   r+   Úexistsr   Úisdirr:   rK   )r   r   r   Úinit_pys       r   Úcheck_packagezbuild_py.check_packageº   sš   € ð
 ˜"ÒÜ—7‘7—>‘> +Ô.Ü(Ø)¨+¨Ð6FÐGóð ô —7‘7—=‘= Ô-Ü(Ø2°;°-ð @-ð -óð ñ Ü—g‘g—l‘l ;°Ó>ˆGÜ�w‰w�~‰~˜gÔ&Ø�ð r   c                 ór   — t         j                  j                  |«      st        j                  d||«       yy)Nz!file %s (for module %s) not foundFT)r9   r+   rK   r   Úwarning)r   ÚmoduleÚmodule_files      r   Úcheck_modulezbuild_py.check_moduleÔ   s)   € Ü�w‰w�~‰~˜kÔ*Ü�K‰KÐ;¸[È&ÔQØà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|› �«       Œ� |S )Nz*.pyr   z
excluding )rd   rH   r9   r+   r:   rI   Úabspathr!   Úscript_nameÚsplitextÚbasenamer>   Údebug_print)	r   r   r   Úmodule_filesÚmodulesÚsetup_scriptr   Úabs_frg   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à× Ñ  :¨l¨^Ð!<Õ=ð	>ð ˆ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[   Fr7   Ú__init__ú.py)
r   r;   r:   r]   r8   rd   r>   r9   r+   ri   )r   r"   rq   rg   r+   r   Úmodule_baser   Úcheckedrc   rh   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   rz   r"   r8   rt   )r   rq   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   rg   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 )Nrw   )Úlistr9   r+   r:   )r   rA   r   rg   Úoutfile_paths        r   Úget_module_outfilezbuild_py.get_module_outfile1  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.   rq   Úoutputsr   rg   Ú_module_filerX   r@   rA   rD   s              r   r3   zbuild_py.get_outputs5  s(  € Ø×'Ñ'Ó)ˆØˆØ-4ò 	Ñ)ˆG�V˜\Ø—m‘m CÓ(ˆGØ×.Ñ.¨t¯~©~¸wÈÓOˆHØ�N‰N˜8Ô$ÚØ—<’<Ø—N‘NÜ!Ÿ™×8Ñ8¸ÐPRÐ8ÓSôð —=‘= 1Ó$Ø—N‘NÜ!Ÿ™×8Ñ8Ø$°4·=±=ð 9ó õð	ð  	à:>¿/¹/÷
ò 
á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 tupleFrR   )r&   Ústrr;   r�   ÚtupleÚ	TypeErrorrƒ   r   r9   r+   rU   rT   rV   )r   rg   rh   r   ÚoutfileÚdirs         r   Úbuild_modulezbuild_py.build_moduleP  s…   € Ü�gœsÔ#Ø—m‘m CÓ(‰GÜ˜G¤d¬E ]Ô3ÜØLóð ð ×)Ñ)¨$¯.©.¸'À6ÓJˆÜ�g‰g�o‰o˜gÓ&ˆØ�‰�CÔØ�~‰~˜k¨7À%ˆ~ÓHÐHr   c                 ó`   — | j                  «       }|D ]  \  }}}| j                  |||«       Œ y ©N)rz   r‘   )r   rq   r   rg   rh   s        r   r/   zbuild_py.build_modules`  s:   € Ø×#Ñ#Ó%ˆØ,3ò 	<Ñ(ˆG�V˜[ð
 ×Ñ˜f k°7Õ;ñ	<r   c                 ó¶   — | j                   D ]J  }| j                  |«      }| j                  ||«      }|D ]   \  }}}||k(  sJ ‚| j                  |||«       Œ" ŒL y r“   )r"   r8   rt   r‘   )r   r   r   rq   Úpackage_rg   rh   s          r   r0   zbuild_py.build_packagesi  su   € Ø—}‘}ò 	@ˆGð ×.Ñ.¨wÓ7ˆKØ×/Ñ/°¸ÓEˆGð 29ò @Ñ-�˜& +Ø (Ò*Ð*Ð*Ø×!Ñ! &¨+°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   r   ÚprefixÚdry_run)ÚsysÚdont_write_bytecodeÚwarnr‡   r2   r   r9   Úsepr   r   r˜   r   )r   rM   r2   r—   s       r   r2   zbuild_py.byte_compile}  sž   € Ü×"Ò"Ø�I‰IÐ=Ô>Øå'à—‘ˆØ�"‰:œŸ™ÒØœbŸf™f‘_ˆFð
 �<Š<ÙØ ¨¯©¸FÈDÏLÉLõð �=‰=˜1ÒÙØØŸ™Ø—j‘jØØŸ™öð r   N)T)Ú__name__Ú
__module__Ú__qualname__ÚdescriptionÚuser_optionsÚboolean_optionsÚnegative_optr   r,   r4   r$   r=   r1   r8   rd   ri   rt   rz   r}   r   rƒ   r3   r‘   r/   r0   r2   © r   r   r
   r
      sŠ   „ ØK€Kò€Lð ! 'Ð*€OØ  )Ð,€LòòJò2Dò<ò,òò%òNò4òò2òhò Bò+óò6Iò <ò@ó(r   r
   )Ú__doc__rH   Úimportlib.utilr†   r9   r™   Údistutils._logr   Úcorer   Úerrorsr   r   r‡   r   r
   r¤   r   r   ú<module>rª      s2   ðñ0ó Û Û 	Û 
Ý å ß =Ý ôFˆwõ Fr   