+
    ,j2                        ^ RI Ht ^ RIt^ RIHtHtHtHt ^ RIH	t	 ^ RI
HtHtHt ]'       d   ]P                  ],          tM]P                  t ! R R4      t ! R R	]4      t ! R
 R4      tR# )    )annotationsN)ListTYPE_CHECKINGLiteralOptional)FileMode)PyPrefixPathsPyPrefixPathsEntryPyPrefixPathTypec                      ] tR t^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4       t]R R l4       t]R R l4       t]R R l4       tRtR# )PrefixPathTyper   _innerc                    V ^8  d   QhRRRR/# )   	path_typezLiteral['hardlink', 'softlink', 'directory', 'pyc_file', 'windows_python_entry_point_script', 'windows_python_entry_point_exe', 'unix_python_entry_point']returnNone )formats   ";lib/python3.14/site-packages/rattler/prefix/prefix_paths.py__annotate__PrefixPathType.__annotate__   s      2 2
2 
2    c                &    \        V4      V n        R# )a  
Create a new PrefixPathType instance.

Parameters
----------
path_type : str
    The type of path. Must be one of: "hardlink", "softlink", "directory"

Examples
--------
```python
>>> path_type = PrefixPathType("hardlink")
>>> path_type.hardlink
True
>>>
```
N)r   r   selfr   s   &&r   __init__PrefixPathType.__init__   s    : 'y1r   c                    V ^8  d   QhRRRR/# )r   py_path_typer   r   r   r   )r   s   "r   r   r   2   s      -= . r   c                4    V P                  V 4      pWn        V# )z6Construct Rattler PathType from FFI PyPathType object.__new__r   )clsr    r   s   && r   from_py_path_type PrefixPathType.from_py_path_type1   s     KK$	'r   c                   V ^8  d   QhRR/# r   r   boolr   )r   s   "r   r   r   9        $ $$ $r   c                .    V P                   P                  # )zF
Whether the path should be hardlinked (the default) (once installed)
)r   hardlinkr   s   &r   r,   PrefixPathType.hardlink8       
 {{###r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   r   @   r*   r   c                .    V P                   P                  # )z8
Whether the path should be softlinked (once installed)
)r   softlinkr-   s   &r   r2   PrefixPathType.softlink?   r/   r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   r   G   s     % %4 %r   c                .    V P                   P                  # )z
This is a directory
)r   	directoryr-   s   &r   r6   PrefixPathType.directoryF   s    
 {{$$$r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   r   N   r*   r   c                .    V P                   P                  # )zN
This is a file compiled from Python code when a noarch package was installed
)r   pyc_filer-   s   &r   r:   PrefixPathType.pyc_fileM   r/   r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   r   U   s     = =4 =r   c                .    V P                   P                  # )zS
A Windows entry point python script (a <entrypoint>-script.py Python script file)
)r   !windows_python_entry_point_scriptr-   s   &r   r>   0PrefixPathType.windows_python_entry_point_scriptT   s    
 {{<<<r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   r   \   s     : : :r   c                .    V P                   P                  # )zE
A Windows entry point python script (a <entrypoint>.exe executable)
)r   windows_python_entry_point_exer-   s   &r   rB   -PrefixPathType.windows_python_entry_point_exe[   s    
 {{999r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   r   c   s     3 3 3r   c                .    V P                   P                  # )zF
A Unix entry point python script (a <entrypoint> Python script file)
)r   unix_python_entry_pointr-   s   &r   rF   &PrefixPathType.unix_python_entry_pointb   s    
 {{222r   r   N)__name__
__module____qualname____firstlineno____annotations__r   classmethodr%   propertyr,   r2   r6   r:   r>   rB   rF   __static_attributes__r   r   r   r   r      s    2>   $ $ $ $ % % $ $ = = : : 3 3r   r   c                  T   ] tR t^jt$ R]R&   R+R R lltR R l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]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*tR# ),PrefixPathsEntryr
   r   Nc               <    V ^8  d   QhRRRRRRRRR	R
RR
RRRRRR/	# )r   relative_pathos.PathLike[str]r   r   prefix_placeholderOptional[str]	file_modeOptional[FileMode]sha256Optional[bytes]sha256_in_prefixsize_in_bytesOptional[int]original_pathzOptional[os.PathLike[str]]r   r   r   )r   s   "r   r   PrefixPathsEntry.__annotate__m   sd     *
 *
'*
 "*
 *	*

 &*
  *
 **
 %*
 2*
 
*
r   c	           
     p    \        TVP                  TV'       d   VP                  MRVVVV4      V n        R# )a-  
Create a new PrefixPathsEntry instance.

Parameters
----------
relative_path : os.PathLike[str]
    The relative path from the root of the package
path_type : PrefixPathType
    Determines how to include the file when installing the package
prefix_placeholder : Optional[str], optional
    The placeholder prefix used in the file, by default None
file_mode : Optional[FileMode], optional
    The file mode of the path, by default None
sha256 : Optional[bytes], optional
    The sha256 of the path, by default None
sha256_in_prefix : Optional[bytes], optional
    The sha256 of the path in the prefix, by default None
size_in_bytes : Optional[int], optional
    The size of the path in bytes, by default None
original_path : Optional[os.PathLike[str]], optional
    The original path of the file, by default None
N)r
   r   )	r   rT   r   rV   rX   rZ   r\   r]   r_   s	   &&&&&&&&&r   r   PrefixPathsEntry.__init__m   s9    B ) )It	
r   c                   V ^8  d   QhRR/# r   r   strr   )r   s   "r   r   r`      s     % %C %r   c                	@    \        V P                  P                  4      # N)re   r   pathr-   s   &r   
__fspath__PrefixPathsEntry.__fspath__   s    4;;##$$r   c                    V ^8  d   QhRRRR/# )r   py_paths_entryr
   r   rR   r   )r   s   "r   r   r`      s      2D IY r   c                4    V P                  V 4      pWn        V# )z:Construct Rattler PathsEntry from FFI PyPathsEntry object.r"   )r$   rl   entrys   && r   _from_py_paths_entry%PrefixPathsEntry._from_py_paths_entry   s     C %r   c                   V ^8  d   QhRR/# )r   r   rU   r   )r   s   "r   r   r`      s     ) )/ )r   c                .    V P                   P                  # )a0  
The relative path of the entry.

Examples
--------
```python
>>> from rattler.prefix.prefix_record import PrefixRecord
>>> r = PrefixRecord.from_path(
...     "../test-data/conda-meta/tk-8.6.12-h8ffe710_0.json"
... )
>>> paths = r.paths_data
>>> relative_path = paths.paths[0].relative_path
>>>
...
```
)r   rT   r-   s   &r   rT   PrefixPathsEntry.relative_path       $ {{(((r   c                    V ^8  d   QhRRRR/# )r   rh   rU   r   r   r   )r   s   "r   r   r`      s     , ,"2 ,t ,r   c                	<    V P                   P                  V4       R # rg   )r   set_relative_pathr   rh   s   &&r   rT   rs          %%d+r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   r`      s       r   c                    R# )a+  
Whether this file should be linked

Examples
--------
```python
>>> from rattler.prefix.prefix_record import PrefixRecord
>>> r = PrefixRecord.from_path(
...     "../test-data/conda-meta/requests-2.28.2-pyhd8ed1ab_0.json"
... )
>>> paths = r.paths_data
>>> no_link = paths.paths[0].no_link
>>>
```
Nr   r-   s   &r   no_linkPrefixPathsEntry.no_link   s    r   c                    V ^8  d   QhRRRR/# )r   r|   r)   r   r   r   )r   s   "r   r   r`      s     ) )t ) )r   c                	<    V P                   P                  V4       R # rg   )r   set_no_link)r   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     G G> Gr   c                T    \         P                  V P                  P                  4      # )a"  
The type of the path.

Examples
--------
```python
>>> from rattler.prefix.prefix_record import PrefixRecord
>>> r = PrefixRecord.from_path(
...     "../test-data/conda-meta/requests-2.28.2-pyhd8ed1ab_0.json"
... )
>>> paths = r.paths_data
>>> path_type = paths.paths[0].path_type
>>>
```
)r   r%   r   r   r-   s   &r   r   PrefixPathsEntry.path_type   s    " //0E0EFFr   c                    V ^8  d   QhRRRR/# )r   r   r   r   r   r   )r   s   "r   r   r`      s     4 4> 4d 4r   c                	P    V P                   P                  VP                   4       R # rg   )r   set_path_typer   s   &&r   r   r      s    !!)"2"23r   c                   V ^8  d   QhRR/# )r   r   z
str | Noner   )r   s   "r   r   r`      s     . .J .r   c                .    V P                   P                  # )aC  
The prefix placeholder for the path.

Examples
--------
```python
>>> from rattler.prefix.prefix_record import PrefixRecord
>>> r = PrefixRecord.from_path(
...     "../test-data/conda-meta/requests-2.28.2-pyhd8ed1ab_0.json"
... )
>>> paths = r.paths_data
>>> prefix_placeholder = paths.paths[0].prefix_placeholder
>>>
```
)r   rV   r-   s   &r   rV   #PrefixPathsEntry.prefix_placeholder   s    " {{---r   c                    V ^8  d   QhRRRR/# )r   placeholderrW   r   r   r   )r   s   "r   r   r`      s     8 8m 8 8r   c                	<    V P                   P                  V4       R # rg   )r   set_prefix_placeholder)r   r   s   &&r   rV   r      s    **;7r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r`      s     B B8 Br   c                V    \         P                  ! V P                  P                  4      # )a'  
The file mode of the path.

Examples
--------
```python
>>> from rattler.prefix.prefix_record import PrefixRecord
>>> r = PrefixRecord.from_path(
...     "../test-data/conda-meta/requests-2.28.2-pyhd8ed1ab_0.json"
... )
>>> paths = r.paths_data
>>> file_mode = paths.paths[0].file_mode
>>>
```
)r   _from_py_file_moder   rX   r-   s   &r   rX   PrefixPathsEntry.file_mode   s    " **4;;+@+@AAr   c                    V ^8  d   QhRRRR/# )r   rX   rY   r   r   r   )r   s   "r   r   r`     s     K K#5 K$ Kr   c                	p    V P                   P                  V'       d   VP                   4       R # R 4       R # rg   )r   set_file_mode)r   rX   s   &&r   rX   r     s!    !!i)"2"2JTJr   c                   V ^8  d   QhRR/# r   r   bytesr   )r   s   "r   r   r`     s     " " "r   c                .    V P                   P                  # )a  
The sha256 of the path.

Examples
--------
```python
>>> from rattler.prefix.prefix_record import PrefixRecord
>>> r = PrefixRecord.from_path(
...     "../test-data/conda-meta/requests-2.28.2-pyhd8ed1ab_0.json"
... )
>>> paths = r.paths_data
>>> sha256 = paths.paths[0].sha256
>>>
```
)r   rZ   r-   s   &r   rZ   PrefixPathsEntry.sha256  s    " {{!!!r   c                    V ^8  d   QhRRRR/# r   rZ   r[   r   r   r   )r   s   "r   r   r`   *  s     ' '_ ' 'r   c                	<    V P                   P                  V4       R # rg   )r   
set_sha256r   rZ   s   &&r   rZ   r   )  s    v&r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r`   .  s     , ,% ,r   c                .    V P                   P                  # )a@  
The sha256 of the path in the prefix.

Examples
--------
```python
>>> from rattler.prefix.prefix_record import PrefixRecord
>>> r = PrefixRecord.from_path(
...     "../test-data/conda-meta/requests-2.28.2-pyhd8ed1ab_0.json"
... )
>>> paths = r.paths_data
>>> sha256_in_prefix = paths.paths[0].sha256_in_prefix
>>>
```
)r   r\   r-   s   &r   r\   !PrefixPathsEntry.sha256_in_prefix-  s    " {{+++r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r`   A  s     1 1 14 1r   c                	<    V P                   P                  V4       R # rg   )r   set_sha256_in_prefixr   s   &&r   r\   r   @  s    ((0r   c                   V ^8  d   QhRR/# r   r   intr   )r   s   "r   r   r`   E  s     ) )s )r   c                .    V P                   P                  # )a3  
The size of the path in bytes.

Examples
--------
```python
>>> from rattler.prefix.prefix_record import PrefixRecord
>>> r = PrefixRecord.from_path(
...     "../test-data/conda-meta/requests-2.28.2-pyhd8ed1ab_0.json"
... )
>>> paths = r.paths_data
>>> size_in_bytes = paths.paths[0].size_in_bytes
>>>
```
)r   r]   r-   s   &r   r]   PrefixPathsEntry.size_in_bytesD  s    " {{(((r   c                    V ^8  d   QhRRRR/# )r   sizer^   r   r   r   )r   s   "r   r   r`   X  s     , ,- ,D ,r   c                	<    V P                   P                  V4       R # rg   )r   set_size_in_bytes)r   r   s   &&r   r]   r   W  ry   r   rH   )NNNNNN)rI   rJ   rK   rL   rM   r   ri   rN   ro   rO   rT   setterr|   r   rV   rX   rZ   r\   r]   rP   r   r   r   rR   rR   j   s   *
X%   ) )& , ,  " ^^) ) G G$ 4 4 . .$ 8 8 B B$ K K " "$ ]]' ' , ,$ 1 1 ) )$ , ,r   rR   c                      ] tR tRt$ R]R&   ]R R l4       tRR R l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tRtR# )PrefixPathsi\  r	   _pathsc                    V ^8  d   QhRRRR/# )r   py_prefix_pathsr	   r   r   r   )r   s   "r   r   PrefixPaths.__annotate__`  s      M k r   c                4    V P                  V 4      pWn        V# )z>Construct Rattler PrefixRecord from FFI PyPrefixRecord object.)r#   r   )r$   r   pathss   && r   _from_py_prefix_paths!PrefixPaths._from_py_prefix_paths_  s     C &r   c                    V ^8  d   QhRRRR/# )r   paths_versionr   r   r   r   )r   s   "r   r   r   f  s     3 3c 3$ 3r   c                &    \        V4      V n        R# )z
Create a new PrefixPaths instance.

Parameters
----------
paths_version : int, optional
    The version of the paths file format, by default 1

Examples
--------
```python
>>> paths = PrefixPaths()
>>> paths.paths_version
1
>>>
```
N)r	   r   )r   r   s   &&r   r   PrefixPaths.__init__f  s    $ $M2r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   {  s     ) )s )r   c                .    V P                   P                  # )a  
The version of the file.

Examples
--------
```python
>>> from rattler.prefix.prefix_record import PrefixRecord
>>> r = PrefixRecord.from_path(
...     "../test-data/conda-meta/requests-2.28.2-pyhd8ed1ab_0.json"
... )
>>> paths = r.paths_data
>>> paths.paths_version
1
>>>
```
r   r   r-   s   &r   r   PrefixPaths.paths_versionz  rt   r   c                    V ^8  d   QhRRRR/# )r   versionr   r   r   r   )r   s   "r   r   r     s     , ,S ,T ,r   c                	&    WP                   n        R # rg   r   )r   r   s   &&r   r   r     s    $+!r   c                   V ^8  d   QhRR/# )r   r   List[PrefixPathsEntry]r   )r   s   "r   r   r     s     [ [- [r   c                ~    V P                   P                   Uu. uF  p\        P                  V4      NK  	  up# u upi )a2  
All entries included in the package.

Examples
--------
```python
>>> from rattler.prefix.prefix_record import PrefixRecord
>>> r = PrefixRecord.from_path(
...     "../test-data/conda-meta/requests-2.28.2-pyhd8ed1ab_0.json"
... )
>>> paths = r.paths_data
>>> paths.paths # doctest:+ELLIPSIS
[...]
>>>
```
)r   r   rR   ro   rx   s   & r   r   PrefixPaths.paths  s6    $ IMHYHYZHY 55d;HYZZZs   :c                    V ^8  d   QhRRRR/# )r   r   r   r   r   r   )r   s   "r   r   r     s     < <1 <d <r   c                	d    V Uu. uF  q"P                   NK  	  upV P                  n        R # u upi rg   )r   r   r   )r   r   rh   s   && r   r   r     s"    5:;UT[[U;;s   -c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   r     s     2 2# 2r   c                "    RV P                    R2# )a5  
Returns a representation of the PrefixPaths.

Examples
--------
```python
>>> from rattler.prefix.prefix_record import PrefixRecord
>>> r = PrefixRecord.from_path(
...     "../test-data/conda-meta/requests-2.28.2-pyhd8ed1ab_0.json"
... )
>>> r.paths_data # doctest:+ELLIPSIS
PrefixPaths(paths=[...])
>>>
```
zPrefixPaths(paths=))r   r-   s   &r   __repr__PrefixPaths.__repr__  s      $DJJ<q11r   )r   N)   )rI   rJ   rK   rL   rM   rN   r   r   rO   r   r   r   r   rP   r   r   r   r   r   \  s     3( ) )& , , [ [& \\< <2 2r   r   )
__future__r   ostypingr   r   r   r   rattler.package.paths_jsonr   rattler.rattlerr	   r
   r   PathLikere   BasePathLiker   rR   r   r   r   r   <module>r      s^    " 	 9 9 / O O ;;s#L;;LX3 X3vo,| o,d^2 ^2r   