
    Xjo                         d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
 ddlmZ ddlmZ dedefdZedefd	            Zdefd
Zg dZdS )a  
Caching and compatibility wrapper for standard library ``importlib.metadata``.

This module caches ``entry_points()`` to avoid reloading entry points from disk on every call.
It also normalizes minor differences across python versions 3.10+. References to issues:

- https://github.com/open-telemetry/opentelemetry-python/pull/4735
- https://github.com/open-telemetry/opentelemetry-python/pull/5203
    )cache)Distribution
EntryPointEntryPointsPackageNotFoundErrordistributionsrequiresversion)entry_points)Anyepsreturnc                     t          | t                    r| S t          d |                                 D                       S )Nc              3   $   K   | ]}|D ]}|V  d S N ).0	group_epseps      c/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/opentelemetry/util/_importlib_metadata.py	<genexpr>z#_as_entry_points.<locals>.<genexpr>    s/      LLi)LLBrLLLLLLL    )
isinstancer   values)r   s    r   _as_entry_pointsr      s>    #{## 
LL3::<<LLLLLLr   c                  8    t          t                                S r   )r   original_entry_pointsr   r   r   _original_entry_points_cachedr   #   s    133444r   c                  4     t                      j        di | S )Nr   )r   select)paramss    r   r   r   (   s"    1(**1;;F;;;r   )r   r
   r   r   r	   r   r   r   N)__doc__	functoolsr   importlib.metadatar   r   r   r   r   r	   r
   r   r   typingr   r   r   __all__r   r   r   <module>r'      s#                           E D D D D D      M# M+ M M M M 5{ 5 5 5 5<k < < < <	 	 	r   