
    9f5                     (   S SK r S SKrS SKJrJrJr  S SKJr  S SKJ	r	J
r
JrJrJr  S SKJr  S SKJrJr  \R&                  " \5      rSr " S S	\ R.                  5      rS
\
\\	4   S\\
\\	4   \4   4S jr\" SS9 " S S5      5       r " S S5      rg)    N)asdict	dataclassfield)Path)AnyDictListOptionalUnion)hazard)	PipxError	pipx_wrapzpipx_metadata.jsonc                   4   ^  \ rS rSrS\S\4U 4S jjrSrU =r$ )JsonEncoderHandlesPath   objreturnc                 h   > [        U[        5      (       a  S[        U5      S.$ [        TU ]  U5      $ )Nr   )__type____Path__)
isinstancer   strsuperdefault)selfr   	__class__s     9/usr/lib/python3/dist-packages/pipx/pipx_metadata_file.pyr   JsonEncoderHandlesPath.default   s.    c4   &CH==ws##     )__name__
__module____qualname____firstlineno__r   r   __static_attributes____classcell__)r   s   @r   r   r      s    $3 $3 $ $r   r   	json_dictr   c                 X    U R                  S5      S:X  a  SU ;   a  [        U S   5      $ U $ )Nr   r   r   )getr   )r'   s    r   _json_decoder_object_hookr*      s0    }}Z F*zY/FIj)**r   T)frozenc                   D   \ rS rSr% \\   \S'   \\   \S'   \\   \S'   \\S'   \\S'   \\   \S'   \\	   \S'   \\   \S	'   \
\\\	   4   \S
'   \\S'   \" \S9r\\   \S'   \" \S9r\\	   \S'   \" \S9r\\   \S'   \" \S9r\
\\\	   4   \S'   Sr\\S'   Sr\\S'   Srg)PackageInfo   packagepackage_or_urlpip_argsinclude_dependenciesinclude_appsapps	app_pathsapps_of_dependenciesapp_paths_of_dependenciespackage_version)default_factory	man_pages	man_pathsman_pages_of_dependenciesman_paths_of_dependencies suffixFpinnedr    N)r!   r"   r#   r$   r
   r   __annotations__r	   boolr   r   r   listr:   r;   r<   dictr=   r?   r@   r%   r    r   r   r-   r-      s    c]SM!3i
s)ODzs)##CdO44 6ItCy6!$7ItDz7+0+FtCyF7<T7RtCdO4RFCFDr   r-   c                       \ rS rSr% Sr\\S'   SS\S\4S jjr	S\
\\4   4S jrS	\
\\4   S\
\\4   4S
 jrS\
\\4   SS4S jrSS jrSS jrSS\SS4S jjrSrg)PipxMetadata2   z0.5__METADATA_VERSION__venv_dirreadc                     Xl         [        S S / SS/ / / 0 / / / 0 SS9U l        S U l        S U l        / U l        0 U l        U(       a  U R                  5         g g )NFTr>   )r/   r0   r1   r2   r3   r4   r5   r6   r7   r:   r;   r<   r=   r8   )rI   r-   main_packagepython_versionsource_interpreter	venv_argsinjected_packagesrJ   )r   rI   rJ   s      r   __init__PipxMetadata.__init__;   sr      (!&!#&(&(&(
  .226$&9;IIK r   r   c                    [        U R                  5      U R                  U R                  U R                  U R
                  R                  5        VVs0 s H  u  pU[        U5      _M     snnU R                  S.$ s  snnf )N)rL   rM   rN   rO   rP   pipx_metadata_version)r   rL   rM   rN   rO   rP   itemsrH   )r   namedatas      r   to_dictPipxMetadata.to_dictZ   sp    "4#4#45"11"&"9"9IMI_I_IeIeIg!hIg$$t"4Ig!h%)%>%>
 	

 "is   A<metadata_dictc                 |   US   U R                   ;   a   U$ US   S:X  a  SUS'   U$ US   S;   a  S US'   U$ US   S:X  aU  US   nUS	   U R                  R                  :w  a,  U R                  R                  R                  US	   S
5      US'   S US'   U$ [	        SU R                  R                   SUS    S35      e)NrT   z0.4Fr@   )z0.2z0.3rN   z0.1rL   r/   r>   r?   z
                z+: Unknown metadata version
                zY. Perhaps it was
                installed with a later version of pipx.
                )rH   rI   rV   replacer   )r   rZ   main_package_datas      r   _convert_legacy_metadata%PipxMetadata._convert_legacy_metadatad   s   01d6O6OP& % 23u<&+M(#" ! 23~E26M./  23u< -n = +t}}/A/AA.2mm.@.@.H.HIZ[dIegi.j!(+26M./  ##$ %678 9 r   
input_dictNc           
      l   U R                  U5      n[        S0 US   D6U l        US   U l        UR	                  S5      (       a  [        US   5      OS U l        US   U l        US   R                  5        VVs0 s H%  u  p#U UR	                  SS5       3[        S0 UD6_M'     snnU l	        g s  snnf )	NrL   rM   rN   rO   rP   r?   r>   r    )
r^   r-   rL   rM   r)   r   rN   rO   rU   rP   )r   r`   rV   rW   s       r   	from_dictPipxMetadata.from_dict{   s    22:>
'E*^*DE()9:6@nnEY6Z6ZD012`d 	 $K0 !++> ? E E G"
 G fTXXh+,-{/BT/BB G"
 "
s   :,B0c                     U R                   R                  b2  U R                   R                  b  U R                   R                  (       d1  [        R                  SU R                  5        35        [        S5      eg )NzPipxMetadata corrupt:
z6Internal Error: PipxMetadata is corrupt, cannot write.)rL   r/   r0   r3   loggerdebugrX   r   )r   s    r   _validate_before_write#PipxMetadata._validate_before_write   sa    %%-  //7$$11LL24<<>2BCDTUU 2r   c                    U R                  5          [        U R                  [        -  SSS9 n[        R
                  " U R                  5       USS[        S9  S S S 5        g ! , (       d  f       g = f! [         aS    [        R                  [        S[         S[         S	U R                   S
U R                  R                   S3	SS95         g f = f)Nwzutf-8)encoding   T)indent	sort_keysclsz
                    z  Unable to write z to
                    zG.  This may cause future pipx operations
                    involving zH to fail or behave
                    incorrectly.
                        subsequent_indent)rg   openrI   PIPX_INFO_FILENAMEjsondumprX   r   OSErrorre   warningr   r   rV   )r   pipx_metadata_fhs     r   writePipxMetadata.write   s    ##%	dmm&88#PTd		LLN$". QPP  	NNH./A.B C]]O $#}}112 3 '.
	s/   A3 +A"A3 "
A0,A3 0A3 3ACCverbosec                     [        U R                  [        -  S5       nU R                  [        R
                  " U[        S95        S S S 5        g ! , (       d  f       g = f! [         aZ    U(       aP  [        R                  [        S[         S[         SU R                   SU R                  R                   S3	SS	95         g f = f)
Nrb)object_hookz
                        z  Unable to read z in
                        zS.  This may cause this or future pipx
                        operations involving zP to fail or
                        behave incorrectly.
                        rp   rq   )rs   rI   rt   rb   ru   loadr*   rw   re   rx   r   r   rV   )r   r|   ry   s      r   rJ   PipxMetadata.read   s    	dmm&88$?CStyy)9G`ab @?? 	 12D1E F (..2mm.@.@-A B +2
 	s/   A" )AA" 
AA" A" "A!CC)rP   rL   rM   rN   rO   rI   )T)r   N)F)r!   r"   r#   r$   rH   r   rA   r   rB   rQ   r   r   rX   r^   rb   rg   rz   rJ   r%   r    r   r   rF   rF   2   s     !&#% T >
c3h 
d38n cSVh .
DcN 
t 
V0D T  r   rF   )ru   loggingdataclassesr   r   r   pathlibr   typingr   r   r	   r
   r   pipx.emojisr   	pipx.utilr   r   	getLoggerr!   re   rt   JSONEncoderr   r   r*   r-   rF   r    r   r   <module>r      s      0 0  3 3  *			8	$ * $T-- $c3h E$sCx.RVBV<W  $  &H Hr   