+
    :1j                         R t ^ RIt^ RIHtHtHt ^ RIHt  ! R R]P                  4      t ! R R]P                  4      t	R# )zOMinimal set of interfaces required to describe shards code to clients (solvers)N)IterableIteratorKeysView)Literalc                   l   a  ] tR t^
t o ]V 3R lR l4       tV 3R lR ltV 3R lR ltV 3R ltRt	V t
R	# )
Shardsc                0   < V ^8  d   QhRS[ S[,          /#    return)r   str)format__classdict__s   "<lib/python3.14/site-packages/conda/gateways/shards/typing.py__annotate__Shards.__annotate__   s      x}     c                    R# )zDReturn the names of all packages available in this shard collection.N selfs   &r   package_namesShards.package_names   s     	r   c                &   < V ^8  d   QhRS[ RS[/# )r
   packager   )r   bool)r   r   s   "r   r   r      s     H HC HD Hr   c                    R# )z9Check if a package is available in this shard collection.Nr   )r   r   s   &&r   __contains__Shards.__contains__       r   c                F   < V ^8  d   QhRS[ S[S[S[3,          ,          /# r	   )r   tupler   dict)r   r   s   "r   r   r      s"      huS$Y'78 r   c                    R# )zE
Yield (filename, record) tuples for all packages in visited shards.
Nr   r   s   &r   iter_recordsShards.iter_records   r   r   c                &   < V ^8  d   Qh/ S[ ;R&   # )r
   base_url)r   )r   r   s   "r   r   r   
   s     M r   r   N)__name__
__module____qualname____firstlineno__propertyr   r   r$   __annotate_func____static_attributes____classdictcell__r   s   @r   r   r   
   s6       H H   r   r   c                   :   a  ] tR t^t o RtRV 3R lR lltRtV tR# )BuildRepodataSubsetaZ  
Protocol for build_repodata_subset callable.

This function is used by solvers to construct a minimal subset of repodata
based on the root packages that might be installed and the available channels.
It traverses package dependencies to discover all reachable (channel, package)
tuples, which are then used by the solver to reduce search space.
c                   < V ^8  d   QhRS[ S[,          RS[S[S[P                  3,          RS[R,          RS[RS[S[S[3,          R,          /# )r
   root_packageschannels	algorithmrepodata_versionr   N)bfs	pipelined)r   r   r"   typingAnyr   intr   )r   r   s   "r   r    BuildRepodataSubset.__annotate__%   sb      } sFJJ' -.	
  
c6k	T	!r   c                    R# )a  
Retrieve a minimal subset of repodata based on root packages.

Args:
    root_packages: Iterable of installed and requested package names
    channels: Dictionary mapping channel URLs to Channel objects
    algorithm: Traversal algorithm to use ("bfs" or "pipelined")
    repodata_version: repodata format version (1 = classic, 3 = v3).
Returns:
    A dictionary mapping channel URLs to Shards objects containing
    the subset of packages needed, or None if shards are unavailable
Nr   )r   r4   r5   r6   r7   s   &&&&&r   __call__BuildRepodataSubset.__call__%   r   r   r   N)r9      )r(   r)   r*   r+   __doc__r?   r.   r/   r0   s   @r   r2   r2      s       r   r2   )
rB   r:   collections.abcr   r   r   r   Protocolr   r2   r   r   r   <module>rE      s7    V  8 8 V__ "&// r   