+
    ,j/              
         ^ RI Ht ^ RIt^ RIHtHtHtHtHtH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RIHtHtHt ^ R	IHtHt ^ R
IHt ^ RIHtHt ^ RIH t  ^ RI!H"t" ]'       d   ^ RI#H$t$ ]R,          t% ]! 4       RRRRR]PL                  RRR3
R R llt'RRRR]PL                  RRR]PP                  3	R R llt)R# )    )annotationsN)TYPE_CHECKINGListLiteralOptionalSequenceUnion)Channel)ChannelPriority)	MatchSpec)PlatformPlatformLiteral)PyMatchSpecpy_solvepy_solve_with_sparse_repodata)Gateway_convert_sources)RepoDataRecord)SparseRepoDataPackageFormatSelection)GenericVirtualPackage)VirtualPackage)RepoDataSourcehighestc               L    V ^8  d   QhRRRRRRRRR	R
RR
RRRRRRRRRRRRRR/# )   sourcesz-Sequence[Union[Channel, str, RepoDataSource]]specsSequence[MatchSpec | str]gatewayr   	platformsz.Optional[Sequence[Platform | PlatformLiteral]]locked_packages"Optional[Sequence[RepoDataRecord]]pinned_packagesvirtual_packages:Optional[Sequence[GenericVirtualPackage | VirtualPackage]]timeoutOptional[datetime.timedelta]channel_priorityr   exclude_newer0Optional[datetime.datetime | datetime.timedelta]strategySolveStrategyconstraints#Optional[Sequence[MatchSpec | str]]returnList[RepoDataRecord] )formats   "5lib/python3.14/site-packages/rattler/solver/solver.py__annotate__r5      s     h h:h$h h >	h
 8h 8h Qh *h &h Dh h 5h h    c                  "   Ve   TM\         P                  ! 4       \        R4      .p\        \        V 4      V Uu. uF:  p\	        V\         4      '       d   VP
                  M\        V4      P
                  NK<  	  upV Uu. uF;  p\	        V\        4      '       d   VP                  M\        \        V4      RR4      NK=  	  upVP                  T;'       g    .  Uu. uF  qP                  NK  	  upT;'       g    .  Uu. uF  qP                  NK  	  upT;'       g    .  Uu. uF?  p\	        V\        4      '       d   VP                  4       P                  MVP                  NKA  	  upVP                  V'       d(   \!        V\"        P$                  ! ^R7      ,          4      MR\	        V	\"        P"                  4      '       dI   \!        V	P'                  \"        P(                  P*                  R7      P-                  4       R,          4      MR\	        V	\"        P$                  4      '       d   \!        V	P/                  4       4      MRT
VeI   V Uu. uF;  p\	        V\        4      '       d   VP                  M\        \        V4      RR4      NK=  	  upM. R7      G Rj  xL
  Uu. uF  p\0        P2                  ! V4      NK  	  up# u upi u upi u upi u upi u upi u upi  LFu upi 5i)a  
Resolve the dependencies and return the `RepoDataRecord`s
that should be present in the environment.

Arguments:
    sources: The sources to query for the packages. Can be channels (by name, URL,
             or Channel object) or custom RepoDataSource implementations.
    specs: A list of matchspec to solve.
    platforms: The platforms to query for the packages. If `None` the current platform and
            `noarch` is used.
    gateway: The gateway to use for acquiring repodata.
    locked_packages: Records of packages that are previously selected.
             If the solver encounters multiple variants of a single
             package (identified by its name), it will sort the records
             and select the best possible version. However, if there
             exists a locked version it will prefer that variant instead.
             This is useful to reduce the number of packages that are
             updated when installing new packages. Usually you add the
             currently installed packages or packages from a lock-file here.
    pinned_packages: Records of packages that are previously selected and CANNOT
             be changed. If the solver encounters multiple variants of
             a single package (identified by its name), it will sort the
             records and select the best possible version. However, if
             there is a variant available in the `pinned_packages` field it
             will always select that version no matter what even if that
             means other packages have to be downgraded.
    virtual_packages: A list of virtual packages considered active.
    channel_priority: (Default = ChannelPriority.Strict) When `ChannelPriority.Strict`
             the channel that the package is first found in will be used as
             the only channel for that package. When `ChannelPriority.Disabled`
             it will search for every package in every channel.
    timeout:    The maximum time the solver is allowed to run.
    exclude_newer: Exclude any record that is newer than the given datetime,
        or newer than the cutoff produced by subtracting a timedelta from now.
    strategy: The strategy to use when multiple versions of a package are available.

        * `"highest"`: Select the highest compatible version of all packages.
        * `"lowest"`: Select the lowest compatible version of all packages.
        * `"lowest-direct"`: Select the lowest compatible version for all
          direct dependencies but the highest compatible version of transitive
          dependencies.
    constraints: Additional constraints that should be satisfied by the solver.
        Packages included in the `constraints` are not necessarily installed,
        but they must be satisfied by the solution.

Returns:
    Resolved list of `RepoDataRecord`s.
NnoarchTmicrosecondstzinfo  )r   r!   r   r    r"   r$   r%   r)   r'   exclude_newer_timestamp_msexclude_newer_duration_secondsr,   r.   )r   currentr   r   
isinstance_innerr   _match_specr   str_gateway_recordr   into_generic_generic_virtual_packagevalueintdatetime	timedeltareplacetimezoneutc	timestamptotal_secondsr   _from_py_record)r   r   r    r!   r"   r$   r%   r'   r)   r*   r,   r.   platformspecpackage	v_package
constraintsolved_packages   &&&&&&&&&&&&      r4   solverY      s    ~ '2	9I9I9KXV^M_8`I %-$W- !* )H $.h#A#AxPXGYG`G`` ) "!D %/tY$?$?  [QTUYQZ\`bfEgg! $$<K<Q<Qr<QR<Q__<QR<K<Q<Qr<QR<Q__<QR
 "2!7!7R!7	 "8I i88 &&(AA778 "8	 .33IPC("4"4!"DDEVZ-):):;; (+=+@+@HYHYH]H]+@+^+h+h+jmq+q'r-););<< ,/}/J/J/L+M & #.	 #.J j)44 && Z$=> #.	 G$%
 $
 $
'$
N 	&&~6$
' '
 SR9$
's   :K0A K
<K0AKK0K0K2
K0=K0K
K0!K0&AK+K0 CK0AK$ K0"K)#K0)K+"K0+K0c               H    V ^8  d   QhRRRRRRRRRR	R
RRRRRRRRRRRRR/# )r   r   r   sparse_repodatazSequence[SparseRepoData]r"   r#   r$   r%   r&   r'   r(   r)   r   r*   r+   r,   r-   r.   r/   package_format_selectionr   r0   r1   r2   )r3   s   "r4   r5   r5      s     a a$a-a 8a 8	a
 Qa *a &a Da a 5a 5a ar6   c                ,  "   \        V  Uu. uF;  p\        V\        4      '       d   VP                  M\	        \        V4      RR4      NK=  	  upV Uu. uF  qP                  NK  	  upT;'       g    .  Uu. uF  qP                  NK  	  upT;'       g    .  Uu. uF  qP                  NK  	  upT;'       g    .  Uu. uF?  p\        V\        4      '       d   VP                  4       P                  MVP                  NKA  	  upVP                  V'       d(   \        V\        P                  ! ^R7      ,          4      MRV
P                  \        V\        P                  4      '       dI   \        VP                  \        P                   P"                  R7      P%                  4       R,          4      MR\        V\        P                  4      '       d   \        VP'                  4       4      MRTV	eI   V	 Uu. uF;  p\        V\        4      '       d   VP                  M\	        \        V4      RR4      NK=  	  upM. R7      G Rj  xL
  Uu. uF  p\(        P*                  ! V4      NK  	  up# u upi u upi u upi u upi u upi u upi  LFu upi 5i)a
  
Resolve the dependencies and return the `RepoDataRecord`s
that should be present in the environment.

This function is similar to `solve` but instead of querying for repodata
with a `Gateway` object this function allows you to manually pass in the
repodata.

Arguments:
    specs: A list of matchspec to solve.
    sparse_repodata: The repodata to query for the packages.
    locked_packages: Records of packages that are previously selected.
             If the solver encounters multiple variants of a single
             package (identified by its name), it will sort the records
             and select the best possible version. However, if there
             exists a locked version it will prefer that variant instead.
             This is useful to reduce the number of packages that are
             updated when installing new packages. Usually you add the
             currently installed packages or packages from a lock-file here.
    pinned_packages: Records of packages that are previously selected and CANNOT
             be changed. If the solver encounters multiple variants of
             a single package (identified by its name), it will sort the
             records and select the best possible version. However, if
             there is a variant available in the `pinned_packages` field it
             will always select that version no matter what even if that
             means other packages have to be downgraded.
    virtual_packages: A list of virtual packages considered active.
    channel_priority: (Default = ChannelPriority.Strict) When `ChannelPriority.Strict`
             the channel that the package is first found in will be used as
             the only channel for that package. When `ChannelPriority.Disabled`
             it will search for every package in every channel.
    timeout:    The maximum time the solver is allowed to run.
    exclude_newer: Exclude any record that is newer than the given datetime,
        or newer than the cutoff produced by subtracting a timedelta from now.
    strategy: The strategy to use when multiple versions of a package are available.

        * `"highest"`: Select the highest compatible version of all packages.
        * `"lowest"`: Select the lowest compatible version of all packages.
        * `"lowest-direct"`: Select the lowest compatible version for all
          direct dependencies but the highest compatible version of transitive
          dependencies.
    constraints: Additional constraints that should be satisfied by the solver.
        Packages included in the `constraints` are not necessarily installed,
        but they must be satisfied by the solution.
    package_format_selection: Defines which package formats are selected

Returns:
    Resolved list of `RepoDataRecord`s.
Tr9   Nr;   r=   )r   r[   r"   r$   r%   r)   r'   r\   r>   r?   r,   r.   )r   rA   r   rC   r   rD   _sparserF   r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r   rR   )r   r[   r"   r$   r%   r'   r)   r*   r,   r.   r\   rT   rU   rV   rW   rX   s   &&&&&&&&&&&     r4   solve_with_sparse_repodatar_      sa    @ %B "!D %/tY$?$?  [QTUYQZ\`bfEgg! =LLO__OL<K<Q<Qr<QR<Q__<QR<K<Q<Qr<QR<Q__<QR
 "2!7!7R!7	 "8I i88 &&(AA778 "8	 .33IPC("4"4!"DDEVZ%=%C%C-):):;; (+=+@+@HYHYH]H]+@+^+h+h+jmq+q'r-););<< ,/}/J/J/L+M & #.	 #.J j)44 && Z$=> #.	 ? %
  
  
# 
N 	&&~6 
# # MRR 1 
#s   
JAI/JI4
'
J2J7I9
JJI>/
J:J?AJJCJ8AJ9JJJJ,"JJ)r   lowestzlowest-direct)*
__future__r   rK   typingr   r   r   r   r   r	   rattler.channel.channelr
    rattler.channel.channel_priorityr   rattler.match_spec.match_specr   rattler.platform.platformr   r   rattler.rattlerr   r   r   rattler.repo_data.gatewayr   r   rattler.repo_data.recordr   rattler.repo_data.sparser   r   rattler.virtual_package.genericr   'rattler.virtual_package.virtual_packager   rattler.repo_data.sourcer   r-   StrictrY   PREFER_CONDAr_   r2   r6   r4   <module>rp      s    "  J J + < 3 ? P P ? 3 K A B7<= c y@D:>:>SW,0(7(>(>FJ'7;h\ ;?:>SW,0(7(>(>FJ'7;7M7Z7Za ar6   