Ë
    uÀYfç  ã                   ó(   — d dl mZ d dlmZ d„ Zd„ Zy)é    )ÚScopeManager)ÚBaseContextProviderc                 ó¶   — t        | «      j                  }|dk(  r%ddl}|j                  j                  j
                  }nddlm}  |«       }t        | |«       |S )z?Returns the context_provider to use with a given scope_manager.ÚAsyncioScopeManagerr   N)ÚDefaultContextProvider)	ÚtypeÚ__name__Úddtrace.contrib.asyncioÚcontribÚasyncioÚcontext_providerÚddtrace._trace.providerr   Ú_patch_scope_manager)Úscope_managerÚscope_manager_typeÚddtraceÚdd_context_providerr   s        úX/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/ddtrace/opentracer/utils.pyÚ&get_context_provider_for_scope_managerr   
   sV   € ô ˜mÓ,×5Ñ5Ðð Ð2Ò2Û&à%Ÿo™o×5Ñ5×FÑFÑåBá4Ó6Ðä˜Ð(;Ô<àÐó    c                 ód   ‡‡— t        | dd«      ryd| _        | j                  Šˆˆfd„}|| _        y)aÁ  
    Patches a scope manager so that any time a span is activated
    it'll also activate the underlying ddcontext with the underlying
    datadog context provider.

    This allows opentracing users to rely on ddtrace.contrib patches and
    have them parent correctly.

    :param scope_manager: Something that implements `opentracing.ScopeManager`
    :param context_provider: Something that implements `datadog.provider.BaseContextProvider`
    Ú_datadog_patchFNTc                  ót   •— |j                  d| d   «      }‰j                  |j                  «        ‰| i |¤ŽS )NÚspanr   )ÚgetÚactivateÚ_dd_context)ÚargsÚkwargsÚotspanr   Ú
old_methods      €€r   Ú_patched_activatez/_patch_scope_manager.<locals>._patched_activate3   s;   ø€ Ø—‘˜F D¨¡GÓ,ˆØ×!Ñ! &×"4Ñ"4Ô5Ù˜4Ð* 6Ñ*Ð*r   )Úgetattrr   r   )r   r   r"   r!   s    ` @r   r   r       s7   ù€ ô ˆ}Ð.°Ô6ØØ#'€MÔ à×'Ñ'€Jõ+ð
 /€MÕr   N)Úopentracingr   r   r   r   r   © r   r   ú<module>r&      s   ðÝ $å 7òó,/r   