
    Wh&                          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mZ d dlmZ d dlmZ d d	lmZ  ee          Z G d
 de          ZdS )    N)Values)Callable)Command)ERRORSUCCESS)CommandErrorPipError)
filesystem)	getLogger)format_sizec                      e Zd ZdZdZdZddZdeee	e
ee         gdf         f         fdZde
d	ee         defd
Zde
d	ee         ddfdZde
d	ee         ddfdZde
d	ee         ddfdZdee         ddfdZdee         ddfdZde
d	ee         ddfdZde
d	ee         ddfdZde
dedefdZde
dee         fdZde
dedee         fdZdS )CacheCommandaw  
    Inspect and manage pip's wheel cache.

    Subcommands:

    - dir: Show the cache directory.
    - info: Show information about the cache.
    - list: List filenames of packages stored in the cache.
    - remove: Remove one or more package from the cache.
    - purge: Remove all items from the cache.

    ``<pattern>`` can be a glob expression or a package name.
    Tz
        %prog dir
        %prog info
        %prog list [<pattern>] [--format=[human, abspath]]
        %prog remove <pattern>
        %prog purge
    returnNc                     | j                             dddddd           | j                            d| j                    d S )	Nz--formatstorelist_formathuman)r   abspathz:Select the output format among: human (default) or abspath)actiondestdefaultchoiceshelpr   )cmd_opts
add_optionparserinsert_option_groupselfs    n/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/pip/_internal/commands/cache.pyadd_optionszCacheCommand.add_options(   sU      (M 	! 	
 	
 	
 	''4=99999    c                 D    | j         | j        | j        | j        | j        dS )N)dirinfolistremovepurge)get_cache_dirget_cache_infolist_cache_itemsremove_cache_itemspurge_cacher   s    r    handler_mapzCacheCommand.handler_map4   s/    %')-%
 
 	
r"   optionsargsc                    |                                  }|j        s!t                              d           t          S |r
|d         |vrBt                              dd                    t          |                               t          S |d         }	  ||         ||dd                     nC# t          $ r6}t                              |j        d                    t          cY d }~S d }~ww xY wt          S )Nz<pip cache commands can not function since cache is disabled.r   zNeed an action (%s) to perform.z,    )
r.   	cache_dirloggererrorr   joinsortedr	   r0   r   )r   r/   r0   r.   r   es         r    runzCacheCommand.run=   s   &&((  	LLWXXXL  	tAwk11LL1		&--..   La	Kabb2222 	 	 	LL###LLLLLL	 s   B/ /
C/9+C*$C/*C/c                 f    |rt          d          t                              |j                   d S )NToo many arguments)r   r4   r%   r3   r   r/   r0   s      r    r)   zCacheCommand.get_cache_dirW   s4     	53444G%&&&&&r"   c           	         |rt          d          t          |                     |                    }t          |                     |d                    }|                     |d          }|                     |d          }|                     |d          }t          j        t          j        |          t          j        |          z             }t          j        |          }	t          j
        d                              |||||||	                                          }
t                              |
           d S )Nr;   *http-v2httpwheelsa  
                    Package index page cache location (pip v23.3+): {http_cache_location}
                    Package index page cache location (older pips): {old_http_cache_location}
                    Package index page cache size: {http_cache_size}
                    Number of HTTP files: {num_http_files}
                    Locally built wheels location: {wheels_cache_location}
                    Locally built wheels size: {wheels_cache_size}
                    Number of locally built wheels: {package_count}
                )http_cache_locationold_http_cache_locationhttp_cache_sizenum_http_fileswheels_cache_locationpackage_countwheels_cache_size)r   len_find_http_files_find_wheels
_cache_dirr
   r   directory_sizeformat_directory_sizetextwrapdedentformatstripr4   r%   )r   r/   r0   rE   num_packagesrB   rC   rF   rD   rH   messages              r    r*   zCacheCommand.get_cache_info]   sB    	53444T227;;<<4,,Wc::;;"oogyAA"&//'6"B"B $ B B$0%&9::'(?@@A
 
 '<=RSS O
 
 V$7(? /-&;*"3    UWW+ 	0 	Gr"   c                     t          |          dk    rt          d          |r	|d         }nd}|                     ||          }|j        dk    r|                     |           d S |                     |           d S )Nr2   r;   r   r>   r   )rI   r   rK   r   format_for_humanformat_for_abspath)r   r/   r0   patternfiless        r    r+   zCacheCommand.list_cache_items   s    t99q==3444 	1gGGG!!'733'))!!%(((((##E*****r"   rY   c                    |st                               d           d S g }|D ]Q}t          j                            |          }t          j        |          }|                    d| d| d           Rt                               d           t                               d                    t          |                               d S )NzNo locally built wheels cached.z - z ()zCache contents:

)
r4   r%   ospathbasenamer
   format_file_sizeappendr6   r7   )r   rY   resultsfilenamewheelsizes         r    rV   zCacheCommand.format_for_human   s     	KK9:::F 	3 	3HG$$X..E.x88DNN111$1112222'(((DIIfWoo../////r"   c                     |r<t                               d                    t          |                               d S d S )Nr\   )r4   r%   r6   r7   )r   rY   s     r    rW   zCacheCommand.format_for_abspath   s>     	2KK		&--0011111	2 	2r"   c                 X   t          |          dk    rt          d          |st          d          |                     ||d                   }d}|d         dk    r||                     |          z  }n|d|d          dz  }|st                              |           d}|D ]M}|t          j        |          j        z  }t          j	        |           t          
                    d	|           Nt                              d
t          |          t          |                     d S )Nr2   r;   zPlease provide a patternr   zNo matching packagesr>   z for pattern ""z
Removed %szFiles removed: %s (%s))rI   r   rK   rJ   r4   warningr]   statst_sizeunlinkverboser%   r   )r   r/   r0   rY   no_matching_msgbytes_removedrc   s          r    r,   zCacheCommand.remove_cache_items   s/   t99q==3444 	;9:::!!'473307c>>T**7333EE :Q::::O 	,NN?+++ 	3 	3HRWX..66MIhNN<2222,c%jj+m:T:TUUUUUr"   c                 R    |rt          d          |                     |dg          S )Nr;   r>   )r   r,   r<   s      r    r-   zCacheCommand.purge_cache   s1     	53444&&w666r"   subdirc                 L    t           j                            |j        |          S )N)r]   r^   r6   r3   )r   r/   rq   s      r    rL   zCacheCommand._cache_dir   s    w||G-v666r"   c                     |                      |d          }|                      |d          }t          j        |d          t          j        |d          z   S )Nr@   r?   r>   rL   r
   
find_files)r   r/   old_http_dirnew_http_dirs       r    rJ   zCacheCommand._find_http_files   sV    w77w	::$\377*:O#;
 ;
 
 	
r"   rX   c                 n    |                      |d          }|d|v rdndz   }t          j        ||          S )NrA   -z*.whlz-*.whlrt   )r   r/   rX   	wheel_dirs       r    rK   zCacheCommand._find_wheels   s@    OOGX66	$ wWWHE$Y888r"   )r   N)__name__
__module____qualname____doc__ignore_require_venvusager!   dictstrr   r   r&   r.   intr9   r)   r*   r+   rV   rW   r,   r-   rL   rJ   rK    r"   r    r   r      sW         E
: 
: 
: 
:
T#xc0CT0I'J"JK 
 
 
 
6 c s    4'V '49 ' ' ' ' '(f (DI ($ ( ( ( (T+ +d3i +D + + + +0d3i 0D 0 0 0 02S	 2d 2 2 2 2V& VS	 Vd V V V V676 7c 7t 7 7 7 77& 7# 7# 7 7 7 7
 
49 
 
 
 
9F 9S 9T#Y 9 9 9 9 9 9r"   r   )r]   rO   optparser   typingr   pip._internal.cli.base_commandr   pip._internal.cli.status_codesr   r   pip._internal.exceptionsr   r	   pip._internal.utilsr
   pip._internal.utils.loggingr   pip._internal.utils.miscr   r{   r4   r   r   r"   r    <module>r      s    				              2 2 2 2 2 2 9 9 9 9 9 9 9 9 ; ; ; ; ; ; ; ; * * * * * * 1 1 1 1 1 1 0 0 0 0 0 0	8		W9 W9 W9 W9 W97 W9 W9 W9 W9 W9r"   