+
    ,ja&                    v    ^ RI Ht ^ RIt^ RIHt ^ RIHtHtHt ^ RI	H
t
 ]'       d   ^ RIHt  ! R R4      tR# )	    )annotationsN)Path)TYPE_CHECKINGListOptional)PyRunExportsJson)Clientc                     ] tR t^t$ RtR]R&   R,R R l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]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# )-RunExportsJsonz
A representation of the `run_exports.json` file found in package archives.
The `run_exports.json` file contains information about the run exports of a package
r   _innerNc               0    V ^8  d   QhRRRRRRRRRRRR/# )	   weakzList[str] | Nonestrongnoarchweak_constrainsstrong_constrainsreturnNone )formats   "@lib/python3.14/site-packages/rattler/package/run_exports_json.py__annotate__RunExportsJson.__annotate__   sF     )
 )
)
 !)
 !	)

 *)
 ,)
 
)
    c                    \        T;'       g    . T;'       g    . T;'       g    . T;'       g    . T;'       g    . 4      V n        R# )a;  
Create a new RunExportsJson instance.

Parameters
----------
weak : List[str] | None, optional
    Weak run exports apply a dependency from host to run
strong : List[str] | None, optional
    Strong run exports apply a dependency from build to host and run
noarch : List[str] | None, optional
    Noarch run exports apply a run export only to noarch packages
weak_constrains : List[str] | None, optional
    Weak constrains apply a constrain dependency from host to build, or run to host
strong_constrains : List[str] | None, optional
    Strong constrains apply a constrain dependency from build to host and run

Examples
--------
```python
>>> run_exports = RunExportsJson(
...     weak=["weak_dep 1.0"],
...     strong=["strong_dep 2.0"],
...     noarch=["noarch_dep 3.0"],
...     weak_constrains=["weak_constrain 4.0"],
...     strong_constrains=["strong_constrain 5.0"]
... )
>>> run_exports
RunExportsJson(weak=['weak_dep 1.0'], strong=['strong_dep 2.0'], noarch=['noarch_dep 3.0'], weak_constrains=['weak_constrain 4.0'], strong_constrains=['strong_constrain 5.0'])
>>>
```
N)r   r   )selfr   r   r   r   r   s   &&&&&&r   __init__RunExportsJson.__init__   s@    N 'JJB"fllO4I4IrK\KbKb`b
r   c                    V ^8  d   QhRRRR/# r   pathzos.PathLike[str]r   r   r   )r   s   "r   r   r   @   s     e e#3 e er   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_run_exports_jsonr   from_package_archiver"   s   &r   r%   #RunExportsJson.from_package_archive?   s"     778H8]8]^b8cddr   c                    V ^8  d   QhRRRR/# r!   r   )r   s   "r   r   r   J   s     ` `( `^ `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
>>> run_exports = RunExportsJson.from_path(
...     "../test-data/python-3.10.6-h2c4edbf_0_cpython-run_exports.json"
... )
>>> run_exports
RunExportsJson(weak=['python_abi 3.10.* *_cp310'], strong=[], noarch=['python'], weak_constrains=[], strong_constrains=[])
>>>
```
)r   r$   r   	from_pathr   r&   s   &r   r*   RunExportsJson.from_pathI   s(    , 778H8R8RSWX\S]8^__r   c                    V ^8  d   QhRRRR/# r!   r   )r   s   "r   r   r   b   s     m m%5 m. m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.   %RunExportsJson.from_package_directorya   s(     778H8_8_`dei`j8kllr   c                    V ^8  d   QhRRRR/# )r   stringstrr   r   r   )r   s   "r   r   r   p   s     	[ 	[ 	[ 	[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)r1   s   &r   r4   RunExportsJson.from_stro   s"     778H8Q8QRX8YZZr   c               $    V ^8  d   QhRRRRRR/# )r   clientr	   urlr2   r   zOptional[RunExportsJson]r   )r   s   "r   r   r   |   s'     B B6 B B@X Br   c                   "   \         P                  ! VP                  V4      G Rj  xL
 pVf   R# V P                  V4      #  L5i)zD
Fetches `info/run_exports.json` from a remote package archive URL.
N)r   from_remote_url_clientr$   )clsr7   r8   py_run_exports_jsons   &&& r   r:   RunExportsJson.from_remote_url{   sC     
 %5$D$DV^^UX$YY&,,-@AA Zs   %AAAc                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r      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   rA   RunExportsJson.package_path   s      ,,..r   c                   V ^8  d   QhRR/# r   r   	List[str]r   )r   s   "r   r   r      s        i  r   c                .    V P                   P                  # )aV  
Weak run exports apply a dependency from host to run.

Examples
--------
```python
>>> run_exports = RunExportsJson.from_path(
...     "../test-data/python-3.10.6-h2c4edbf_0_cpython-run_exports.json"
... )
>>> run_exports.weak
['python_abi 3.10.* *_cp310']
>>> run_exports.weak = ['new_dep 1.0']
>>> run_exports.weak
['new_dep 1.0']
>>>
```
r   r   r   s   &r   r   RunExportsJson.weak   s    & {{r   c                    V ^8  d   QhRRRR/# r   valuerE   r   r   r   )r   s   "r   r   r      s     ! !) ! !r   c                	&    WP                   n        R # NrG   r   rL   s   &&r   r   rI      s     r   c                   V ^8  d   QhRR/# rD   r   )r   s   "r   r   r      s     " "	 "r   c                .    V P                   P                  # )aS  
Strong run exports apply a dependency from build to host and run.

Examples
--------
```python
>>> run_exports = RunExportsJson.from_path(
...     "../test-data/python-3.10.6-h2c4edbf_0_cpython-run_exports.json"
... )
>>> run_exports.strong
[]
>>> run_exports.strong = ['strong_dep 2.0']
>>> run_exports.strong
['strong_dep 2.0']
>>>
```
r   r   rH   s   &r   r   RunExportsJson.strong   s    & {{!!!r   c                    V ^8  d   QhRRRR/# rK   r   )r   s   "r   r   r           # #I #$ #r   c                	&    WP                   n        R # rN   rR   rO   s   &&r   r   rS          "r   c                   V ^8  d   QhRR/# rD   r   )r   s   "r   r   r      s     " "	 "r   c                .    V P                   P                  # )a  
NoArch run exports apply a run export only to noarch packages (other run exports are ignored).
For example, python uses this to apply a dependency on python to all noarch packages, but not to
the python_abi package.

Examples
--------
```python
>>> run_exports = RunExportsJson.from_path(
...     "../test-data/python-3.10.6-h2c4edbf_0_cpython-run_exports.json"
... )
>>> run_exports.noarch
['python']
>>> run_exports.noarch = ['noarch_dep 3.0']
>>> run_exports.noarch
['noarch_dep 3.0']
>>>
```
r   r   rH   s   &r   r   RunExportsJson.noarch   s    * {{!!!r   c                    V ^8  d   QhRRRR/# rK   r   )r   s   "r   r   r      rU   r   c                	&    WP                   n        R # rN   rZ   rO   s   &&r   r   r[      rW   r   c                   V ^8  d   QhRR/# rD   r   )r   s   "r   r   r      s     + + +r   c                .    V P                   P                  # )a  
Weak constrains apply a constrain dependency from host to build, or run to host.

Examples
--------
```python
>>> run_exports = RunExportsJson.from_path(
...     "../test-data/python-3.10.6-h2c4edbf_0_cpython-run_exports.json"
... )
>>> run_exports.weak_constrains
[]
>>> run_exports.weak_constrains = ['weak_constrain 4.0']
>>> run_exports.weak_constrains
['weak_constrain 4.0']
>>>
```
r   r   rH   s   &r   r   RunExportsJson.weak_constrains   s    & {{***r   c                    V ^8  d   QhRRRR/# rK   r   )r   s   "r   r   r      s     , ,Y ,4 ,r   c                	&    WP                   n        R # rN   r`   rO   s   &&r   r   ra      s    &+#r   c                   V ^8  d   QhRR/# rD   r   )r   s   "r   r   r      s     - -9 -r   c                .    V P                   P                  # )a  
Strong constrains apply a constrain dependency from build to host and run.

Examples
--------
```python
>>> run_exports = RunExportsJson.from_path(
...     "../test-data/python-3.10.6-h2c4edbf_0_cpython-run_exports.json"
... )
>>> run_exports.strong_constrains
[]
>>> run_exports.strong_constrains = ['strong_constrain 5.0']
>>> run_exports.strong_constrains
['strong_constrain 5.0']
>>>
```
r   r   rH   s   &r   r    RunExportsJson.strong_constrains   s    & {{,,,r   c                    V ^8  d   QhRRRR/# rK   r   )r   s   "r   r   r     s     . .y .T .r   c                	&    WP                   n        R # rN   rf   rO   s   &&r   r   rg   
  s    (-%r   c                    V ^8  d   QhRRRR/# )r   r=   r   r   r   r   )r   s   "r   r   r     s        <L  Q_  r   c                	4    V P                  V 4      pWn        V# rN   )__new__r   )r<   r=   run_exports_jsons   && r   r$   (RunExportsJson._from_py_run_exports_json  s    ;;s+"5r   c                   V ^8  d   QhRR/# )r   r   r2   r   )r   s   "r   r   r     s     s s# sr   c                    RV P                    RV P                   RV P                   RV P                   RV P                   R2# )z1
Returns a representation of the RunExportsJson.
zRunExportsJson(weak=z	, strong=z	, noarch=z, weak_constrains=z, strong_constrains=))r   r   r   r   r   rH   s   &r   __repr__RunExportsJson.__repr__  sw     &dii[	$++iPTP[P[}\nos  pD  pD  oE  EY  Z^  Zp  Zp  Yq  qr  s  	sr   )r   )NNNNN)__name__
__module____qualname____firstlineno____doc____annotations__r   staticmethodr%   r*   r.   r4   classmethodr:   rA   propertyr   setterr   r   r   r   r$   rr   __static_attributes__r   r   r   r   r      s   
 )
V e e ` `. m m 	[ 	[ B B / /    ( 
[[! ! " "( ]]# # " ", ]]# # + +( , , - -( . .    s sr   r   )
__future__r   ospathlibr   typingr   r   r   rattler.rattlerr   rattler.networking.clientr	   r   r   r   r   <module>r      s+    " 	  0 0 ,0Ms Msr   