
    .Ph                     "   d Z ddlmZ ddlmZ ddlmZ ddlZddlZddl	Z	ddl
Z
ddlmZ ddZ G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          ZeeeeedZddZdS )ap  Print the metadata for one or more Python package distributions.

Usage:  %prog [options] path+

Each 'path' entry can be one of the following:

o a source distribution:  in this case, 'path' should point to an existing
  archive file (.tar.gz, .tar.bz2, or .zip) as generated by 'setup.py sdist'.

o a binary distribution:  in this case, 'path' should point to an existing
  archive file (.egg)

o a "develop" checkout:  in this case,  'path' should point to a directory
  initialized via 'setup.py develop' (under setuptools).

o an installed package:  in this case, 'path' should be the importable name
  of the package.
    )ConfigParser)OrderedDict)writerN   )get_metadatac                 2   t          j        t                    }|                    ddd d           |                    dddd	d
           |                    dddd           |                    dddddd           |                    dddddd           |                    dddd d!           |                    d"ddd#d$%           |                    d&d'd(d)d*           |                    d+d,d(d-d.           |                    d/ddd0d1%           |                    d2ddd3d4%           |                    d5ddd6d7%           |                    |           \  }} t          |           d8k    r|                    d9           d S || fS ):N)usagez-mz--metadata-versionzOverride metadata version)defaulthelpz-fz--fieldfieldsappendz$Specify an output field (repeatable))destactionr   z-dz--download-url-prefixdownload_url_prefixzDownload URL prefix)r   r   z--simpleoutputstore_constsimplez Output as simple key-value pairs)r   r   constr
   r   z-sz--skipskip
store_trueTz$Skip missing values in simple output)r   r   r
   r   z-Sz	--no-skipstore_falsez*Don't skip missing values in simple outputz--singlesinglezOutput delimited values)r   r   r   r   z--item-delim
item_delimstore;z*Delimiter for fields in single-line outputz--sequence-delimsequence_delim,z!Delimiter for multi-valued fieldsz--csvcsvzOutput as CSVz--iniinizOutput as INIz--jsonjsonzOutput as JSONr   z3Pass one or more files or directories as arguments.)optparseOptionParser__doc__
add_option
parse_argslenerror)argsparseroptionss      S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pkginfo/commandline.py_parse_optionsr,      sc   "111F
d0$6  8 8 8 dIHXA     d300    
 jx$h=    
 dH6,"A    
 dKf]G     jx$4    
 n<!G    
 (/?$c>    
 gH]!*    
 gH]!*    
 hXm"+    
 %%d++MGT
4yy!||JKKKKK}    c                       e Zd ZdZd Zd ZdS )BaseNc                 0    |j         r|j         | _        d S d S N)r   _fields)selfr*   s     r+   __init__zBase.__init__b   s#    > 	*">DLLL	* 	*r-   c                     d S r1    r3   s    r+   finishzBase.finishf   s    r-   )__name__
__module____qualname__r2   r4   r8   r6   r-   r+   r/   r/   `   s7        G* * *    r-   r/   c                   $     e Zd Z fdZd Z xZS )Simplec                 p    t          t          |                               |           |j        | _        d S r1   )superr=   r4   r   _skipr3   r*   	__class__s     r+   r4   zSimple.__init__j   s.    fd$$W---\


r-   c                     | j         pt          |          D ]5}t          ||          }| j        r||dk    rt	          |d|           6d S )Nr6   z: )r2   listgetattrr@   printr3   metafieldvalues       r+   __call__zSimple.__call__n   sh    \/T$ZZ 	1 	1ED%((EJ 1E$5%))%%%/000	1 	1r-   )r9   r:   r;   r4   rK   __classcell__rB   s   @r+   r=   r=   i   sG        " " " " "1 1 1 1 1 1 1r-   r=   c                   (     e Zd ZdZ fdZd Z xZS )
SingleLineNc                     t          t          |                               |           |j        | _        |j        | _        d S r1   )r?   rO   r4   r   _item_delimr   _sequence_delimrA   s     r+   r4   zSingleLine.__init__v   s=    j$((111"-&5r-   c                 x   | j         t          |          | _         g }| j         D ]m}t          ||          }t          |t          t          f          r| j                            |          }nt          |          }|                    |           nt          | j
                            |                     d S r1   )r2   rD   rE   
isinstancetuplerR   joinstrr   rF   rQ   )r3   rH   valuesrI   rJ   s        r+   rK   zSingleLine.__call__{   s    <::DL\ 	! 	!ED%((E%%// #,11%88E

MM%    d##F++,,,,,r-   )r9   r:   r;   r2   r4   rK   rL   rM   s   @r+   rO   rO   t   sL        G6 6 6 6 6
- - - - - - -r-   rO   c                   (     e Zd ZdZ fdZd Z xZS )CSVNc                 p    t          t          |                               |           |j        | _        d S r1   )r?   rZ   r4   r   rR   rA   s     r+   r4   zCSV.__init__   s2    c4!!'***&5r-   c                    | j         t          |          | _         | j         }| j        8t          t          j                  | _        | j                            |           g }|D ]m}t          ||          }t          |t          t          f          r| j
                            |          }nt          |          }|                    |           n| j                            |           d S r1   )r2   rD   _writerr   sysstdoutwriterowrE   rT   rU   rR   rV   rW   r   )r3   rH   r   rX   rI   rJ   s         r+   rK   zCSV.__call__   s    <::DL<!#*--DLL!!&))) 	! 	!ED%((E%%// #,11%88E

MM%    f%%%%%r-   )r9   r:   r;   r]   r4   rK   rL   rM   s   @r+   rZ   rZ      sL        G6 6 6 6 6& & & & & & &r-   rZ   c                   .     e Zd ZdZ fdZd Zd Z xZS )ININc                 ~    t          t          |                               |           t                      | _        d S r1   )r?   rb   r4   r   _parserrA   s     r+   r4   zINI.__init__   s0    c4!!'***#~~r-   c                    |j         }|j        }|d|}| j                            |          rt	          d|z            | j                            |           | j        pt          |          D ]_}t          ||          }t          |t          t          f          rd                    |          }| j                            |||           `d S )N-zDuplicate distribution: %sz
	)nameversionrd   has_section
ValueErroradd_sectionr2   rD   rE   rT   rU   rV   set)r3   rH   rg   rh   sectionrI   rJ   s          r+   rK   zINI.__call__   s    y,!TT77+<##G,, 	E9GCDDD  )))\/T$ZZ 	4 	4ED%((E%%// +E**LWeU3333		4 	4r-   c                 N    | j                             t          j                   d S r1   )rd   writer^   r_   r7   s    r+   r8   z
INI.finish   s     3:&&&&&r-   r9   r:   r;   r2   r4   rK   r8   rL   rM   s   @r+   rb   rb      s[        G& & & & &4 4 4' ' ' ' ' ' 'r-   rb   c                   .     e Zd ZdZ fdZd Zd Z xZS )JSONNc                 ~    t          t          |                               |           t                      | _        d S r1   )r?   rr   r4   r   _mappingrA   s     r+   r4   zJSON.__init__   s0    dD""7+++#r-   c                 ,   | j         t          |          | _         | j         D ]p}t          ||          }|r+t          |t          t          f          st          |          }|| j        v rt          dt                      z            || j        |<   qd S )NzDuplicate field: %(field)r)	r2   rD   rE   rT   rU   rW   rt   rj   localsrG   s       r+   rK   zJSON.__call__   s    <::DL\ 	) 	)ED%((E #Zt}== #E

%% !=!HIII#(DM%  	) 	)r-   c                 R    t          j        | j        t          j        d           d S )N   )indent)r    dumprt   r^   r_   r7   s    r+   r8   zJSON.finish   s#    	$-A666666r-   rp   rM   s   @r+   rr   rr      s[        G& & & & &	) 	) 	)7 7 7 7 7 7 7r-   rr   )r   r   r   r   r    c                 j   t          |           \  }}t          |dd          }t          |         |          }|D ]c}t          ||j                  }||j        r7|j        0t          j        	                    |          }|j        d||_         ||           d|
                                 dS )z!Entry point for pkginfo tool
    r   r   N/)r,   rE   _FORMATTERSr   metadata_versionr   download_urlospathbasenamer8   )r(   r*   pathsformat	formatterr   rH   filenames           r+   mainr      s     $D))NGUWh11FF#G,,I  D'":;;<& 	9 (7++D11/6/J/J/J/7x%9! 		$r-   r1   )r#   configparserr   collectionsr   r   r   r    r!   r   r^   utilsr   r,   objectr/   r=   rO   rZ   rb   rr   r}   r   r6   r-   r+   <module>r      s   $ & % % % % % # # # # # #         				 



      @ @ @ @D    6   	1 	1 	1 	1 	1T 	1 	1 	1- - - - - - - -(& & & & &$ & & &.' ' ' ' '$ ' ' ',7 7 7 7 74 7 7 7*       r-   