
    dh&                          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y)    N)Values)Callable)Command)ERRORSUCCESS)CommandErrorPipError)
filesystem)	getLogger)format_sizec                   V   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y)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                   j                  dddddd       | j                  j                  d| j                          y )	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    ^/var/www/html/vivango/api/ia/venv/lib/python3.12/site-packages/pip/_internal/commands/cache.pyadd_optionszCacheCommand.add_options(   sE      (M 	! 	
 	''4==9    c                 v    | 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   s9    %%''))--%%
 	
r"   optionsargsc                    | j                         }|j                  st        j                  d       t        S |r|d   |vr4t        j                  ddj                  t        |                   t        S |d   }	  ||   ||dd         t        S # t        $ r2}t        j                  |j                  d          t        cY d }~S d }~ww xY w)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L tAwk1LL1		&-. La	Kab2
 	  	LL#L	s   ;B 	C'C CCc                 \    |rt        d      t        j                  |j                         y )NToo many arguments)r   r4   r%   r3   r   r/   r0   s      r    r)   zCacheCommand.get_cache_dirW   s#    344G%%&r"   c           	      6   |rt        d      t        | j                  |            }t        | j                  |d            }| j	                  |d      }| j	                  |d      }| j	                  |d      }t        j                  t        j                  |      t        j                  |      z         }t        j                  |      }	t        j                  d      j                  |||||||	      j                         }
t        j                  |
       y )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]   s   344T227;<4,,Wc:;"oogyA"&//'6"B $ B$00%%&9:''(?@A
 '<<=RS OO
 V$7(? /-&;*"3   UW+ 	0 	Gr"   c                     t        |      dkD  rt        d      |r|d   }nd}| j                  ||      }|j                  dk(  r| j	                  |       y | j                  |       y )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   sf    t9q=3441gGG!!'73')!!%(##E*r"   rY   c                 b   |st         j                  d       y g }|D ]N  }t        j                  j	                  |      }t        j                  |      }|j                  d| d| d       P t         j                  d       t         j                  dj                  t        |                   y )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: 	3HGG$$X.E..x8DNNSr$q12	3 	'(DIIfWo./r"   c                 d    |r.t         j                  dj                  t        |                   y y )Nr\   )r4   r%   r6   r7   )r   rY   s     r    rW   zCacheCommand.format_for_abspath   s#    KK		&-01 r"   c                    t        |      dkD  rt        d      |st        d      | j                  ||d         }d}|d   dk(  r|| j                  |      z  }n|d|d    dz  }|st        j                  |       d}|D ]O  }|t        j                  |      j                  z  }t        j                  |       t        j                  d	|       Q t        j                  d
t        |      t        |             y )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    t9q=3449::!!'47307c>T**733E Qy::ONN?+ 	3HRWWX.666MIIhNN<2	3 	,c%j+m:TUr"   c                 B    |rt        d      | j                  |dg      S )Nr;   r>   )r   r,   r<   s      r    r-   zCacheCommand.purge_cache   s&    344&&w66r"   subdirc                 V    t         j                  j                  |j                  |      S )N)r]   r^   r6   r3   )r   r/   rq   s      r    rL   zCacheCommand._cache_dir   s    ww||G--v66r"   c                     | j                  |d      }| j                  |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   sN    w7w	:$$\37*:O:O#;
 
 	
r"   rX   c                 h    | j                  |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   s9    OOGX6	$ wWHE$$Y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      sz    E
:
T#xc0CT0I'J"JK 
6 c s 4'V '49 ' '(f (DI ($ (T+ +d3i +D +0d3i 0D 02S	 2d 2V& VS	 Vd V676 7c 7t 77& 7# 7# 7
 
49 
9F 9S 9T#Y 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 9 ; * 1 0	8	W97 W9r"   