+
    ,j                        ^ RI Ht ^ RIHt ^ RIHtHtHtHt ]'       d   ^ RI	H
t
 ^ RIHt ^ RIHtHt ^ RIHtHtHt  ! R R	4      t ! R
 R4      t ! R R4      tR# )    )annotations)Path)OptionalUnionListTYPE_CHECKING)PathLike)Channel)PatchInstructionsRepoDataRecord)PyChannelInfoPyChannelRelations
PyRepoDatac                  t    ] 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tRtR# )ChannelRelationsa?  
Relationships to other channels declared inside ``repodata.json`` under
``info.channel_relations`` as specified by
[CEP-42](https://github.com/conda/ceps/blob/main/cep-0042.md).

`ChannelRelations` is a read-only view obtained via
``RepoData.from_path(...).info.channel_relations``; it cannot be
constructed directly.
r   _innerc                    V ^8  d   QhRRRR/# )   py_channel_relationsr   returnr    )formats   ";lib/python3.14/site-packages/rattler/repo_data/repo_data.py__annotate__ChannelRelations.__annotate__   s      /A FV     c                	4    V P                  V 4      pWn        V# N__new__r   )clsr   instances   && r   _from_innerChannelRelations._from_inner   s    ;;s#.r   c                   V ^8  d   QhRR/# r   r   zOptional[str]r   )r   s   "r   r   r   "   s        m  r   c                .    V P                   P                  # )zIA reference to a channel with higher priority than the declaring channel.)r   baseselfs   &r   r(   ChannelRelations.base!   s     {{r   c                   V ^8  d   QhRR/# r&   r   )r   s   "r   r   r   '   s     % %= %r   c                .    V P                   P                  # )zHA reference to a channel with lower priority than the declaring channel.)r   	overridesr)   s   &r   r.   ChannelRelations.overrides&   s     {{$$$r   c                   V ^8  d   QhRR/# r   r   strr   )r   s   "r   r   r   +   s     U U# Ur   c                	@    R V P                   : RV P                  : R2# )zChannelRelations(base=z, overrides=))r(   r.   r)   s   &r   __repr__ChannelRelations.__repr__+   s!    '		}L@RRSTTr   r   N)__name__
__module____qualname____firstlineno____doc____annotations__classmethodr#   propertyr(   r.   r5   __static_attributes__r   r   r   r   r      sU      
     % %U Ur   r   c                      ] 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tRtR# )ChannelInfoz
The ``info`` section of a ``repodata.json`` file.

`ChannelInfo` is a read-only view obtained via
``RepoData.from_path(...).info``; it cannot be constructed directly.
r   r   c                    V ^8  d   QhRRRR/# )r   py_channel_infor   r   rA   r   )r   s   "r   r   ChannelInfo.__annotate__:   s      - K r   c                	4    V P                  V 4      pWn        V# r   r   )r!   rC   r"   s   && r   r#   ChannelInfo._from_inner9   s    ;;s#)r   c                   V ^8  d   QhRR/# r&   r   )r   s   "r   r   rD   @   s     " " "r   c                .    V P                   P                  # )z1The channel's subdirectory (e.g. ``"linux-64"``).)r   subdirr)   s   &r   rI   ChannelInfo.subdir?   s     {{!!!r   c                   V ^8  d   QhRR/# r&   r   )r   s   "r   r   rD   E   s     $ $- $r   c                .    V P                   P                  # )z:The base URL for all package URLs in this channel, if any.)r   base_urlr)   s   &r   rM   ChannelInfo.base_urlD   s     {{###r   c                   V ^8  d   QhRR/# )r   r   zOptional[ChannelRelations]r   )r   s   "r   r   rD   J   s     
7 
7#= 
7r   c                d    V P                   P                  pVf   R# \        P                  V4      # )z
Channel relations declared by this channel, see
[CEP-42](https://github.com/conda/ceps/blob/main/cep-0042.md).

``None`` when the channel does not declare any relations.
N)r   channel_relationsr   r#   )r*   	relationss   & r   rQ   ChannelInfo.channel_relationsI   s-     KK11	++I66r   c                   V ^8  d   QhRR/# r1   r   )r   s   "r   r   rD   V   s     
 
# 
r   c                	\    R V P                   : RV P                  : RV P                  : R2# )zChannelInfo(subdir=z, base_url=z, channel_relations=r4   )rI   rM   rQ   r)   s   &r   r5   ChannelInfo.__repr__V   s6    !$++DMM;L M!!%!7!7 :!=	
r   r   N)r7   r8   r9   r:   r;   r<   r=   r#   r>   rI   rM   rQ   r5   r?   r   r   r   rA   rA   /   sg      
 " " $ $ 
7 
7
 
r   rA   c                      ] 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tR R lt]R R l4       tR R ltRtR# )RepoDataz|
Repository metadata as deserialized from a ``repodata.json`` file.

`RepoData` is obtained via `RepoData.from_path(path)`.
r   
_repo_datac                    V ^8  d   QhRRRR/# )r   pathzUnion[str, PathLike[str]]r   rX   r   )r   s   "r   r   RepoData.__annotate__g   s     B B6 B8 Br   c                    \        V\        \        34      '       g$   \        R\	        V4      P
                  : R24      hV P                  \        P                  ! V4      4      # )z
Load a `RepoData` from a ``repodata.json`` file on disk.

Examples
--------
```python
>>> repo_data = RepoData.from_path("../test-data/test-server/repo/noarch/repodata.json")
>>> repo_data
RepoData()
>>>
```
z-RepoData.from_path received unsupported type z for the `path` parameter)	
isinstancer2   r   	TypeErrortyper7   _from_py_repo_datar   	from_path)r!   r[   s   &&r   rb   RepoData.from_pathf   sX     $d,,?T
@S@S?VVop  %%j&:&:4&@AAr   c                   V ^8  d   QhRR/# )r   r   zOptional[ChannelInfo]r   )r   s   "r   r   r\   {   s     - -+ -r   c                d    V P                   P                  pVf   R# \        P                  V4      # )z;Returns the channel info contained in the repodata, if any.N)rY   inforA   r#   )r*   rf   s   & r   rf   RepoData.infoz   s,     ##<&&t,,r   c                   V ^8  d   QhRR/# )r   r   zOptional[int]r   )r   s   "r   r   r\      s     ' ' 'r   c                .    V P                   P                  # )z,Returns the repodata format version, if any.)rY   versionr)   s   &r   rj   RepoData.version   s     &&&r   c                    V ^8  d   QhRRRR/# )r   instructionsr   r   Noner   )r   s   "r   r   r\      s     H H*; H Hr   c                P    V P                   P                  VP                  4       R# )z^
Apply a patch to a repodata file.
Note that we currently do not handle revoked instructions.
N)rY   apply_patches_patch_instructions)r*   rm   s   &&r   rp   RepoData.apply_patches   s    
 	%%l&F&FGr   c                    V ^8  d   QhRRRR/# )r   channelr
   r   zList[RepoDataRecord]r   )r   s   "r   r   r\      s     
 
g 
2F 
r   c                    ^ RI Hp \        P                  ! V P                  VP
                  4       Uu. uF  pVP                  ! V4      NK  	  up# u upi )a3  
Builds a `List[RepoDataRecord]` from the packages in a
`RepoData` given the source of the data.

Examples
--------
```python
>>> from rattler import Channel
>>> repo_data = RepoData.from_path("../test-data/test-server/repo/noarch/repodata.json")
>>> repo_data.into_repo_data(Channel("test"))
[...]
>>>
```
)r   )rattler.repo_datar   r   repo_data_to_recordsrY   _channel_from_py_record)r*   rt   r   records   &&  r   into_repo_dataRepoData.into_repo_data   sP     	5 %99$//7K[K[\
\ **62\
 	
 
s   Ac                    V ^8  d   QhRRRR/# )r   py_repo_datar   r   rX   r   )r   s   "r   r   r\      s      j X r   c                4    V P                  V 4      pWn        V# )z8
Construct Rattler RepoData from FFI PyRepoData object.
)r    rY   )r!   r~   	repo_datas   && r   ra   RepoData._from_py_repo_data   s    
 KK$	+r   c                   V ^8  d   QhRR/# r1   r   )r   s   "r   r   r\      s     * *# *r   c                2    \        V 4      P                   R2# )z
Returns a representation of the RepoData.

Examples
--------
```python
>>> repo_data = RepoData.from_path("../test-data/test-server/repo/noarch/repodata.json")
>>> repo_data
RepoData()
>>>
```
z())r`   r7   r)   s   &r   r5   RepoData.__repr__   s     t*%%&b))r   r   N)r7   r8   r9   r:   r;   r<   r=   rb   r>   rf   rj   rp   r{   ra   r5   r?   r   r   r   rX   rX   ]   st     B B& - - ' 'H
,  * *r   rX   N)
__future__r   pathlibr   typingr   r   r   r   osr	   rattler.channelr
   rv   r   r   rattler.rattlerr   r   r   r   rA   rX   r   r   r   <module>r      sI    "  7 7 'C I IU UB+
 +
\]* ]*r   