3
ûâde‡  ã               @   s|   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d	d
ddhZG dd„ deƒZdS )é    N)ÚValues)ÚList)Ú
cmdoptions)ÚCommand)ÚSUCCESS)Úfreeze)Ústdlib_pkgsÚpipÚ
setuptoolsÚ
distributeÚwheelc               @   s<   e Zd ZdZdZdZddœdd„Zeee	 e
dœd	d
„ZdS )ÚFreezeCommandzx
    Output installed packages in requirements format.

    packages are listed in a case-insensitive sorted order.
    z
      %prog [options]úext://sys.stderrN)Úreturnc          	   C   s°   | j jddddg ddd� | j jdd	d
dddd� | j jdddddd� | j jtjƒ ƒ | j jddddjdjtƒƒd� | j jddddd� | j jtjƒ ƒ | jj	d| j ƒ d S )Nz-rz--requirementÚrequirementsÚappendÚfilez}Use the order in the given requirements file and its comments when generating output. This option can be used multiple times.)ÚdestÚactionÚdefaultÚmetavarÚhelpz-lz--localÚlocalÚ
store_trueFzUIf in a virtualenv that has global access, do not output globally-installed packages.)r   r   r   r   z--userÚuserz,Only output packages installed in user-site.z--allÚ
freeze_allz,Do not skip these packages in the output: {}z, )r   r   r   z--exclude-editableÚexclude_editablez%Exclude editable package from output.r   )
Úcmd_optsÚ
add_optionr   Z	list_pathÚformatÚjoinÚDEV_PKGSZlist_excludeÚparserÚinsert_option_group)Úself© r%   ú</tmp/pip-build-red6nood/pip/pip/_internal/commands/freeze.pyÚadd_options   sF    zFreezeCommand.add_options)ÚoptionsÚargsr   c          	   C   st   t tƒ}|js|jtƒ |jr*|j|jƒ tj|ƒ x:t|j	|j
|j|j|j||jd�D ]}tjj|d ƒ qXW tS )N)ÚrequirementÚ
local_onlyÚ	user_onlyÚpathsÚisolatedÚskipr   Ú
)Úsetr   r   Úupdater!   Zexcludesr   Zcheck_list_path_optionr   r   r   r   ÚpathÚisolated_moder   ÚsysÚstdoutÚwriter   )r$   r(   r)   r/   Úliner%   r%   r&   ÚrunM   s     

zFreezeCommand.run)r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚusageÚlog_streamsr'   r   r   ÚstrÚintr9   r%   r%   r%   r&   r      s
   4r   )r5   Úoptparser   Útypingr   Zpip._internal.clir   Zpip._internal.cli.base_commandr   Zpip._internal.cli.status_codesr   Zpip._internal.operations.freezer   Zpip._internal.utils.compatr   r!   r   r%   r%   r%   r&   Ú<module>   s   