+
    kGj                       a  0 t $ R t^ RIHt ^ RIt^ RIt^ RIHt ]P                  ! ]P                  ! RR4      ;'       g    R4      t
R]R&   ]! ]
4      tR]R	&   / tR]R
&   R R ltRR R lltR R ltR# )u  PyPI ↔ conda package name mapping.

The default table is ``grayskull_pypi_mapping.json`` (regro/grayskull). Keys are
canonical PyPI names, resolved the same way as the table via
:func:`packaging.utils.canonicalize_name`.

When a name is missing from the table, the conda name is derived from the
original string: lowercase, underscores become hyphens, dots are unchanged.
That often matches conda-forge dotted packages; canonical form alone would map
``jaraco.tidelift`` to ``jaraco-tidelift``.

Grayskull (or a custom dict for :func:`pypi_to_conda_name`) is still required
when the conda package name does not follow that rule, for example
``typing-extensions`` → ``typing_extensions``.
)annotationsN)canonicalize_name
conda_pypizgrayskull_pypi_mapping.jsonz{}zdict[str, dict]grayskull_pypi_mappingdefault_pypi_mapping_to_pypi_name_mapc                    V ^8  d   QhRRRR/# )   	pypi_namestrreturn )formats   "7lib/python3.14/site-packages/conda_pypi/name_mapping.py__annotate__r   !   s     7 7C 7C 7    c                ^    V P                  4       P                  4       P                  R R4      # )_-)striplowerreplace)r
   s   &r   _unmapped_conda_namer   !   s%    ??""$,,S#66r   c               $    V ^8  d   QhRRRRRR/# )r	   r
   r   pypi_to_conda_name_mappingzdict | Noner   r   )r   s   "r   r   r   %   s"     % %# %; %Z] %r   c                    V P                  4       p\        V4      pVe   TM\        pVP                  V4      pVe
   VR,          # \	        V4      # )N
conda_name)r   r   r   getr   )r
   r   rawkeytableentrys   &&    r   pypi_to_conda_namer"   %   sX    
//
C
C
 C &1 	#! 

 IIcNE\""$$r   c                    V ^8  d   QhRRRR/# )r	   namer   r   r   )r   s   "r   r   r   3   s     
# 
#S 
#S 
#r   c                    \         '       g.   \        P                  4        F  pVR ,          pV\         V&   K  	  \         P                  V 4      pV'       d
   VR,          p \	        V 4      # )r   r
   )r   r   valuesr   r   )r$   valuer   founds   &   r   conda_to_pypi_namer)   3   sZ    )002E|,J,1j) 3
 !!$'E[!T""r   )N)__conditional_annotations____doc__
__future__r   jsonpkgutilpackaging.utilsr   loadsget_datar   __annotations__dictr   r   r   r"   r)   )r*   s   @r   <module>r4      su     #   -*.**\#@AIIT+   )--C(D o D%' ? '7%
#r   