Ë
    ¨Õ°j¿A  ã                   ó~   — 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 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)ÚClassVaré   )ÚCommand)ÚDistutilsFileErrorÚDistutilsOptionError)Úconvert_pathc                   ó*  — e Zd ZU dZg d¢Zeeeeeef      eeeedz  ef      z     e	d<   ddgZ
eee      e	d<   ddiZeeeef      e	d	<   d
„ Zdd„Zdd„Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd dedee   fd„Zd„ Zdd„Zdd„Zd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)NÚuser_optionsr   r   Úboolean_optionsr   Únegative_optc                 ót   — d | _         d | _        d | _        d | _        d | _        d| _        d| _        d | _        y )NFr   )Ú	build_libÚ
py_modulesÚpackageÚpackage_dataÚpackage_dirr   Úoptimizer   ©Úselfs    ú\/var/www/mission/venv/lib/python3.12/site-packages/setuptools/_distutils/command/build_py.pyÚinitialize_optionszbuild_py.initialize_options(   s<   € ØˆŒØˆŒØˆŒØ ˆÔØˆÔØˆŒØˆŒØˆ�
ó    Úreturnc                 ó”  — | 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_options2   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.runK   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Úosr0   Újoinr   ÚsplitÚlenÚfind_data_filesÚappend)r   Údatar   Úsrc_dirÚ	build_dirÚplenÚfileÚ	filenamess           r   r)   zbuild_py.get_data_filesi   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Úglobr>   r0   r?   Úescaper	   ÚextendÚisfile)r   r   rE   ÚglobsÚfilesÚpatternÚfilelistÚfns           r   rB   z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Ø%öØ¨°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*   r>   r0   r?   ÚmkpathÚdirnameÚ	copy_file)r   Ú_packagerE   rF   rI   ÚfilenameÚtargets          r   r6   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).r;   rK   r   éÿÿÿÿ)r@   r   r>   r0   r?   ÚinsertÚKeyErrorrL   )r   r   r0   ÚtailÚpdirs        r   r=   zbuild_py.get_package_dir˜   sñ   € ð �}‰}˜SÓ!ˆà×ÒÙÜ—w‘w—|‘| TÐ*Ð*ààˆDÙð/Ø×+Ñ+¨C¯H©H°T«NÑ;�Dð
 —K‘K  4Ô(ÜŸ7™7Ÿ<™<¨Ð.Ð.ð ×#Ñ#×'Ñ'¨Ó+ˆDØÐØ—‘˜A˜tÔ$áÜ—w‘w—|‘| TÐ*Ð*àøô)  ò !Ø—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 )NrK   zpackage directory 'z' does not existzsupposed package directory 'z ' exists, but is not a directoryz__init__.py)r>   r0   Úexistsr   Úisdirr?   rP   )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)r>   r0   rP   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 )ri   rM   r>   r0   r?   rN   Úabspathr&   Úscript_nameÚsplitextÚbasenamerC   Údebug_print)	r   r   r   Úmodule_filesÚmodulesÚsetup_scriptr   Úabs_frl   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.
        r;   r   r`   Fr<   Ú__init__ú.py)
r   r@   r?   rb   r=   ri   rC   r>   r0   rn   )r   r'   rv   rl   r0   r   Úmodule_baser   Úcheckedrh   rm   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   rO   r   r'   r=   ry   )r   rv   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   rl   s     r   Úget_source_fileszbuild_py.get_source_files2  s#   € Ø)-×)>Ñ)>Ó)@ÖA˜v��r“
ÒAÐAùÒAs   “"c                 óf   — |gt        |«      z   |dz   gz   }t        j                  j                  |Ž S )Nr|   )Úlistr>   r0   r?   )r   rF   r   rl   Úoutfile_paths        r   Úget_module_outfilezbuild_py.get_module_outfile5  s1   € Ø!�{¤T¨'£]Ñ2°f¸u±nÐ5EÑEˆÜ�w‰w�|‰|˜\Ð*Ð*r!   r3   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 )Nr;   rK   )Úoptimizationr   )r‚   r@   rˆ   r   rC   r   Ú	importlibÚutilÚcache_from_sourcer   r*   r>   r0   r?   )r   r3   rv   Úoutputsr   rl   Ú_module_filer]   rE   rF   rI   s              r   r8   zbuild_py.get_outputs9  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 )Nr;   z:'package' must be a string (dot-separated), list, or tupleFrW   )r+   Ústrr@   r†   ÚtupleÚ	TypeErrorrˆ   r   r>   r0   rZ   rY   r[   )r   rl   rm   r   ÚoutfileÚdirs         r   Úbuild_modulezbuild_py.build_moduleT  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)r   r–   )r   rv   r   rl   rm   s        r   r4   zbuild_py.build_modulesd  s:   € Ø×#Ñ#Ó%ˆØ,3ò 	<Ñ(ˆG�V˜[ð
 ×Ñ˜f k°7Õ;ñ	<r!   c                 ó  — | j                   €!t        t        | «      j                  › d�«      ‚| j                   D ]J  }| j	                  |«      }| j                  ||«      }|D ]   \  }}}||k(  sJ ‚| j                  |||«       Œ" ŒL y )Nz9.packages is None. Is the Distribution missing packages ?)r'   r“   ÚtypeÚ__name__r=   ry   r–   )r   r   r   rv   Úpackage_rl   rm   s          r   r5   zbuild_py.build_packagesm  s¤   € Ø�=‰=Ð ÜÜ˜“:×&Ñ&Ð'Ð'`Ðaóð ð —}‘}ò 	@ˆGð ×.Ñ.¨wÓ7ˆKØ×/Ñ/°¸ÓEˆGð 29ò @Ñ-�˜& +Ø (Ò*Ð*Ð*Ø×!Ñ! &¨+°wÕ?ñ@ñ	@r!   c                 ób  — t         j                  r| j                  d«       y ddlm} | j
                  }|d   t        j                  k7  r|t        j                  z   }| j                  r ||d| j                  |¬«       | j                  dkD  r! ||| j                  | j                  |¬«       y y )Nz%byte-compiling is disabled, skipping.r   )r7   r`   r   )r   r   Úprefix)ÚsysÚdont_write_bytecodeÚwarnrŒ   r7   r   r>   Úsepr   r   r   )r   rR   r7   r�   s       r   r7   zbuild_py.byte_compile…  sŒ   € Ü×"Ò"Ø�I‰IÐ=Ô>Øå'à—‘ˆØ�"‰:œŸ™ÒØœbŸf™f‘_ˆFð
 �<Š<Ù˜¨°$·*±*ÀVÕLØ�=‰=˜1ÒÙØØŸ™Ø—j‘jØö	ð r!   )r"   N)T)!rš   Ú
__module__Ú__qualname__Údescriptionr   r   r†   r’   r‘   Ú__annotations__r   r   Údictr    r1   r9   r)   rB   r6   r=   ri   rn   ry   r   r‚   r„   rˆ   Úboolr8   r–   r4   r5   r7   © r!   r   r   r      sø   … ØK€Kò	ð �(ØˆU�3˜˜S�=Ñ!Ñ" T¨%°°S¸4±ZÀÐ0DÑ*EÑ%FÑFñó ð" -6°wÐ+?€O�X˜d 3™iÑ(Ó?Ø.:¸IÐ-F€L�(˜4  S ™>Ñ*ÓFòóJó2Dò<ò,óò$òLò4òò2òhò Bò+ñ¨Dð ¸DÀ¹Ió ò6Ió <ó@ô0r!   r   )Ú__doc__rM   Úimportlib.utilr‹   r>   rž   Údistutils._logr   Útypingr   Úcorer   Úerrorsr   r   rŒ   r	   r   r¨   r!   r   ú<module>r¯      s5   ðñ0ó Û Û 	Û 
Ý Ý å ß =Ý ôJˆwõ Jr!   