ó
    Ð]jP5  ã            	      óŽ  • S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJrJr  S S	KJr  S S
KJr  S SKJr  S SKrSS1r0 SS_SS_SS_SS_SS_SS_SS_SS_SS_S S!_S"S#_S$S%_S&S'_S(S)_S*S+_S,S-_S.S/_0 S0S1_S2S3_S4S5_S6S7_S8S9_S:S9_S;S<_S=S>_S?S@_SASB_SCSD_SESF_SGSH_SISJ_SKS_SLSM_SNSO_ESPSSQSRSSSTSUSV.Er \ " SW SX5      5       r!SfSY jr"\SgSZ j5       r#ShS[ jr$SiS\ jr%SjS] jr&        SkS^ jr'        SlS_ jr(SmS` jr)SSa.       SnSb jjr*SoSc jr+SpSd jr,SqSe jr-g)ré    )ÚannotationsN)Ú	Generator)Úcontextmanager)Ú	dataclass)Úcast)ÚROUNDED)ÚConsoleÚGroup)ÚPanel)ÚRule)ÚTextÚurllibÚsqlite3z&opentelemetry-instrumentation-aio_pikaÚaio_pikaz,opentelemetry-instrumentation-aiohttp-clientÚaiohttp_clientz,opentelemetry-instrumentation-aiohttp-serverÚaiohttp_serverz#opentelemetry-instrumentation-aiopgÚaiopgz%opentelemetry-instrumentation-asyncpgÚasyncpgz"opentelemetry-instrumentation-botoÚbotoz&opentelemetry-instrumentation-botocoreÚbotocorez$opentelemetry-instrumentation-celeryÚceleryz-opentelemetry-instrumentation-confluent-kafkaÚconfluent_kafkaz$opentelemetry-instrumentation-djangoÚdjangoz+opentelemetry-instrumentation-elasticsearchÚelasticsearchz$opentelemetry-instrumentation-falconÚfalconz%opentelemetry-instrumentation-fastapiÚfastapiz#opentelemetry-instrumentation-flaskÚflaskz"opentelemetry-instrumentation-grpcÚgrpcz#opentelemetry-instrumentation-httpxÚhttpxz$opentelemetry-instrumentation-jinja2Újinja2z*opentelemetry-instrumentation-kafka-pythonÚkafka_pythonz#opentelemetry-instrumentation-mysqlÚmysqlz)opentelemetry-instrumentation-mysqlclientÚmysqlclientz"opentelemetry-instrumentation-pikaÚpikaz%opentelemetry-instrumentation-psycopgÚpsycopgz&opentelemetry-instrumentation-psycopg2z(opentelemetry-instrumentation-pymemcacheÚ
pymemcachez%opentelemetry-instrumentation-pymongoÚpymongoz%opentelemetry-instrumentation-pymysqlÚpymysqlz%opentelemetry-instrumentation-pyramidÚpyramidz#opentelemetry-instrumentation-redisÚredisz'opentelemetry-instrumentation-remouladeÚ	remouladez&opentelemetry-instrumentation-requestsÚrequestsz(opentelemetry-instrumentation-sqlalchemyÚ
sqlalchemyz%opentelemetry-instrumentation-sqlite3ú'opentelemetry-instrumentation-starletteÚ	starlettez%opentelemetry-instrumentation-tornadoÚtornadoÚtortoise_ormÚurllib3Úpydantic_aiÚ	anthropicÚopenaiÚopenai_agents)z)opentelemetry-instrumentation-tortoiseormz$opentelemetry-instrumentation-urllibú%opentelemetry-instrumentation-urllib3zpydantic-ai-slimr4   r5   zopenai-agentsc                  ó>   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	rg
)ÚInstrumentationContextéI   údict[str, str]Úinstrument_pkg_mapúset[str]Úinstalled_pkgsÚinstalled_otel_pkgsúset[tuple[str, str]]Úrecommendations© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__rB   ó    ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/logfire/_internal/cli/run.pyr9   r9   I   s   ‡ à&Ó&ØÓØ!Ó!Ø)Ö)rI   r9   c           	     óÎ  • [         R                  " 5         [        [        U R                  5      n[        [
        [           U R                  5      n[        U5      n[        UR                  UR                  5      nU(       aK  [        [        R                  S9n[        UR                  XCR                   5      n[#        XVUR$                  S9  U R&                  n[        R(                  R+                  S[,        R.                  " 5       5        U R0                  =n(       aJ  Un	[3        SU 3/U	-   SU SSR5                  U	5       35         [6        R8                  " USSS	9  S S S 5        g U(       a²  US   n
[,        R(                  R;                  [,        R(                  R=                  U
5      5      nU[        R(                  ;  a   [        R(                  R+                  SU5        [3        US
SR5                  U5       35         [6        R>                  " U
SS9  S S S 5        g [A        S5        [        RB                  " S5        g ! , (       d  f       g = f! , (       d  f       g = f)N)Úfile)ÚconsoleÚinstrumented_packages_textrA   r   z-m z
python -m Ú Ú__main__T)Úrun_nameÚ	alter_syszpython )rQ   zHUsage: logfire run [-m MODULE] [args...] OR logfire run SCRIPT [args...]é   )"ÚlogfireÚ	configurer   ÚboolÚsummaryÚsetÚstrÚexcludeÚcollect_instrumentation_contextÚinstrument_packagesr?   r<   r	   ÚsysÚstderrrN   r>   Úprint_otel_summaryrA   Úscript_and_argsÚpathÚinsertÚosÚgetcwdÚmoduleÚalter_sys_argvÚjoinÚrunpyÚ
run_moduleÚdirnameÚabspathÚrun_pathÚprintÚexit)ÚargsrW   rZ   ÚctxÚinstrumented_packagesrM   Úinstrumentation_textr`   Úmodule_nameÚmodule_argsÚscript_pathÚ
script_dirs               rJ   Ú	parse_runrw   Q   sÎ  € Ü×ÒÔä”4˜Ÿ™Ó&€GÜ”3”s‘8˜TŸ\™\Ó*€Gä
)¨'Ó
2€Cä/°×0GÑ0GÈ×I_ÑI_Ó`ÐæÜœsŸz™zÑ*ˆÜ9Ø×#Ñ#Ð%:×<NÑ<Nó 
Ðô 	ØÐ^a×^qÑ^qò	
ð
 ×*Ñ*€Oô ‡H�H‡O�O�A”r—y’y“{Ô#à—k‘kÐ!€{Õ!Ø%ˆô ˜s ; -Ð0Ð1°KÑ?À:ÈkÈ]ÐZ[Ð\_×\dÑ\dÐepÓ\qÐ[rÐAsÕtÜ×Ò˜[°:ÈÒN÷ uÐtæ	à% aÑ(ˆô —W‘W—_‘_¤R§W¡W§_¡_°[Ó%AÓBˆ
ØœSŸX™XÓ%Ü�H‰H�O‰O˜A˜zÔ*ä˜O¨w°s·x±xÀÓ7PÐ6QÐ-RÕSÜ�NŠN˜;°Ò<÷ TÐSô 	ÐXÔYÜ�Š��÷ uÕtú÷ TÕSús   Å
IÈIÉ
IÉ
I$c              #  óÈ   #   • [         R                  R                  5       nU [         l         [        R                  " SUS9  S v •  U[         l        g ! U[         l        f = f7f)NzRunning command: {cmd_str})Úcmd_str)r]   ÚargvÚcopyrT   Úinfo)rz   ÚcmdÚ	orig_argvs      rJ   rf   rf   „   s@   é € ä—‘—‘“€IØ„C„HðÜ�ŠÐ1¸3Ò?ÛàŒ�ø�9Œ�üs   ‚*A"­A ÁA"ÁAÁA"c                 ó2   • [         R                  " S5      SL$ )zCCheck if uv package manager is installed and available in the PATH.ÚuvN)ÚshutilÚwhichrB   rI   rJ   Úis_uv_installedrƒ   �   s   € ä�<Š<˜Ó TÐ)Ð)rI   c                ó$  • / n[         R                  R                  SS5        [         R                  R                  SS5        U  H6  nUR                  SS5      nX   n [	        U5        UR                  U5        M8     U$ ! [
         a     MI  f = f)z‡Call every `logfire.instrument_x()` we can based on what's installed.

Returns a list of packages that were successfully instrumented.
ÚLANGSMITH_OTEL_ENABLEDÚtrueÚLANGSMITH_TRACING_ENABLEDúopentelemetry-instrumentation-Ú )rc   ÚenvironÚ
setdefaultÚreplaceÚinstrument_packageÚ	ExceptionÚappend)Úinstalled_otel_packagesr<   ÚinstrumentedÚotel_pkg_nameÚbase_pkgÚimport_names         rJ   r\   r\   ”   s•   € ð
 !€Lô ‡J�J×ÑÐ2°FÔ;Ü‡J�J×ÑÐ5°vÔ>ó 1ˆØ ×(Ñ(Ð)IÈ2ÓNˆà(Ñ7ˆð	Ü˜{Ô+ð 	×Ñ˜HÖ%ñ 1ð Ðøô ó 	Úð	ús   ÁBÂ
BÂBc                ó8   • SU  3n[        [        U5      " 5         g )NÚinstrument_)ÚgetattrrT   )r”   Úinstrument_attrs     rJ   r�   r�   ¬   s   € Ø# K =Ð1€OÜŒG�_Ô%Õ'rI   c                óü   • [        5       nU R                  5        H/  u  pEXA;   a  M  XR;   d  U[        ;   d  M  UR                  XE45        M1     SU;   a  UR	                  S5        SU;   a  UR	                  S5        U$ )aÓ  Determine which OpenTelemetry instrumentation packages are recommended for installation.

Args:
    instrument_pkg_map: Mapping of instrumentation package names to the packages they instrument.
    installed_otel_pkgs: Set of already installed instrumentation package names.
    installed_pkgs: Set of all installed package names.

Returns:
    Set of tuples where each tuple is (instrumentation_package, target_package) that
        is recommended for installation.
r   )r.   r/   r,   )r7   r2   )rX   ÚitemsÚSTANDARD_LIBRARY_PACKAGESÚaddÚdiscard)r<   r?   r>   rA   Úotel_pkgÚrequired_pkgs         rJ   Ú,find_recommended_instrumentations_to_installr    ±   s�   € ô  -0«E€Oà"4×":Ñ":Ö"<ÑˆàÓ*Ùð Ó)¨\Ô=VÕ-VØ×Ñ Ð 8Ö9ñ #=ð �NÓ"Ø×ÑÐ XÔYà�^Ó#Ø×ÑÐ TÔUàÐrI   c                ó  • SU;   a  U R                  S5        SU;   a  U R                  S5        [        S5      n[        U 5       HD  nUR                  SS5      nXQ;   a  UR	                  SU S	3S
S9  M0  UR	                  SU S3SS9  MF     U$ )Nr   r.   r,   r7   z!Your instrumentation checklist:

rˆ   r‰   u   âœ“ z (installed and instrumented)
Úgreen©Ústyleu   âš ï¸� z0 (installed but not automatically instrumented)
Úyellow)r�   r   ÚsortedrŒ   r�   )r?   rq   r>   ÚtextÚpkg_namer“   s         rJ   rN   rN   Ö   s¥   € ð �NÓ"Ø×#Ñ#Ð$MÔNØ�^Ó#Ø×#Ñ#Ð$KÔLäÐ5Ó6€DÜÐ.Ö/ˆØ×#Ñ#Ð$DÀbÓIˆØÓ,Ø�K‰K˜$˜x˜jÐ(GÐHÐPWˆKÓXð �K‰K˜' ( Ð+\Ð]ÐemˆKÓnñ 0ð €KrI   c                ó0  • [        U 5      n[        5       nU H  u  p4UR                  SU SU S3SS9  M     UR                  S5        [        5       nU (       a;  UR                  S5        UR                  [        U5      SS9  UR                  S5        X%4$ )	zEReturn (recommended_packages_text, install_all_text) as Text objects.u   â˜� z (need to install z)
Úgrey50r£   Ú
z3To install all recommended packages at once, run:

Úbold)r¦   r   r�   Ú_full_install_command)rA   Úsorted_recommendationsÚrecommended_textr¨   Úinstrumented_pkgÚinstall_texts         rJ   Úget_recommendation_textsr²   ë   s¢   € ä# OÓ4ÐÜ“vÐÛ&<Ñ"ˆØ×Ñ $Ð'7Ð&8Ð8JÈ8È*ÐTWÐ XÐ`hÐÓiñ '=à×Ñ˜DÔ!ä“6€LÞØ×ÑÐSÔTØ×ÑÔ1Ð2HÓIÐQWÐÑXØ×Ñ˜DÔ!ØÐ)Ð)rI   )rN   c                óB  • [        SSS9nUR                  SSS9  UR                  SSS9  [        SS9n[        U5      u  pVU(       a  X-   nOUn[	        UUUU5      n[        USS[        S	S
9n	U R                  S5        U R                  U	5        U R                  5         g )Nz 
To hide this summary box, use: Úitalicr£   zlogfire run --no-summaryzitalic boldÚ.Úbluez&[bold blue]Logfire Summary[/bold blue])rS   é   )ÚtitleÚborder_styleÚboxÚpaddingr«   )r   r�   r   r²   r
   r   r   rm   )
rM   rN   rA   Ú	hide_noteÚfooter_ruleÚrecommended_packages_textÚinstall_all_textÚpackages_textÚcontentÚpanels
             rJ   r_   r_   û   s½   € ô Ð8ÀÑI€IØ×ÑÐ/°}ÐÑEØ×Ñ�S ÐÑ)ô ˜VÑ$€Kô 3KÈ?Ó2[Ñ/Ðö "Ø2ÑN‰à1ˆô ØØØØó	€Gô ØØ6ØÜØñ€Eð ‡M�M�$ÔØ‡M�M�%ÔØ‡M�M…OrI   c                 óÀ  •  [         R                  R                  5        V s1 s H  o R                  S   R                  5       iM!     sn $ s  sn f ! [        [
        4 a}    [        R                  " 5          [        R                  " S[        S9  SSK
nUR                   Vs1 s H  o"R                  iM     Os  snf snsSSS5        s $ ! , (       d  f        g= ff = f)z$Get a set of all installed packages.ÚNameÚignore)Úcategoryr   N)Ú	importlibÚmetadataÚdistributionsÚlowerÚImportErrorÚAttributeErrorÚwarningsÚcatch_warningsÚfilterwarningsÚUserWarningÚpkg_resourcesÚworking_setÚkey)ÚdistrÑ   Úpkgs      rJ   Úinstalled_packagesrÖ   (  s¡   € ð	Bä:C×:LÑ:L×:ZÑ:ZÔ:\Ó]Ò:\°$—‘˜fÑ%×+Ñ+Ö-Ñ:\Ñ]Ð]ùÒ]øÜœÐ(ó Bä×$Ò$Õ&Ü×#Ò# H´{ÒCÛ à'4×'@Ò'@ÓAÒ'@ —G”GÒ'@ùÔA÷	 '×&×&Ò&úðBúsF   ‚ A ¢&AÁA ÁA Á%CÁ5,C
Â!B7Â6C
Â>
CÃ

C	ÃCÃCc                ó¸   • U (       d  gU  VVs/ s H  u  pUPM	     nnn[        5       (       a  SSR                  U5       3$ SSR                  U5       3$ s  snnf )z?Generate a command to install all recommended packages at once.r‰   zuv add rO   zpip install )rƒ   rg   )rA   r¨   Ú_Úpackage_namess       rJ   r­   r­   6  s]   € æØá1@ÔA²¡+ (“X±€MÑAô ×ÑØ˜Ÿ™ -Ó0Ð1Ð2Ð2à˜cŸh™h }Ó5Ð6Ð7Ð7ùó Bs   ŽAc                ó  • [         R                  5        VVs0 s H  u  pX ;  d  M  X_M     nnn[        5       nUR                  5        Vs1 s H  o"U;   d  M
  UiM     nn[	        X5U5      n[        UUUUS9$ s  snnf s  snf )zFCollects all relevant context for instrumentation and recommendations.)r<   r>   r?   rA   )ÚOTEL_INSTRUMENTATION_MAPrš   rÖ   Úkeysr    r9   )rZ   rž   rÕ   r<   r>   r?   rA   s          rJ   r[   r[   E  sŽ   € ä=U×=[Ñ=[Ô=]ÔtÒ=]©M¨HÐadÑas›-˜(š-Ñ=]ÐÑtÜ'Ó)€NØ*<×*AÑ*AÔ*CÓ]Ò*C 3ÈnÑG\Ÿ3Ñ*CÐÐ]ÜBØ°ó€Oô "Ø-Ø%Ø/Ø'ñ	ð ùó uùâ]s   ˜A9§A9Á	A?ÁA?)ro   zargparse.NamespaceÚreturnÚNone)rz   ú	list[str]r}   rY   rÝ   zGenerator[None, None, None])rÝ   rV   )r�   r=   r<   r;   rÝ   rß   )r”   rY   )r<   r;   r?   r=   r>   r=   rÝ   r@   )r?   r=   rq   rß   r>   r=   rÝ   r   )rA   r@   rÝ   ztuple[Text, Text])rM   r	   rN   zText | NonerA   r@   rÝ   rÞ   )rÝ   r=   )rA   zlist[tuple[str, str]]rÝ   rY   )rZ   r=   rÝ   r9   ).Ú
__future__r   Ú_annotationsÚargparserÇ   Úimportlib.metadatarc   rh   r�   r]   rÍ   Úcollections.abcr   Ú
contextlibr   Údataclassesr   Útypingr   Úrich.boxr   Úrich.consoler	   r
   Ú
rich.panelr   Ú	rich.ruler   Ú	rich.textr   rT   r›   rÛ   r9   rw   rf   rƒ   r\   r�   r    rN   r²   r_   rÖ   r­   r[   rB   rI   rJ   Ú<module>rí      så  ðÝ 2ã Û Û Û 	Û Û Û 
Û Ý %Ý %Ý !Ý å ß 'Ý Ý Ý ã à% yÐ1Ð ð+Ø,¨jð+à2Ð4Dð+ð 3Ð4Dð+ð *¨7ð	+ð
 ,¨Yð+ð )¨&ð+ð -¨jð+ð +¨Hð+ð 4Ð5Fð+ð +¨Hð+ð 2°?ð+ð +¨Hð+ð ,¨Yð+ð *¨7ð+ð )¨&ð+ð  *¨7ð!+ð" +¨Hñ#+ð$ 1°.ð%+ð& *¨7ð'+ð( 0°ð)+ð* )¨&ð++ð, ,¨Yð-+ð. -¨ið/+ð0 /°ð1+ð2 ,¨Yð3+ð4 ,¨Yð5+ð6 ,¨Yð7+ð8 *¨7ð9+ð: .¨{ð;+ð< -¨jð=+ð> /°ð?+ð@ ,¨YðA+ðB .¨{ðC+ðD ,¨YñE+ðF 2@Ø,4Ø-6à%ØØØ$òU+Ð ð\ ÷*ð *ó ð*ô0ðf óó ðô*ô
ô0(ð
"Ø&ð"à!ð"ð ð"ð ô	"ðJØ!ðØ:CðØU]ðà	ôô**ð& /3ñ*àð*ð !,ð*ð *ð	*ð
 
õ*ôZBô8õrI   