§
    WŠtjÞ@  ã                   ó†   — 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dS )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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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   Úboolean_optionsr   Únegative_optc                 óv   — d | _         d | _        d | _        d | _        d | _        d| _        d| _        d | _        d S )NFr   )Ú	build_libÚ
py_modulesÚpackageÚpackage_dataÚpackage_dirr   Úoptimizer   ©Úselfs    úd/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_py.pyÚinitialize_optionszbuild_py.initialize_options$   s@   € ØˆŒØˆŒØˆŒØ ˆÔØˆÔØˆŒØˆŒØˆŒ
ˆ
ˆ
ó    ÚreturnNc                 ó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 )NF)Úinclude_bytecode)r   Úbuild_modulesr&   Úbuild_packagesÚbuild_package_dataÚbyte_compileÚget_outputsr   s    r   Úrunzbuild_py.runG   sy   € ð, Œ?ð 	!Ø×ÒÑ Ô Ð ØŒ=ð 	&Ø×ÒÑ!Ô!Ð!Ø×#Ò#Ñ%Ô%Ð%à×Ò˜$×*Ò*¸EÐ*ÑBÔBÑCÔCÐCÐCÐCr    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Ú	filenamesrA   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>   )rD   r/   Úisfile)r?   ÚfnÚfiless     €r   rB   z,build_py.find_data_files.<locals>.<listcomp>…   s7   ø€ ð ð ð Ø¨°5¨¨½R¼W¿^º^ÈBÑ=OÔ=O¨�¨¨¨r    )	r   ÚgetÚglobrD   r/   rE   Úescaper	   Úextend)r   r   rK   ÚglobsÚpatternÚfilelistrS   s         @r   rH   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ð ð ð ð Ø%ðñ ô ñ ô ð ð ð ˆr    c                 ó>  — | j         D ]”\  }}}}|D ]Š}t          j                             ||¦  «        }|                      t          j                             |¦  «        ¦  «         |                      t          j                             ||¦  «        |d¬¦  «         Œ‹Œ•dS )z$Copy data files into build directoryF©Úpreserve_modeN)r)   rD   r/   rE   ÚmkpathÚdirnameÚ	copy_file)r   Ú_packagerK   rL   rM   ÚfilenameÚtargets          r   r5   zbuild_py.build_package_dataŠ   s¦   € à7;´ð 	ð 	Ñ3ˆH�g˜y¨)Ø%ð ð �ÝœŸš 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).r:   rO   r   éÿÿÿÿ)rF   r   rD   r/   rE   ÚinsertÚKeyErrorrT   )r   r   r/   ÚtailÚpdirs        r   rC   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    rdt           j                             |¦  «        st          d|› d�¦  «        ‚t           j                             |¦  «        st          d|› d�¦  «        ‚|rAt           j                             |d¦  «        }t           j                             |¦  «        r|S d S )NrO   zpackage directory 'z' does not existzsupposed package directory 'z ' exists, but is not a directoryz__init__.py)rD   r/   Úexistsr   ÚisdirrE   rQ   )r   r   r   Úinit_pys       r   Úcheck_packagezbuild_py.check_package»   sÆ   € ð
 ˜"ÒÐÝ”7—>’> +Ñ.Ô.ð Ý(ØG¨+ÐGÐGÐGñô ð õ ”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)rD   r/   rQ   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|› �¦  «         Œ›|S )Nz*.pyr   z
excluding )rn   rU   rD   r/   rE   rV   Úabspathr%   Úscript_nameÚsplitextÚbasenamerI   Údebug_print)	r   r   r   Úmodule_filesÚmodulesÚsetup_scriptr   Úabs_frq   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à× Ò Ð!<¨lÐ!<Ð!<Ñ=Ô=Ð=Ð=Øˆ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.
        r:   r   re   Fr;   Ú__init__ú.py)
r   rF   rE   rg   rC   rn   rI   rD   r/   rs   )r   r&   r{   rq   r/   r   Úmodule_baser   Úcheckedrm   rr   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   rW   r„   r&   rC   r~   )r   r{   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 )re   r>   )r?   rq   s     r   rB   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�   )ÚlistrD   r/   rE   )r   rL   r   rq   Úoutfile_paths        r   Úget_module_outfilezbuild_py.get_module_outfile2  s/   € Ø!�{¥T¨'¡]¤]Ñ2°f¸u±nÐ5EÑEˆÝŒwŒ|˜\Ð*Ð*r    Tr2   c                 óú  — |                       ¦   «         }g }|D ]Í\  }}}|                     d¦  «        }|                      | j        ||¦  «        }|                     |¦  «         |r| j        r4|                     t          j                             |d¬¦  «        ¦  «         | j	        dk    r9|                     t          j                             || j	        ¬¦  «        ¦  «         ŒÎ|d„ | j
        D ¦   «         z  }|S )Nr:   rO   )Úoptimizationr   c                 ób   — g | ],\  }}}}|D ]"}t           j                             ||¦  «        ‘Œ#Œ-S r>   )rD   r/   rE   )r?   r   rK   rL   rM   rb   s         r   rB   z(build_py.get_outputs.<locals>.<listcomp>I  sW   € ð 
ð 
ð 
á6�˜ )¨YØ%ð
ð 
ð õ ŒG�LŠL˜ HÑ-Ô-ð
ð 
ð 
ð 
r    )r‡   rF   rŽ   r   rI   r   Ú	importlibÚutilÚcache_from_sourcer   r)   )r   r2   r{   Úoutputsr   rq   Ú_module_filerb   s           r   r7   zbuild_py.get_outputs6  s#  € Ø×'Ò'Ñ)Ô)ˆØˆØ-4ð 	ð 	Ñ)ˆG�V˜\Ø—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 )Nr:   z:'package' must be a string (dot-separated), list, or tupleFr\   )r*   ÚstrrF   rŒ   ÚtupleÚ	TypeErrorrŽ   r   rD   r/   r_   r^   r`   )r   rq   rr   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À%ˆ~ÑHÔHÐHr    c                 ón   — |                       ¦   «         }|D ]\  }}}|                      |||¦  «         Œd S r=   )r„   r�   )r   r{   r   rq   rr   s        r   r3   zbuild_py.build_modulesa  sP   € Ø×#Ò#Ñ%Ô%ˆØ,3ð 	<ð 	<Ñ(ˆG�V˜[ð
 ×Ò˜f k°7Ñ;Ô;Ð;Ð;ð	<ð 	<r    c                 óÀ   — | j         D ]U}|                      |¦  «        }|                      ||¦  «        }|D ]%\  }}}||k    sJ ‚|                      |||¦  «         Œ&ŒVd S r=   )r&   rC   r~   r�   )r   r   r   r{   Úpackage_rq   rr   s          r   r4   zbuild_py.build_packagesj  s—   € Ø”}ð 	@ð 	@ˆGð ×.Ò.¨wÑ7Ô7ˆKØ×/Ò/°¸ÑEÔEˆGð 29ð @ð @Ñ-�˜& +Ø (Ò*Ð*Ð*Ð*Ø×!Ò! &¨+°wÑ?Ô?Ð?Ð?ð@ð	@ð 	@r    c                 ó2  — t           j        r|                      d¦  «         d S ddlm} | j        }|d         t          j        k    r|t          j        z   }| j        r ||d| j	        |¬¦  «         | j
        dk    r ||| j
        | j	        |¬¦  «         d S d S )Nz%byte-compiling is disabled, skipping.r   )r6   re   r   )r   r   Úprefix)ÚsysÚdont_write_bytecodeÚwarnr“   r6   r   rD   Úsepr   r   r   )r   rS   r6   r¢   s       r   r6   zbuild_py.byte_compile~  sÊ   € ÝÔ"ð 	Ø�IŠIÐ=Ñ>Ô>Ð>ØˆFà'Ð'Ð'Ð'Ð'Ð'à”ˆØ�"Œ:�œÒÐØ�bœf‘_ˆFð
 Œ<ð 	MØˆL˜¨°$´*ÀVÐLÑLÔLÐLØŒ=˜1ÒÐØˆLØØœØ”jØð	ñ ô ð ð ð ð Ðr    )r!   N)T) Ú__name__Ú
__module__Ú__qualname__ÚdescriptionÚuser_optionsr   r   rŒ   r˜   Ú__annotations__r   Údictr   r0   r8   r(   rH   r5   rC   rn   rs   r~   r„   r‡   rŠ   rŽ   Úboolr7   r�   r3   r4   r6   r>   r    r   r   r      sÙ  € € € € € € ØK€Kðð ð €Lð -6°wÐ+?€O�X˜d 3œiÔ(Ð?Ð?Ñ?Ø.:¸IÐ-F€L�(˜4  S œ>Ô*ÐFÐFÑFðð ð ðJð Jð Jð Jð2Dð Dð Dð Dð<ð ð ð,ð ð ðð ð ð ð%ð %ð %ðNð ð ð4ð ð ðð ð ð2ð 2ð 2ðhð ð ð Bð Bð Bð+ð +ð +ðð ¨Dð ¸DÀ¼Ið ð ð ð ð6Ið Ið Ið <ð <ð <ð <ð@ð @ð @ð @ð(ð ð ð ð ð r    r   )Ú__doc__rU   Úimportlib.utilr’   rD   r£   Údistutils._logr   Útypingr   Úcorer   Úerrorsr   r   r“   r	   r   r>   r    r   ú<module>rµ      sÖ   ðð0ð 0ð €€€Ø Ð Ð Ð Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø Ð Ð Ð Ð Ð ðCð Cð Cð Cð Cˆwñ Cô Cð Cð Cð Cr    