+
    4j                      a 0 t $ R t^ RIHt ^ RIt^ RIHt ^RIHt ^RI	H
t
 ]'       d   ^ RIHt ^ RIHt ^RIHt R	tR
t]R]R/t]P'                  4        U u/ uF
  q ]! 4       bK  	  up tR]R&   ]P.                  ! RRP1                  ]P'                  4       4      ,           R,           4      tR R lt ! R R]4      tR R ltR R ltR# u up i )ad  Conflict-kind constants and PEP 508 marker-variable mapping.

A leaf module that :mod:`nab_python.config`, :mod:`nab_python.target`, and
:mod:`nab_python._lockfile.disjointness` can import without forming a
cycle.  :class:`nab_python.config.ConflictKind` takes its enum values from
``KIND_EXTRA`` / ``KIND_GROUP`` so a rename here flows to every consumer.
)annotationsN)TYPE_CHECKING)UndefinedComparison)	MarkerSet)Mapping)Set)Markerextragroupextrasdependency_groupszdict[str, frozenset[str]]EMPTY_MEMBERSHIP_SETSz\b(|z)\bc                    V ^8  d   QhRRRR/# )   marker_textstrreturnz
str | None )formats   "k/home/user/pdf2html-billing-ledger-validate/.venv/lib/python3.14/site-packages/nab_python/_conflict_kind.py__annotate__r   2   s     - -# -* -    c                b    \         P                  V 4      pV'       d   VP                  ^4      # R# )a  Return the lockfile-only set variable a marker tests, or ``None``.

A dependency marker that tests ``extras`` or ``dependency_groups`` is a
mistake (usually meant as ``extra ==``): those variables are defined only
when consuming a lockfile, so they are empty at resolve time.
N)_MEMBERSHIP_SET_PATTERNsearchr
   )r   matchs   & r   membership_set_in_markerr   2   s)     $**;7E"5;;q>,,r   c                      ] tR t^=tRtRtR# )UnevaluableMarkerErrora  A dependency marker parses but no comparison decides it.

PEP 508 accepts any operator between a variable and a literal, and PEP 440
gives the compatible-release operator a meaning only over a release with
at least two components.  So ``python_full_version ~= "3"`` is a valid
marker with nothing to evaluate, and ``sys_platform ~= "linux"`` is one on
a variable that holds no version at all.

A requirement the project declares is neither activated nor dropped by
such a marker, and either guess changes what gets locked, so the run stops
and names it.  A candidate's own metadata takes the other route:
``Provider.get_dependencies`` already turns metadata it cannot read into a
candidate skip.
r   N)__name__
__module____qualname____firstlineno____doc____static_attributes__r   r   r   r   r   =   s    r   r   c                    V ^8  d   QhRRRR/# )r   markerr   r   r   r   )r   s   "r   r   r   N   s     3 3v 3) 3r   c                ~     \         P                  ! V 4      #   \         d   pRT  RT 2p\        T4      ThRp?ii ; i)a4  Return the algebra form of ``marker``.

Each clause is checked against its operator while the set is built, so
this is the one place a marker with no meaning can be caught.  Raises
:class:`UnevaluableMarkerError` naming the whole marker, since the failing
clause alone does not say which dependency to edit.
zmarker z cannot be evaluated: N)r   from_markerr   r   )r'   excmsgs   &  r   
marker_setr,   N   sH    3$$V,, 3x5cU;$S)s23s    <7<c               $    V ^8  d   QhRRRRRR/# )r   r'   r   environmentz$Mapping[str, str | AbstractSet[str]]r   boolr   )r   s   "r   r   r   ]   s$     , ,,!E,	,r   c                    R\        4       /pVP                  V4       VP                  \        4       \        V 4      P	                  V4      # )ap  Evaluate a dependency marker for a resolve-time ``environment``.

``extra`` is set-valued: bound to the active extra names, ``extra == "x"``
tests membership and ``extra != "x"`` non-membership, both PEP 685
normalised.  It defaults to the empty set when ``environment`` omits it.

A standard variable a marker names but ``environment`` omits raises
``UndefinedEnvironmentName``; callers pass a complete
``ResolveTarget.marker_env``.  The lockfile-only set variables are seeded
empty, so a marker that tests one evaluates to False rather than raising.

A clause no comparison decides raises :class:`UnevaluableMarkerError`.
r	   )	frozensetupdater   r,   evaluate)r'   r.   envs   && r   dependency_marker_holdsr5   ]   s?      /6y{-CCJJ{JJ$%f&&s++r   )__conditional_annotations__r$   
__future__r   retypingr   _vendor.packaging.markersr   _vendor.packaging.markersetsr   collections.abcr   r   AbstractSetr   
KIND_EXTRA
KIND_GROUPMARKER_VARIABLE_FOR_KINDvaluesr1   r   __annotations__compilejoinr   r   
ValueErrorr   r,   r5   )variabler6   s   0@r   <module>rG      s    # 	   : 3'21

 #  +C*I*I*K4*Khik*K4 0  **
SXX.557886A 
-Z "3,i4s   C