+
    ,jU                        ^ RI Ht ^ RIt^ RIHt ^ RIHtHtHtH	t	 ^ RI
HtHtHtHtHt ]'       d   ^ RIHt  ! R R4      t ! R	 R
4      t ! R R4      t ! R R4      t ! R R4      tR# )    )annotationsN)Path)TYPE_CHECKINGListOptionalLiteral)PyPathsJsonPyPathsEntry
PyPathTypePyPrefixPlaceholder
PyFileMode)Clientc                  x   ] tR t^t$ RtR]R&   ]R R l4       t]R R l4       t]R R	 l4       t	]R
 R l4       t
]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]P$                  R R l4       t]R R l4       t]P$                  R R l4       t]R R l4       tR R ltR tR!# )"	PathsJsonz
A representation of the `paths.json` file found in package archives.
The `paths.json` file contains information about every file included with the package.
r	   _innerc                    V ^8  d   QhRRRR/#    pathzos.PathLike[str]returnr    )formats   ":lib/python3.14/site-packages/rattler/package/paths_json.py__annotate__PathsJson.__annotate__   s     	U 	U#3 	U	 	U    c                T    \         P                  \        P                  ! V 4      4      # )z
Parses the package file from archive.
Note: If you want to extract multiple `info/*` files then this will be slightly
      slower than manually iterating over the archive entries with
      custom logic as this skips over the rest of the archive


)r   _from_py_paths_jsonr	   from_package_archiver   s   &r   r   PathsJson.from_package_archive   s      ,,[-M-Md-STTr   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   &   s     P P( PY Pr   c                f    \         P                  \        P                  ! \	        V 4      4      4      # )a  
Parses the object from a file specified by a `path`, using a format
appropriate for the file type.

For example, if the file is in JSON format, this function reads the data
from the file at the specified path, parse the JSON string and return the
resulting object. If the file is not in a parsable format or if the file
could not read, this function returns an error.

 Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> paths_json
PathsJson()
>>>
```
)r   r   r	   	from_pathr   r    s   &r   r$   PathsJson.from_path%   s$    , ,,[-B-B4:-NOOr   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   >   s     ] ]%5 ]) ]r   c                f    \         P                  \        P                  ! \	        V 4      4      4      # )a  
Parses the object by looking up the appropriate file from the root of the
specified Conda archive directory, using a format appropriate for the file
type.

For example, if the file is in JSON format, this function reads the
appropriate file from the archive, parse the JSON string and return the
resulting object. If the file is not in a parsable format or if the file
could not be read, this function returns an error.
)r   r   r	   from_package_directoryr   r    s   &r   r(    PathsJson.from_package_directory=   s'     ,,[-O-OPTUYPZ-[\\r   c                    V ^8  d   QhRRRR/# )r   stringstrr   r   r   )r   s   "r   r   r   L   s     	K 	K 	K 	Kr   c                T    \         P                  \        P                  ! V 4      4      # )a  
Parses the object from a string, using a format appropriate for the file
type.

For example, if the file is in JSON format, this function parses the JSON
string and returns the resulting object. If the file is not in a parsable
format, this function returns an error.
)r   r   r	   from_str)r+   s   &r   r.   PathsJson.from_strK   s      ,,[-A-A&-IJJr   c               $    V ^8  d   QhRRRRRR/# )r   clientr   urlr,   r   zOptional[PathsJson]r   )r   s   "r   r   r   X   s"     6 66 6 6@S 6r   c                   "   \         P                  ! VP                  V4      G Rj  xL
 pVf   R# V P                  V4      #  L5i)z>
Fetches `info/paths.json` from a remote package archive URL.
N)r	   from_remote_url_clientr   )clsr1   r2   py_paths_jsons   &&& r   r4   PathsJson.from_remote_urlW   s@     
 *99&..#NN &&}55 Os   %AAAc                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r   b   s     ( ($ (r   c                 *    \         P                  4       # )z
Returns the path to the file within the Conda archive.

The path is relative to the root of the archive and includes any necessary
directories.
)r   package_pathr   r   r   r<   PathsJson.package_patha   s     %%''r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   l   s     
b 
b0@ 
bY 
br   c                T    \         P                  \        P                  ! V 4      4      # )aq  
Constructs a new instance by reading older (deprecated) files from a package directory.

In older package archives the `paths.json` file does not exist. These packages contain the
information normally present in the `paths.json` file spread over different files in the
archive.

This function reads the different files and tries to reconstruct a `paths.json` from it.
)r   r   r	   !from_deprecated_package_directoryr    s   &r   r@   +PathsJson.from_deprecated_package_directoryk   s!     ,,[-Z-Z[_-`aar   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   y   s      p pp	pr   c                T    \         P                  \        P                  ! V 4      4      # )z
Reads the file from a package archive directory. If the `paths.json` file could not be found
use the `from_deprecated_package_directory` method as a fallback.
)r   r   r	   /from_package_directory_with_deprecated_fallbackr    s   &r   rD   9PathsJson.from_package_directory_with_deprecated_fallbackx   s!     ,,[-h-him-noor   c                   V ^8  d   QhRR/# )r   r   List[PathsEntry]r   )r   s   "r   r   r      s     U U' Ur   c                ~    V P                   P                   Uu. uF  p\        P                  V4      NK  	  up# u upi )a  
All entries included in the package.

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> paths_json.paths
[PathsEntry(relative_path="Lib/site-packages/conda-22.9.0-py3.8.egg-info/PKG-INFO", no_link=False, path_type=PathType(hardlink=True), prefix_placeholder="None", sha256="1323efbd9b3abb527b06435392b39de11710eb3a814e87a8174230c8f5a0826a", size_in_bytes=1229), ...]
>>> paths_json.paths = [PathsEntry(relative_path="new/path", no_link=True, path_type=PathType("softlink"), prefix_placeholder=None, sha256=None, size_in_bytes=None)]
>>> len(paths_json.paths)
1
>>>
```
)r   paths
PathsEntry_from_py_paths_entryselfr   s   & r   rI   PathsJson.paths   s5    & CG++BSBSTBS$
//5BSTTTs   :c                    V ^8  d   QhRRRR/# )r   rI   rG   r   Noner   )r   s   "r   r   r      s     > >+ > >r   c                	d    V Uu. uF  q"P                   NK  	  upV P                   n        R # u upi N)r   rI   )rM   rI   entrys   && r   rI   rN      s"    7<=ue\\u==s   -c                   V ^8  d   QhRR/# )r   r   intr   )r   s   "r   r   r      s     ) )s )r   c                .    V P                   P                  # )a  
The version of the file.

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> paths_json.paths_version
1
>>> paths_json.paths_version = 2
>>> paths_json.paths_version
2
>>>
```
r   paths_versionrM   s   &r   rX   PathsJson.paths_version   s    & {{(((r   c                    V ^8  d   QhRRRR/# )r   versionrU   r   rP   r   )r   s   "r   r   r      s     , ,S ,T ,r   c                	&    WP                   n        R # rR   rW   )rM   r\   s   &&r   rX   rZ      s    $+!r   c                    V ^8  d   QhRRRR/# )r   r7   r	   r   r   r   )r   s   "r   r   r      s       	 r   c                	4    V P                  V 4      pWn        V# rR   __new__r   )r6   r7   
paths_jsons   && r   r   PathsJson._from_py_paths_json   s    [[%
)r   c                   V ^8  d   QhRR/# r   r   r,   r   )r   s   "r   r   r      s      # r   c                    R# )z,
Returns a representation of the PathsJson.
zPathsJson()r   rY   s   &r   __repr__PathsJson.__repr__   s     r   r   N)__name__
__module____qualname____firstlineno____doc____annotations__staticmethodr   r$   r(   r.   classmethodr4   r<   r@   rD   propertyrI   setterrX   r   rg   __static_attributes__r   r   r   r   r      s3   
 	U 	U P P. ] ] 	K 	K 6 6 ( ( 
b 
b p p U U( \\> > ) )( , ,   r   r   c                     ] tR t^t$ RtR]R&   R R lt]R R l4       t]P                  R R	 l4       t]R
 R l4       t
]
P                  R R l4       t
]R R l4       t]P                  R R l4       t]R R l4       t]P                  R R l4       t]R R l4       t]P                  R R l4       t]R R l4       t]P                  R R l4       t]R R l4       tR  R! ltR"tR## )$rJ   z*
A single entry in the `paths.json` file.
r
   r   c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r   relative_pathr,   no_linkbool	path_typePathTypeprefix_placeholderOptional[PrefixPlaceholder]sha256Optional[bytes]size_in_bytesOptional[int]r   rP   r   )r   s   "r   r   PathsEntry.__annotate__   sb     Bx BxBx Bx 	Bx
 8Bx  Bx %Bx 
Bxr   c                `    Ve   VP                   p\        WVP                   WEV4      V n         R# )a  
Create a new paths entry.

Parameters
----------
relative_path : str
    The relative path from the root of the package
no_link : bool
    Whether or not this file should be linked when installing the package
path_type : PathType
    How to include the file when installing the package (hardlink, softlink, or directory)
prefix_placeholder : Optional[PrefixPlaceholder]
    The placeholder prefix used in the file, if any
sha256 : Optional[bytes]
    The SHA256 hash of the file contents (only used in paths.json version 1)
size_in_bytes : Optional[int]
    The size of the file in bytes (only used in paths.json version 1)

Examples
--------
```python
>>> # Create a basic file entry
>>> entry = PathsEntry(
...     relative_path="lib/file.txt",
...     no_link=False,
...     path_type=PathType("hardlink"),
...     prefix_placeholder=None,
...     sha256=None,
...     size_in_bytes=None
... )
>>> str(entry.relative_path)
'lib/file.txt'
>>> entry.no_link
False
>>> entry.path_type.hardlink
True
>>>
>>> # Create an entry with prefix placeholder
>>> placeholder = PrefixPlaceholder(FileMode("text"), "/old/prefix")
>>> sha256 = bytes.fromhex("c609c2f1a8594abf959388e559d76241e51b0216faa7b37f529255eb1fc2c5eb")
>>> entry = PathsEntry(
...     relative_path="bin/script",
...     no_link=False,
...     path_type=PathType("hardlink"),
...     prefix_placeholder=placeholder,
...     sha256=sha256,
...     size_in_bytes=1234
... )
>>> entry.prefix_placeholder.placeholder
'/old/prefix'
>>> entry.size_in_bytes
1234
>>>
```
N)r   r
   )rM   rv   rw   ry   r{   r}   r   s   &&&&&&&r   __init__PathsEntry.__init__   s1    @ )!3!:!:"=9;K;KM_ivwr   c                   V ^8  d   QhRR/# r:   r   )r   s   "r   r   r     s     ) )t )r   c                .    V P                   P                  # )a  
The relative path from the root of the package.

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[0]
>>> str(entry.relative_path)
'Lib/site-packages/conda-22.9.0-py3.8.egg-info/PKG-INFO'
>>> entry.relative_path = "new/path"
>>> str(entry.relative_path)
'new/path'
>>>
```
r   rv   rY   s   &r   rv   PathsEntry.relative_path  s    ( {{(((r   c                    V ^8  d   QhRRRR/# )r   r   r,   r   rP   r   )r   s   "r   r   r   $  s     ) )# )$ )r   c                	&    WP                   n        R # rR   r   rL   s   &&r   rv   r   #      $(!r   c                   V ^8  d   QhRR/# r   r   rx   r   )r   s   "r   r   r   (  s     # # #r   c                .    V P                   P                  # )aF  
Whether or not this file should be linked or not when installing the package.

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[0]
>>> entry.no_link
False
>>> entry.no_link = True
>>> entry.no_link
True
>>>
```
r   rw   rY   s   &r   rw   PathsEntry.no_link'  s    ( {{"""r   c                    V ^8  d   QhRRRR/# )r   rw   rx   r   rP   r   )r   s   "r   r   r   >  s     & &t & &r   c                	&    WP                   n        R # rR   r   )rM   rw   s   &&r   rw   r   =  s    %r   c                   V ^8  d   QhRR/# )r   r   rz   r   )r   s   "r   r   r   B  s     B B8 Br   c                T    \         P                  V P                  P                  4      # )a  
Determines how to include the file when installing the package.

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[0]
>>> entry.path_type
PathType(hardlink=True)
>>> new_type = PathType("softlink")
>>> entry.path_type = new_type
>>> entry.path_type
PathType(softlink=True)
>>>
```
)rz   _from_py_path_typer   ry   rY   s   &r   ry   PathsEntry.path_typeA  s    * **4;;+@+@AAr   c                    V ^8  d   QhRRRR/# )r   ry   z
'PathType'r   rP   r   )r   s   "r   r   r   Y  s     1 1: 1$ 1r   c                	<    VP                   V P                   n        R # rR   )r   ry   rM   ry   s   &&r   ry   r   X  s     ) 0 0r   c                   V ^8  d   QhRR/# )r   r   r|   r   )r   s   "r   r   r   ]  s      $? r   c                l    V P                   P                  ;p'       d   \        P                  V4      # R# )a  
Optionally the placeholder prefix used in the file. If this value is `None`
the prefix is not present in the file.

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[0]
>>> entry.prefix_placeholder
>>> new_placeholder = PrefixPlaceholder(FileMode("text"), "placeholder")
>>> entry.prefix_placeholder = new_placeholder
>>> entry.prefix_placeholder
PrefixPlaceholder(file_mode=FileMode("text"), placeholder="placeholder")
>>>
```
N)r   r{   PrefixPlaceholder_from_py_prefix_placeholderrM   placeholders   & r   r{   PathsEntry.prefix_placeholder\  s-    * ++888;8$@@MMr   c                    V ^8  d   QhRRRR/# )r   r   r|   r   rP   r   )r   s   "r   r   r   w  s     @ @.I @d @r   c                	j    Vf   R V P                   n        R # VP                   V P                   n        R # rR   )r   r{   r   s   &&r   r{   r   v  s&    -1DKK*-8-?-?DKK*r   c                   V ^8  d   QhRR/# )r   r   r~   r   )r   s   "r   r   r   ~  s     " " "r   c                .    V P                   P                  # )aN  
A hex representation of the SHA256 hash of the contents of the file.
This entry is only present in version 1 of the paths.json file.

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[0]
>>> entry.sha256.hex()
'1323efbd9b3abb527b06435392b39de11710eb3a814e87a8174230c8f5a0826a'
>>> entry.sha256 = bytes.fromhex('058016a01bb3845320c81755882a367e03a449c1898a3de4f3ea54112fb3eba4')
>>> entry.sha256.hex()
'058016a01bb3845320c81755882a367e03a449c1898a3de4f3ea54112fb3eba4'
>>>
```
r   r}   rY   s   &r   r}   PathsEntry.sha256}  s    * {{!!!r   c                    V ^8  d   QhRRRR/# )r   shar~   r   rP   r   )r   s   "r   r   r     s     ! !/ !d !r   c                	&    WP                   n        R # rR   r   )rM   r   s   &&r   r}   r     s     r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r     s      } r   c                F    V P                   P                  ;p'       d   V# R# )ad  
The size of the file in bytes.
This entry is only present in version 1 of the paths.json file.

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[0]
>>> entry.size_in_bytes
1229
>>> entry.size_in_bytes = 42
>>> entry.size_in_bytes
42
>>>
```
Nr   r   rM   sizes   & r   r   PathsEntry.size_in_bytes  s!    * ;;,,,4,Kr   c                    V ^8  d   QhRRRR/# )r   r   r   r   rP   r   )r   s   "r   r   r     s     ) )- )D )r   c                	&    WP                   n        R # rR   r   r   s   &&r   r   r     r   r   c                    V ^8  d   QhRRRR/# )r   py_paths_entryr
   r   rJ   r   )r   s   "r   r   r     s      , : r   c                	4    V P                  V 4      pWn        V# rR   r`   )r6   r   paths_entrys   && r   rK   PathsEntry._from_py_paths_entry  s    kk#&+r   c                   V ^8  d   QhRR/# re   r   )r   s   "r   r   r     s     b b# br   c                    V P                   '       d   V P                   P                  4       MRpRV P                   RV P                   RV P                   RV P
                   RV RV P                   R2# )	z-
Returns a representation of the PathsEntry.
NzPathsEntry(relative_path="z", no_link=z, path_type=z, prefix_placeholder="z", sha256="z", size_in_bytes=))r}   hexrv   rw   ry   r{   r   )rM   
sha256_strs   & r   rg   PathsEntry.__repr__  s     +/+++T[[__&4
+D,>,>+?{4<<.Xdeiesesdt  uK  LP  Lc  Lc  Kd  do  pz  o{  {L  MQ  M_  M_  L`  `a  b  	br   r   N)ri   rj   rk   rl   rm   rn   r   rq   rv   rr   rw   ry   r{   r}   r   rp   rK   rg   rs   r   r   r   rJ   rJ      sK    BxH ) )* ) ) # #* ^^& & B B, 1 1  2 @ @ " ", ]]! !  2 ) )  b br   rJ   c                      ] tR tRt$ RtR]R&   R R lt]R R l4       t]R	 R
 l4       t	]R R l4       t
]R R l4       tR R ltRtR# )rz   i  z!
The path type of the path entry
r   r   c                    V ^8  d   QhRRRR/# )r   ry   z,Literal['hardlink', 'softlink', 'directory']r   rP   r   )r   s   "r   r   PathType.__annotate__  s     , ,"N ,SW ,r   c                	&    \        V4      V n        R # rR   )r   r   r   s   &&r   r   PathType.__init__       +r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r          $ $$ $r   c                .    V P                   P                  # )a  
The path should be hard linked (the default).

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[0]
>>> path_type = entry.path_type
>>> path_type.hardlink
True
>>>
```
)r   hardlinkrY   s   &r   r   PathType.hardlink      $ {{###r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r     r   r   c                .    V P                   P                  # )a  
The path should be soft linked.

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[0]
>>> path_type = entry.path_type
>>> path_type.softlink
False
>>>
```
)r   softlinkrY   s   &r   r   PathType.softlink  r   r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r     s     % %4 %r   c                .    V P                   P                  # )a   
This should explicitly create an empty directory.

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[0]
>>> path_type = entry.path_type
>>> path_type.directory
False
>>>
```
)r   	directoryrY   s   &r   r   PathType.directory  s    $ {{$$$r   c                    V ^8  d   QhRRRR/# )r   py_paths_typer   r   rz   r   )r   s   "r   r   r     s      z h r   c                	4    V P                  V 4      pWn        V# rR   r`   )r6   r   ry   s   && r   r   PathType._from_py_path_type  s    KK$	(r   c                   V ^8  d   QhRR/# re   r   )r   s   "r   r   r     s     	. 	.# 	.r   c                ~    V P                   P                  '       d   R# V P                   P                  '       d   R# R# )z+
Returns a representation of the PathType.
zPathType(hardlink=True)zPathType(softlink=True)zPathType(directory=True))r   r   r   rY   s   &r   rg   PathType.__repr__  s-     ;;,[[!!!,-r   r   N)ri   rj   rk   rl   rm   rn   r   rq   r   r   r   rp   r   rg   rs   r   r   r   rz   rz     sn     , $ $& $ $& % %&  	. 	.r   rz   c                      ] tR tRt$ RtR]R&   R R lt]R R l4       t]R	 R
 l4       t	]
R R l4       tR R ltRtR# )r   i  zt
Description off a placeholder text found in a file that must be replaced
when installing the file into the prefix.
r   r   c               $    V ^8  d   QhRRRRRR/# )r   	file_modeFileModer   r,   r   rP   r   )r   s   "r   r   PrefixPlaceholder.__annotate__&  s&     I I( I I Ir   c                <    \        VP                  V4      V n        R# )an  
Create a new prefix placeholder.

Parameters
----------
file_mode: FileMode
    The file mode of the entry.
placeholder: str
    The placeholder prefix used in the file.

Examples
--------
```python
>>> placeholder = PrefixPlaceholder(FileMode("text"), "placeholder")
>>> placeholder
PrefixPlaceholder(file_mode=FileMode("text"), placeholder="placeholder")
>>>
```
N)r   r   )rM   r   r   s   &&&r   r   PrefixPlaceholder.__init__&  s    ( *)*:*:KHr   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   =  s     B B8 Br   c                T    \         P                  V P                  P                  4      # )a  
The type of the file, either binary or text.

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[-1]
>>> entry.prefix_placeholder.file_mode
FileMode("text")
>>>
```
)r   _from_py_file_moder   r   rY   s   &r   r   PrefixPlaceholder.file_mode<  s    " **4;;+@+@AAr   c                   V ^8  d   QhRR/# re   r   )r   s   "r   r   r   P  s     ' 'S 'r   c                .    V P                   P                  # )ae  
The placeholder prefix used in the file. This is the path of the
prefix when the package was build.

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[-1]
>>> entry.prefix_placeholder.placeholder
'D:\\bld\\conda_1667595064120\\_h_env'
>>>
```
)r   r   rY   s   &r   r   PrefixPlaceholder.placeholderO  s    $ {{&&&r   c                    V ^8  d   QhRRRR/# )r   py_prefix_placeholderr   r   r   r   )r   s   "r   r   r   d  s     " "@S "Xi "r   c                	4    V P                  V 4      pWn        V# rR   r`   )r6   r   r{   s   && r   r   -PrefixPlaceholder._from_py_prefix_placeholderc  s     [[-$9!!!r   c                   V ^8  d   QhRR/# re   r   )r   s   "r   r   r   j  s     b b# br   c                <    RV P                    RV P                   R2# )z4
Returns a representation of the PrefixPlaceholder.
zPrefixPlaceholder(file_mode=z, placeholder="z"))r   r   rY   s   &r   rg   PrefixPlaceholder.__repr__j  s&     .dnn-=_TM]M]L^^`aar   r   N)ri   rj   rk   rl   rm   rn   r   rq   r   r   rp   r   rg   rs   r   r   r   r   r     s_    
  I, B B$ ' '& " "b br   r   c                      ] tR tRt$ RtRtR]R&   R R lt]R R	 l4       t	]R
 R l4       t
]R R l4       t]R R l4       tR R ltRtR# )r   iq  z
The file mode of the entry.
NzPyFileMode | Noner   c                    V ^8  d   QhRRRR/# )r   r   zLiteral['binary', 'text']r   rP   r   )r   s   "r   r   FileMode.__annotate__x  s     , ,"; , ,r   c                	&    \        V4      V n        R # rR   )r   r   )rM   r   s   &&r   r   FileMode.__init__x  r   r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   |  s     < < <r   c                V    V P                   '       d   V P                   P                  # R# )a<  
The file is a binary file (needs binary prefix replacement).

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[-1]
>>> file_mode = entry.prefix_placeholder.file_mode
>>> file_mode.binary
False
>>>
```
F)r   binaryrY   s   &r   r   FileMode.binary{  s!    $ &*[[[t{{!!;e;r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r     s     : :d :r   c                V    V P                   '       d   V P                   P                  # R# )a5  
The file is a text file (needs text prefix replacement).

Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[-1]
>>> file_mode = entry.prefix_placeholder.file_mode
>>> file_mode.text
True
>>>
```
F)r   textrY   s   &r   r   FileMode.text  s!    $ $(;;;t{{9E9r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r     s     # # #r   c                    V P                   RJ # )a   
The file mode is unknown/unspecified
Examples
--------
```python
>>> paths_json = PathsJson.from_path(
...     "../test-data/conda-22.9.0-py38haa244fe_2-paths.json"
... )
>>> entry = paths_json.paths[-1]
>>> file_mode = entry.prefix_placeholder.file_mode
>>> file_mode.unknown
False
>>>
Nr   rY   s   &r   unknownFileMode.unknown  s      {{d""r   c                    V ^8  d   QhRRRR/# )r   py_file_moder   r   r   r   )r   s   "r   r   r     s      j X r   c                	4    V P                  V 4      pWn        V# rR   r`   )r6   r   r   s   && r   r   FileMode._from_py_file_mode  s    KK$	'r   c                   V ^8  d   QhRR/# re   r   )r   s   "r   r   r     s     	  	 # 	 r   c                V    V P                   '       d   R# V P                  '       d   R# R# )z+
Returns a representation of the FileMode.
zFileMode("binary")zFileMode("text")z
FileMode())r   r   rY   s   &r   rg   FileMode.__repr__  s     ;;;'YYY%r   r   )ri   rj   rk   rl   rm   r   rn   r   rq   r   r   r   rp   r   rg   rs   r   r   r   r   r   q  ss     !%F$, < <& : :& # #"  	  	 r   r   )
__future__r   ospathlibr   typingr   r   r   r   rattler.rattlerr	   r
   r   r   r   rattler.networking.clientr   r   rJ   rz   r   r   r   r   r   <module>r     sj    " 	  9 9  0n nb@b @bFV. V.rPb PbfT  T r   