§
    Ÿj @  ã                   óz   — 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	m
Z
 ddlmZ ddlmZ  G d„ d	e¦  «        ZdS )
zHdistutils.command.build_py

Implements the Distutils 'build_py' command.é    Né   )ÚCommand)ÚDistutilsOptionErrorÚDistutilsFileError)Ú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dS )Ú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                 óv   — d | _         d | _        d | _        d | _        d | _        d| _        d| _        d | _        d S )Nr   )Ú	build_libÚ
py_modulesÚpackageÚpackage_dataÚpackage_dirr   Úoptimizer   ©Úselfs    ús/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_py.pyÚinitialize_optionszbuild_py.initialize_options$   s@   € ØˆŒØˆŒØˆŒØ ˆÔØˆÔØˆŒØˆŒØˆŒ
ˆ
ˆ
ó    c                 óH  — |                       ddd¦  «         | j        j        | _        | j        j        | _        | j        j        | _        i | _        | j        j        r;| j        j                             ¦   «         D ]\  }}t          |¦  «        | j        |<   Œ|                      ¦   «         | _	        t          | j        t          ¦  «        sV	 t          | j        ¦  «        | _        d| j        cxk    rdk    sn J ‚d S # t          t          f$ r t          d¦  «        ‚w xY wd S )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.   sM  € Ø×"Ò"ØÐ/Ð1Cñ	
ô 	
ð 	
ð Ô)Ô2ˆŒØÔ+Ô6ˆŒØ Ô-Ô:ˆÔØˆÔØÔÔ(ð 	<Ø"Ô/Ô;×AÒAÑCÔCð <ð <‘
��dÝ)5°dÑ);Ô);�Ô  Ñ&Ð&Ø×-Ò-Ñ/Ô/ˆŒõ ˜$œ-­Ñ-Ô-ð 	JðJÝ # D¤MÑ 2Ô 2�”Ø˜DœMÐ.Ð.Ò.Ð.¨QÒ.Ð.Ð.Ð.Ð.Ð.Ð.Ð.øÝ¥Ð/ð Jð Jð JÝ*Ð+HÑIÔIÐIðJøøøð		Jð 	Js   Ã/C> Ã>!Dc                 óì   — | j         r|                      ¦   «          | j        r(|                      ¦   «          |                      ¦   «          |                      |                      d¬¦  «        ¦  «         d S )Nr   )Úinclude_bytecode)r   Úbuild_modulesr"   Úbuild_packagesÚbuild_package_dataÚbyte_compileÚget_outputsr   s    r   Úrunzbuild_py.runG   sy   € ð, Œ?ð 	!Ø×ÒÑ Ô Ð ØŒ=ð 	&Ø×ÒÑ!Ô!Ð!Ø×#Ò#Ñ%Ô%Ð%à×Ò˜$×*Ò*¸AÐ*Ñ>Ô>Ñ?Ô?Ð?Ð?Ð?r   c                 ó\  ‡— g }| j         s|S | j         D ]—}|                      |¦  «        }t          j        j        | j        g|                     d¦  «        z   Ž }dŠ|rt          |¦  «        dz   Šˆfd„|                      ||¦  «        D ¦   «         }| 	                    ||||f¦  «         Œ˜|S )z?Generate list of '(package,src_dir,build_dir,filenames)' tuplesú.r   é   c                 ó$   •— g | ]}|‰d …         ‘ŒS ©N© )Ú.0ÚfileÚplens     €r   ú
<listcomp>z+build_py.get_data_files.<locals>.<listcomp>w   s!   ø€ ÐXÐXÐX¨˜˜d˜e˜eœÐXÐXÐXr   )
r"   Úget_package_dirÚosr+   Újoinr   ÚsplitÚlenÚfind_data_filesÚappend)r   Údatar   Úsrc_dirÚ	build_dirÚ	filenamesr=   s         @r   r$   zbuild_py.get_data_filese   sÑ   ø€ àˆØŒ}ð 	ØˆKØ”}ð 	Bð 	BˆGà×*Ò*¨7Ñ3Ô3ˆGõ œœ¨¬Ð'7¸'¿-º-ÈÑ:LÔ:LÑ'LÐNˆIð ˆDØð (Ý˜7‘|”| aÑ'�ð YÐXÐXÐX°×1EÒ1EÀgÈwÑ1WÔ1WÐXÑXÔXˆIØ�KŠK˜ '¨9°iÐ@ÑAÔAÐAÐAØˆr   c           	      óh  ‡— | j                              dg ¦  «        | j                              |g ¦  «        z   }g Š|D ]t}t          j        t          j                             t          j        |¦  «        t          |¦  «        ¦  «        ¦  «        }‰                     ˆfd„|D ¦   «         ¦  «         Œu‰S )z6Return filenames for package's data files in 'src_dir'Ú c                 óZ   •— g | ]'}|‰v¯t           j                             |¦  «        ¯%|‘Œ(S r:   )r@   r+   Úisfile)r;   ÚfnÚfiless     €r   r>   z,build_py.find_data_files.<locals>.<listcomp>†   s0   ø€ ÐQÐQÐQ˜¨"°E¨/¨/½b¼g¿nºnÈRÑ>PÔ>P¨/�¨/¨/¨/r   )	r   ÚgetÚglobr@   r+   rA   Úescaper   Úextend)r   r   rG   ÚglobsÚpatternÚfilelistrO   s         @r   rD   zbuild_py.find_data_files{   s¸   ø€ àÔ!×%Ò% b¨"Ñ-Ô-°Ô0A×0EÒ0EÀgÈrÑ0RÔ0RÑRˆØˆØð 	ð 	ˆGå”yÝ”—’�Tœ[¨Ñ1Ô1µ<ÀÑ3HÔ3HÑIÔIñô ˆHð �LŠLØQÐQÐQÐQ˜hÐQÑQÔQñô ð ð ð ˆr   c                 ó>  — | j         D ]”\  }}}}|D ]Š}t          j                             ||¦  «        }|                      t          j                             |¦  «        ¦  «         |                      t          j                             ||¦  «        |d¬¦  «         Œ‹Œ•dS )z$Copy data files into build directoryF©Úpreserve_modeN)r%   r@   r+   rA   ÚmkpathÚdirnameÚ	copy_file)r   r   rG   rH   rI   ÚfilenameÚtargets          r   r1   zbuild_py.build_package_dataŠ   s¦   € à6:´oð 	ð 	Ñ2ˆG�W˜i¨Ø%ð ð �ÝœŸš i°Ñ:Ô:�Ø—’�BœGŸOšO¨FÑ3Ô3Ñ4Ô4Ð4Ø—’Ý”G—L’L ¨(Ñ3Ô3°VÈ5ð ñ ô ð ð ðð	ð 	r   c                 óø  — |                      d¦  «        }| j        s|rt          j        j        |Ž S dS g }|r{	 | j        d                     |¦  «                 }|                     d|¦  «         t          j        j        |Ž S # t          $ r" |                     d|d         ¦  «         |d= Y nw xY w|°{| j                             d¦  «        }|�|                     d|¦  «         |rt          j        j        |Ž S dS )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   rK   r   éÿÿÿÿ)rB   r   r@   r+   rA   ÚinsertÚKeyErrorrP   )r   r   r+   ÚtailÚpdirs        r   r?   zbuild_py.get_package_dir”   s"  € ð �}Š}˜SÑ!Ô!ˆàÔð 	Øð Ý”w”| TÐ*Ð*à�ràˆDØð ð/ØÔ+¨C¯HªH°T©N¬NÔ;�Dð
 —K’K  4Ñ(Ô(Ð(Ýœ7œ<¨Ð.Ð.øõ  ð !ð !ð !Ø—K’K  4¨¤8Ñ,Ô,Ð,Ø˜R˜˜˜ð!øøøð ð ð" Ô'×+Ò+¨BÑ/Ô/�ØÐ#Ø—K’K  4Ñ(Ô(Ð(àð Ýœ7œ<¨Ð.Ð.à˜2s   ¹ B Â)B.Â-B.c                 ó\  — |dk    rbt           j                             |¦  «        st          d|z  ¦  «        ‚t           j                             |¦  «        st          d|z  ¦  «        ‚|rAt           j                             |d¦  «        }t           j                             |¦  «        r|S d S )NrK   z%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz__init__.py)r@   r+   Úexistsr   ÚisdirrA   rM   )r   r   r   Úinit_pys       r   Úcheck_packagezbuild_py.check_package»   s·   € ð
 ˜"ÒÐÝ”7—>’> +Ñ.Ô.ð Ý(Ø;¸kÑIñô ð õ ”7—=’= Ñ-Ô-ð Ý(ð-Ø/:ñ;ñô ð ð ð 	Ý”g—l’l ;°Ñ>Ô>ˆGÝŒw�~Š~˜gÑ&Ô&ð Ø�ð ˆtr   c                 ót   — t           j                             |¦  «        st          j        d||¦  «         dS dS )Nz!file %s (for module %s) not foundFT)r@   r+   rM   r   Úwarning)r   ÚmoduleÚmodule_files      r   Úcheck_modulezbuild_py.check_moduleÕ   s7   € ÝŒw�~Š~˜kÑ*Ô*ð 	ÝŒKÐ;¸[È&ÑQÔQÐQØ�5à�4r   c                 óJ  — |                       ||¦  «         t          j        t          j                             t          j        |¦  «        d¦  «        ¦  «        }g }t          j                             | j        j        ¦  «        }|D ]š}t          j                             |¦  «        }||k    r[t          j         	                    t          j         
                    |¦  «        ¦  «        d         }|                     |||f¦  «         Œ‚|                      d|z  ¦  «         Œ›|S )Nz*.pyr   zexcluding %s)ri   rQ   r@   r+   rA   rR   Úabspathr!   Úscript_nameÚsplitextÚbasenamerE   Ú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Ô0Ð0Ý”y¥¤§¢­d¬k¸+Ñ.FÔ.FÈÑ!OÔ!OÑPÔPˆØˆÝ”w—’ tÔ'8Ô'DÑEÔEˆàð 	@ð 	@ˆAÝ”G—O’O AÑ&Ô&ˆEØ˜Ò$Ð$Ýœ×)Ò)­"¬'×*:Ò*:¸1Ñ*=Ô*=Ñ>Ô>¸qÔA�Ø—’ ¨°Ð3Ñ4Ô4Ð4Ð4à× Ò  °,Ñ!>Ñ?Ô?Ð?Ð?Øˆr   c                 ó  — i }g }| j         D ]û}|                     d¦  «        }d                     |dd…         ¦  «        }|d         }	 ||         \  }}n'# t          $ r |                      |¦  «        }d}Y nw xY w|s7|                      ||¦  «        }	|df||<   |	r|                     |d|	f¦  «         t          j                             ||dz   ¦  «        }
|  	                    ||
¦  «        sŒã|                     |||
f¦  «         Œü|S )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   rB   rA   rb   r?   ri   rE   r@   r+   rn   )r   r"   rv   rl   r+   r   Úmodule_baser   Úcheckedrh   rm   s              r   Úfind_moduleszbuild_py.find_modulesë   sN  € ð ˆð ˆð ”oð 	@ð 	@ˆFØ—<’< Ñ$Ô$ˆDØ—h’h˜t A b DœzÑ*Ô*ˆGØ˜rœ(ˆKðØ)1°'Ô):Ñ&�˜g˜gøÝð ð ð Ø"×2Ò2°7Ñ;Ô;�Ø���ðøøøð ð CØ×,Ò,¨W°kÑBÔB�Ø%0°!Ð$4�˜Ñ!Øð CØ—N’N G¨Z¸Ð#AÑBÔBÐBõ
 œ'Ÿ,š, {°KÀ%Ñ4GÑHÔHˆKØ×$Ò$ V¨[Ñ9Ô9ð Øà�NŠN˜G [°+Ð>Ñ?Ô?Ð?Ð?àˆs   Á	AÁ!A9Á8A9c                 ó  — g }| j         r'|                     |                      ¦   «         ¦  «         | j        rJ| j        D ]B}|                      |¦  «        }|                      ||¦  «        }|                     |¦  «         ŒC|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   rS   r   r"   r?   ry   )r   rv   r   r   Úms        r   Úfind_all_moduleszbuild_py.find_all_modules  sŽ   € ð ˆØŒ?ð 	0Ø�NŠN˜4×,Ò,Ñ.Ô.Ñ/Ô/Ð/ØŒ=ð 	"Øœ=ð "ð "�Ø"×2Ò2°7Ñ;Ô;�Ø×-Ò-¨g°{ÑCÔC�Ø—’˜qÑ!Ô!Ð!Ð!Øˆr   c                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 ó   — g | ]
}|d          ‘ŒS )r`   r:   )r;   rl   s     r   r>   z-build_py.get_source_files.<locals>.<listcomp>0  s   € ÐAÐAÐA˜v��r”
ÐAÐAÐAr   )r‚   r   s    r   Úget_source_fileszbuild_py.get_source_files/  s"   € ØAÐA¨×)>Ò)>Ñ)@Ô)@ÐAÑAÔAÐAr   c                 ó\   — |gt          |¦  «        z   |dz   gz   }t          j        j        |Ž S )Nr|   )Úlistr@   r+   rA   )r   rH   r   rl   Úoutfile_paths        r   Úget_module_outfilezbuild_py.get_module_outfile2  s/   € Ø!�{¥T¨'¡]¤]Ñ2°f¸u±nÐ5EÑEˆÝŒwŒ|˜\Ð*Ð*r   r7   c                 óú  — |                       ¦   «         }g }|D ]Í\  }}}|                     d¦  «        }|                      | j        ||¦  «        }|                     |¦  «         |r| j        r4|                     t          j                             |d¬¦  «        ¦  «         | j	        dk    r9|                     t          j                             || j	        ¬¦  «        ¦  «         ŒÎ|d„ | j
        D ¦   «         z  }|S )Nr6   rK   )Úoptimizationr   c                 ób   — g | ],\  }}}}|D ]"}t           j                             ||¦  «        ‘Œ#Œ-S r:   )r@   r+   rA   )r;   r   rG   rH   rI   r]   s         r   r>   z(build_py.get_outputs.<locals>.<listcomp>I  sW   € ð 
ð 
ð 
á6�˜ )¨YØ%ð
ð 
ð õ ŒG�LŠL˜ HÑ-Ô-ð
ð 
ð 
ð 
r   )r‚   rB   r‰   r   rE   r   Ú	importlibÚutilÚcache_from_sourcer   r%   )r   r.   rv   Úoutputsr   rl   rm   r]   s           r   r3   zbuild_py.get_outputs6  s#  € Ø×'Ò'Ñ)Ô)ˆØˆØ.5ð 	ð 	Ñ*ˆW�f˜kØ—m’m CÑ(Ô(ˆGØ×.Ò.¨t¬~¸wÈÑOÔOˆHØ�NŠN˜8Ñ$Ô$Ð$Øð 
Ø”<ð Ø—N’NÝ!œ×8Ò8¸ÐPRÐ8ÑSÔSñô ð ð ”= 1Ò$Ð$Ø—N’NÝ!œ×8Ò8Ø$°4´=ð 9ñ ô ñô ð øð 	ð 
ð 
à:>¼/ð
ñ 
ô 
ñ 	
ˆð ˆr   c                 ó~  — t          |t          ¦  «        r|                     d¦  «        }n+t          |t          t          f¦  «        st          d¦  «        ‚|                      | j        ||¦  «        }t          j	         
                    |¦  «        }|                      |¦  «         |                      ||d¬¦  «        S )Nr6   z:'package' must be a string (dot-separated), list, or tupler   rX   )r&   ÚstrrB   r‡   ÚtupleÚ	TypeErrorr‰   r   r@   r+   r[   rZ   r\   )r   rl   rm   r   ÚoutfileÚdirs         r   Úbuild_modulezbuild_py.build_moduleQ  sª   € Ý�g�sÑ#Ô#ð 	Ø—m’m CÑ(Ô(ˆGˆGÝ˜G¥d­E ]Ñ3Ô3ð 	ÝØLñô ð ð ×)Ò)¨$¬.¸'À6ÑJÔJˆÝŒg�oŠo˜gÑ&Ô&ˆØ�Š�CÑÔÐØ�~Š~˜k¨7À!ˆ~ÑDÔDÐDr   c                 ón   — |                       ¦   «         }|D ]\  }}}|                      |||¦  «         Œd S r9   )r   r—   )r   rv   r   rl   rm   s        r   r/   zbuild_py.build_modulesa  sP   € Ø×#Ò#Ñ%Ô%ˆØ.5ð 	<ð 	<Ñ*ˆW�f˜kð
 ×Ò˜f k°7Ñ;Ô;Ð;Ð;ð	<ð 	<r   c                 óÀ   — | j         D ]U}|                      |¦  «        }|                      ||¦  «        }|D ]%\  }}}||k    sJ ‚|                      |||¦  «         Œ&ŒVd S r9   )r"   r?   ry   r—   )r   r   r   rv   Úpackage_rl   rm   s          r   r0   zbuild_py.build_packagesj  s—   € Ø”}ð 	@ð 	@ˆGð ×.Ò.¨wÑ7Ô7ˆKØ×/Ò/°¸ÑEÔEˆGð 4;ð @ð @Ñ/�˜6 ;Ø (Ò*Ð*Ð*Ð*Ø×!Ò! &¨+°wÑ?Ô?Ð?Ð?ð@ð	@ð 	@r   c                 óJ  — t           j        r|                      d¦  «         d S ddlm} | j        }|d         t          j        k    r|t          j        z   }| j        r ||d| j	        || j
        ¬¦  «         | j        dk    r! ||| j        | j	        || j
        ¬¦  «         d S d S )Nz%byte-compiling is disabled, skipping.r   )r2   r`   r   )r   r   ÚprefixÚdry_run)ÚsysÚdont_write_bytecodeÚwarnrŽ   r2   r   r@   Úsepr   r   r�   r   )r   rO   r2   rœ   s       r   r2   zbuild_py.byte_compile~  sÝ   € ÝÔ"ð 	Ø�IŠIÐ=Ñ>Ô>Ð>ØˆFà'Ð'Ð'Ð'Ð'Ð'à”ˆØ�"Œ:�œÒÐØ�bœf‘_ˆFð
 Œ<ð 	ØˆLØ ¨¬¸FÈDÌLðñ ô ð ð Œ=˜1ÒÐØˆLØØœØ”jØØœðñ ô ð ð ð ð Ðr   N)r7   )Ú__name__Ú
__module__Ú__qualname__ÚdescriptionÚuser_optionsÚboolean_optionsÚnegative_optr   r,   r4   r$   rD   r1   r?   ri   rn   ry   r   r‚   r…   r‰   r3   r—   r/   r0   r2   r:   r   r   r
   r
      ss  € € € € € àK€Kðð ð €Lð ! 'Ð*€OØ  )Ð,€Lðð ð ðJð Jð Jð2@ð @ð @ð<ð ð ð,ð ð ðð ð ð%ð %ð %ðNð ð ð4ð ð ðð ð ð2ð 2ð 2ðhð ð ð Bð Bð Bð+ð +ð +ðð ð ð ð6Eð Eð Eð <ð <ð <ð@ð @ð @ð(ð ð ð ð r   r
   )Ú__doc__r@   Úimportlib.utilr�   rž   rQ   Úcorer   Úerrorsr   r   rŽ   r   Údistutils._logr   r
   r:   r   r   ú<module>r®      sÄ   ðð0ð 0ð 
€	€	€	Ø Ð Ð Ð Ø 
€
€
€
Ø €€€à Ð Ð Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðGð Gð Gð Gð Gˆwñ Gô Gð Gð Gð Gr   