Ë
    úmxi_F  ã                  ó.  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
mZ d dlmZ d dlmZmZmZmZmZ d dlmZmZmZ d dlmZ d dlmZ d d	lmZmZ d d
lm Z  d dl!m"Z"  ee#«      Z$de%d<   dZ&de%d<   dZ'de%d<   dddddddddddœ
Z(de%d<   g d¢Z)de%d<   d Z*d!Z+d2d"„Z,d2d#„Z- G d$„ d%«      Z.d3d&„Z/d4d'„Z0d5d(„Z1	 	 	 	 	 	 	 	 	 	 d6d)„Z2d7d*„Z3 ed+e
d,ef   ¬-«      Z4e	 	 	 	 	 	 d8d.„«       Z5e	 d9	 	 	 	 	 d:d/„«       Z5d9d;d0„Z5	 d9	 	 	 	 	 	 	 	 	 d<d1„Z6y)=é    )ÚannotationsN)ÚCallableÚSized)Úwraps)ÚAnyÚFinalÚTypeVarÚcastÚoverload)ÚconfigÚ	file_utilÚutil)Ú
get_logger)Ú
ForwardMsg)ÚArgumentÚCommand)ÚRerunException)Úget_script_run_ctxr   Ú_LOGGERéÈ   Ú_MAX_TRACKED_COMMANDSé   Ú_MAX_TRACKED_PER_COMMANDÚDGÚ	DataFrameÚPlotlyFigureÚBokehFigureÚMatplotlibFigureÚPandasStylerÚPandasIndexÚPandasSeriesÚSnowparkConnectionÚSQLConnection)
z(streamlit.delta_generator.DeltaGeneratorzpandas.core.frame.DataFramez plotly.graph_objs._figure.Figurezbokeh.plotting.figure.Figurezmatplotlib.figure.Figurezpandas.io.formats.style.Stylerzpandas.core.indexes.base.Indexzpandas.core.series.Seriesz<streamlit.connections.snowpark_connection.SnowparkConnectionz2streamlit.connections.sql_connection.SQLConnectionÚ_OBJECT_NAME_MAPPING)©ÚpymysqlÚMySQLdbÚmysqlÚpymongoÚibisÚboto3Úpsycopg2Úpsycopg3Ú
sqlalchemyÚelasticsearchÚpyodbcÚpymssqlÚ	cassandraÚazureÚredisÚsqlite3Úneo4jÚduckdbÚopensearchpyÚsupabaseÚ
databricksÚpolarsÚdaskÚvaexÚmodinÚpysparkÚcudfÚxarrayÚrayÚ	geopandasÚmarsÚtablesÚzarrÚdatasetsÚdaftÚ	mistralaiÚopenaiÚ	langchainÚllama_indexÚ	llama_cppÚ	anthropicÚ
pyllamacppÚcohereÚtransformersÚnomicÚ	diffusersÚsemantic_kernelÚ	replicateÚhuggingface_hubÚwandbÚtorchÚ
tensorflowÚtrubricsÚcomet_mlÚclarifaiÚrekaÚhegelÚfastchatÚ
assemblyaiÚopenllmÚ
embedchainÚhaystackÚvllmÚalpaÚjinaaiÚguidanceÚlitellmÚ	comet_llmÚ
instructorÚxgboostÚlightgbmÚcatboostÚsklearnÚpydantic_aiÚ	datachainÚdoclingÚlitserveÚcrawl4aiÚbaml_clientÚbrowser_useÚcrewaiÚunslothÚ	langgraphÚdspyÚultralyticsri   ÚragasÚswarmÚfaster_whisperÚmemoriÚautogen_agentchatÚxai_sdkÚagnoÚlangfuseÚ
smolagentsÚollamaÚgroqÚtogetherÚai21ÚmarvinÚoutlinesÚ
guardrailsÚ
promptflowÚsemantic_routerÚmem0ÚaisuiteÚmlflowÚoptunaÚkerasÚjaxÚshapÚ	evidentlyÚgreat_expectationsÚbentomlÚmodalÚ	sagemakerÚvertexaiÚtiktokenÚsentence_transformersÚspacyÚnltkÚonnxruntimeÚllama_api_clientÚprefectÚluigiÚairflowÚdagsterÚceleryÚpgvectorÚfaissÚannoyÚpineconeÚchromadbÚweaviateÚqdrant_clientÚpymilvusÚlancedbÚ	snowflakeÚpydanticÚfastapiÚ	starletteÚ
playwrightÚfoliumrB   ÚhttpxÚ	pyechartsÚfastplotlibÚpygfxÚhighcharts_coreÚseabornÚgraphvizÚ
matplotlibÚuvloopÚorjsonÚrichÚstreamlit_extrasÚstreamlit_pydanticÚ	pygwalkerÚplotlyÚbokehÚplostÚauthlibÚpypdfÚ
pdfplumberÚdocxÚopenpyxlÚ
xlsxwriterÚcv2Ú	mediapipeÚ_ATTRIBUTIONS_TO_CHECKz/etc/machine-idz/var/lib/dbus/machine-idc                 ó¨  — t         j                  j                  t        «      r*t	        t        «      5 } | j                  «       }ddd«       |S t         j                  j                  t        «      r*t	        t        «      5 } | j                  «       }ddd«       |S t        t        j                  «       «      }|S # 1 sw Y   S xY w# 1 sw Y   S xY w)aD  Get the machine ID.

    This is a unique identifier for a user for tracking metrics,
    that is broken in different ways in some Linux distros and Docker images.
    - at times just a hash of '', which means many machines map to the same ID
    - at times a hash of the same string, when running in a Docker container
    N)
ÚosÚpathÚisfileÚ_ETC_MACHINE_ID_PATHÚopenÚreadÚ_DBUS_MACHINE_ID_PATHÚstrÚuuidÚgetnode)ÚfÚ
machine_ids     úU/home/htdocs/ttos/venv/lib/python3.12/site-packages/streamlit/runtime/metrics_util.pyÚ_get_machine_id_v3rÛ   ô   s¬   € ô 
‡w�w‡~�~Ô*Ô+ÜÔ&Ó'ð 	"¨1ØŸ™›ˆJ÷	"ð Ðô 
�‰�‰Ô-Ô	.ÜÔ'Ó(ð 	"¨AØŸ™›ˆJ÷	"ð Ðô œŸ™›Ó(ˆ
àÐ÷	"ð Ðú÷	"ð Ðús   ³B:Â CÂ:CÃCc                 óÌ  — t        j                  d«      syt        j                  d«      } d}t        j
                  j                  | «      r.t        j                  | «      5 }|j                  «       }ddd«       |sNt        t        j                  «       «      }t        j                  | «      5 }|j                  |«       ddd«       |S |S # 1 sw Y   Œ[xY w# 1 sw Y   |S xY w)a  Get a random ID that is stable for each machine, generating if needed.

    This is a unique identifier for a user for tracking metrics.
    Instead of relying on a hardware address in the container or host we'll
    generate a UUID and store it in the ~/.streamlit hidden folder.
    zbrowser.gatherUsageStatszno-machine-id-v4Úmachine_id_v4N)r   Ú
get_optionr   Úget_streamlit_file_pathrÎ   rÏ   ÚexistsÚstreamlit_readrÓ   rÕ   rÖ   Úuuid4Ústreamlit_writeÚwrite)ÚfilepathÚ	stable_idÚfileÚoutputs       rÚ   Ú_get_machine_id_v4ré     sÃ   € ô ×ÑÐ7Ô8ð "ä×0Ñ0°ÓA€HØ€Iä	‡w�w‡~�~�hÔÜ×%Ñ% hÓ/ð 	$°4ØŸ	™	›ˆI÷	$ñ ÜœŸ
™
›Ó%ˆ	Ü×&Ñ& xÓ0ð 	$°FØ�L‰L˜Ô#÷	$ð Ðˆ9Ð÷	$ð 	$ú÷
	$ð Ðús   Á"CÂ/CÃCÃC#c                  ór   — e Zd ZU  ej                  «       ZdZded<   edd„«       Z	d	d„Z
d
d„Zed
d„«       Zy)ÚInstallationNzInstallation | NoneÚ	_instancec                óØ   — | j                   €<| j                  5  | j                   €t        «       | _         ddd«       | j                   S | j                   S # 1 sw Y   | j                   S xY w)z#Returns the singleton Installation.N)rì   Ú_instance_lockrë   )Úclss    rÚ   ÚinstancezInstallation.instance-  s[   € ð �=‰=Ð Ø×#Ñ#ñ 3Ø—=‘=Ð(Ü$0£N�C”M÷3ð �}‰}Ðˆs�}‰}Ð÷	3ð �}‰}Ðús   ™AÁA)c                ó–   — t        t        j                  t        j                  t	        «       «      «      | _        t        «       | _        y ©N)rÕ   rÖ   Úuuid5ÚNAMESPACE_DNSrÛ   Úinstallation_id_v3ré   Úinstallation_id_v4©Úselfs    rÚ   Ú__init__zInstallation.__init__:  s4   € Ü"%Ü�J‰J”t×)Ñ)Ô+=Ó+?Ó@ó#
ˆÔô #5Ó"6ˆÕó    c                ó,   — t        j                  | «      S rò   )r   Úrepr_r÷   s    rÚ   Ú__repr__zInstallation.__repr__A  s   € Ü�z‰z˜$ÓÐrú   c                ó   — | j                   S rò   )rõ   r÷   s    rÚ   Úinstallation_idzInstallation.installation_idD  s   € à×&Ñ&Ð&rú   )Úreturnrë   )r   ÚNone©r   rÕ   )Ú__name__Ú
__module__Ú__qualname__Ú	threadingÚLockrî   rì   Ú__annotations__Úclassmethodrð   rù   rý   Úpropertyrÿ   © rú   rÚ   rë   rë   )  sK   … Ø#�Y—^‘^Ó%€NØ%)€IÐ"Ó)àò
ó ð
ó7ó ð ò'ó ñ'rú   rë   c                óp  — t        j                  t        «      5  t        j                  | «      r| n
t        | «      }d}t        |d«      r|j                  }nt        |d«      r|j                  }|j                  dk7  r|j                  › d|› �}|t        v r	t        |   }|cddd«       S # 1 sw Y   yxY w)z7Get a simplified name for the type of the given object.Úunknownr  r  Úbuiltinsú.NÚfailed)Ú
contextlibÚsuppressÚ	ExceptionÚinspectÚisclassÚtypeÚhasattrr  r  r  r$   )ÚobjÚobj_typeÚ	type_names      rÚ   Ú_get_type_namer  I  sª   € ä	×	Ñ	œYÓ	'ñ Ü!Ÿ/™/¨#Ô.‘3´D¸³IˆØˆ	Ü�8˜^Ô,Ø ×-Ñ-‰IÜ�X˜zÔ*Ø ×)Ñ)ˆIà×Ñ *Ò,à#×.Ñ.Ð/¨q°°Ð<ˆIàÔ,Ñ,Ü,¨YÑ7ˆIØ÷÷ ñ ð ús   šBB,Â,B5c                ó†   — t        j                  | «      }|�|j                  sy|j                  j                  d«      d   S )z0Get the top level module for the given function.r  r  r   )r  Ú	getmoduler  Úsplit)ÚfuncÚmodules     rÚ   Ú_get_top_level_moduler!  ]  s:   € ä×Ñ˜tÓ$€FØ€~˜VŸ_š_ØØ�?‰?× Ñ  Ó% aÑ(Ð(rú   c                óì   — t        j                  t        «      5  t        | t        «      rd| › �cddd«       S t        | t
        «      rdt        | «      › �cddd«       S 	 ddd«       y# 1 sw Y   yxY w)zBGet metadata information related to the value of the given object.zval:Nzlen:)r  r  r  Ú
isinstanceÚboolr   Úlen)Úargs    rÚ   Ú_get_arg_metadatar'  e  sp   € ä	×	Ñ	œYÓ	'ñ %Ü�cœDÔ"Ø˜#˜�<÷%ñ %ô �cœ5Ô!Øœ#˜c›(˜Ð$÷%ñ %ð "÷	%ð ÷%ð ús   šA*¹A*Á*A3c                ó  — t        j                  | «      j                  }d}g }t        j                  | «      }|}t	        |«      D ]h  \  }	}
|	}|r|	dz   }	t        |«      |	kD  r||	   n|	› }|dk(  r|
}Œ-t        |t        |
«      |¬«      }t        |
«      }|r||_	        |j                  |«       Œj |j                  «       D ]@  \  }}t        |t        |«      ¬«      }t        |«      }|r||_	        |j                  |«       ŒB t        | «      }|dk7  rd|› d|› �}|d	k(  r)|r't        |d
«      r|j                  rd|j                  › �}|dk(  r+t        |«      dkD  rt        |d   t         «      r
|d   }d|› �}t#        ||¬«      S )zCGet telemetry information for the given callable and its arguments.Né   rø   )ÚkÚtÚp)r*  r+  Ú	streamlitz	external:ú:Úcreate_instanceÚnamez
component:Ú_bidi_componentzcomponent_v2:)r0  Úargs)r  Úgetfullargspecr2  ÚismethodÚ	enumerater%  r   r  r'  ÚmÚappendÚitemsr!  r  r0  r#  rÕ   r   )Ú_command_funcÚ_command_namer2  ÚkwargsÚarg_keywordsÚself_argÚ	argumentsÚ	is_methodr0  Úir&  ÚposÚkeywordÚargumentÚarg_metadataÚkwargÚkwarg_valueÚtop_level_moduleÚcomponent_names                      rÚ   Ú_get_command_telemetryrI  q  s­  € ô ×)Ñ)¨-Ó8×=Ñ=€LØ€HØ "€IÜ× Ñ  Ó/€IØ€Dä˜D“/ò #‰ˆˆ3ØˆÙà�A‘ˆAä%(¨Ó%6¸Ò%:�,˜q’/À1À#ˆØ�fÒØˆHØÜ˜g¬¸Ó)<ÀÔDˆä(¨Ó-ˆÙØ%ˆHŒJØ×Ñ˜Õ"ð#ð  %Ÿl™l›nò #Ñˆˆ{Ü˜e¤~°kÓ'BÔCˆä(¨Ó5ˆÙØ%ˆHŒJØ×Ñ˜Õ"ð#ô -¨]Ó;ÐØ˜;Ò&ð Ð+Ð,¨A¨d¨VÐ4ˆð 	Ð!Ò!ÙÜ�H˜fÔ%Ø�MŠMà˜HŸM™M˜?Ð+ˆàÐ Ò ¤S¨£Y°¢]´zÀ$ÀqÁ'Ì3Ô7Oð ˜a™ˆØ˜~Ð.Ð/ˆä˜ 9Ô-Ð-rú   c                ó   — t        | dz  «      S )z"Convert seconds into microseconds.i@B )Úint)Úsecondss    rÚ   Úto_microsecondsrM  ª  s   € äˆw˜Ñ"Ó#Ð#rú   ÚF.)Úboundc                 ó   — y rò   r  ©r0  r  s     rÚ   Úgather_metricsrR  ²  s   € ð 	rú   c                 ó   — y rò   r  rQ  s     rÚ   rR  rR  ¹  s   € ð rú   c                ól  ‡ ‡— ‰ st         j                  d«       dŠ |€dˆ fd„}|S |Št        ‰«      dˆ ˆfd„«       }t        j                  t
        «      5  |j                  j                  ‰j                  «       t        j                  ‰«      |_
        ddd«       t        d|«      S # 1 sw Y   ŒxY w)	aÖ  Function decorator to add telemetry tracking to commands.

    Parameters
    ----------
    func : callable
    The function to track for telemetry.

    name : str or None
    Overwrite the function name with a custom name that is used for telemetry tracking.

    Example
    -------
    >>> @st.gather_metrics
    ... def my_command(url):
    ...     return url

    >>> @st.gather_metrics(name="custom_name")
    ... def my_command(url):
    ...     return url
    zgather_metrics: name is emptyÚ	undefinedNrN  c                ó   •— t        ‰| ¬«      S )NrQ  )rR  )rØ   r0  s    €rÚ   Úwrapperzgather_metrics.<locals>.wrapperÜ  s   ø€ Ü!ØØôð rú   c                 ó$  •— ddl m}  |«       }t        d¬«      }|d uxr9 |j                  xr+ |j                   xr t        |j                  «      t        k  }d }d}|r•|r“	 t        ‰‰
g| ¢­i |¤Ž}|j                  |j                  vs |j                  |j                     t        k  r|j                  j                  |«       |j                  j                  |j                  g«       d|_        d}	  ‰| i |¤Ž}		 |r
|rd|_        	 |r|rt%         |«       |z
  «      |_        |	S # t        $ r!}t        j!                  d|¬«       Y d }~ŒYd }~ww xY w# t"        $ r |r|rt%         |«       |z
  «      |_        ‚ w xY w# |r|rd|_        w w w xY w)Nr   )Údefault_timerT)Úsuppress_warningFz#Failed to collect command telemetry)Úexc_info)ÚtimeitrY  r   Úgather_usage_statsÚcommand_tracking_deactivatedr%  Útracked_commandsr   rI  r0  Útracked_commands_counterr   r7  Úupdater  r   Údebugr   rM  Útime)r2  r;  ÚtimerÚ
exec_startÚctxÚtracking_activatedÚcommand_telemetryÚ$has_set_command_tracking_deactivatedÚexÚresultr0  Únon_optional_funcs             €€rÚ   Úwrapped_funcz$gather_metrics.<locals>.wrapped_funcæ  sË  ø€ å1á“Wˆ
Ü °$Ô7ˆð �tˆOò $Ø×&Ñ&ò$à×4Ñ4Ð4ò$ô �C×(Ñ(Ó)Ü#ñ$ð	 	ð -1Ðð
 05Ð,áÑ%ðRÜ$:Ø% tð%Ø.2ò%Ø6<ñ%Ð!ð
 &×*Ñ*°#×2NÑ2NÑNØ×3Ñ3Ð4E×4JÑ4JÑKÜ.ò/ð ×(Ñ(×/Ñ/Ð0AÔBØ×,Ñ,×3Ñ3Ð5F×5KÑ5KÐ4LÔMà37�Ô0ð 8<Ð4ð
	9Ù&¨Ð7°Ñ7‰Fñ Ñ;Ø38�Õ0áÑ"3ä%4±U³W¸zÑ5IÓ%JÐÔ"àˆøô/ ò Rô —‘ÐCÈb�×QÑQûðRûô ò 	ñ "Ñ&7Ü)8¹»À:Ñ9MÓ)NÐ!Ô&Øð	ûñ Ñ;Ø38�Õ0ð <ˆsús1   Á#BD) Ã6E Ä)	EÄ2EÅEÅ'E=Å=F  Æ F)rØ   rN  r   rN  )r2  r   r;  r   r   r   )r   Úwarningr   r  r  ÚAttributeErrorÚ__dict__ra  r  Ú	signatureÚ__signature__r
   )r0  r  rW  rm  rl  s   `   @rÚ   rR  rR  À  s³   ù€ ñ, Ü�‰Ð7Ô8Øˆà€|õ	ð ˆàÐä
ÐÓõ?ó ð?ôB 
×	Ñ	œ^Ó	,ñ Jð 	×Ñ×$Ñ$Ð%6×%?Ñ%?Ô@Ü%,×%6Ñ%6Ð7HÓ%IˆÔ"÷	Jô
 ��\Ó"Ð"÷Jð Jús   ÁA B*Â*B3c                óŒ  — t        «       }|j                  }|j                  j                  | «       ||_        ||_        t        j                  d«      |_        t        j                  rt        j                  |_
        t        «       }t        j                  r`t        j                  D ]M  }t        j                  |«      sŒt        j                  |   }|j                  |j                  r|› d�n|«       ŒO |j                  j                  |«       t         D �	ch c]  }	|	t"        j$                  v r|	’Œ }
}	t'        t"        j(                  «      |_        t'        t,        j.                  «      |_        |j2                  j                  |
«       |r||_        t7        «       x}rt9        |j:                  «      |_        |S c c}	w )z2Create and return the full PageProfile ForwardMsg.zserver.headlessz:default)r   Úpage_profileÚcommandsÚextendÚ	exec_timeÚ	prep_timer   rÞ   ÚheadlessÚ_server_modeÚserver_modeÚsetÚ_config_optionsÚis_manually_setÚaddÚ
is_defaultrÌ   ÚsysÚmodulesrÕ   ÚplatformrÎ   rc  ÚtznameÚtimezoneÚattributionsÚuncaught_exceptionr   r$  Úfragment_ids_this_runÚis_fragment_run)ru  rw  rx  r‡  Úmsgrt  Úconfig_optionsÚoption_nameÚconfig_optionÚattributionr†  rf  s               rÚ   Úcreate_page_profile_messager�  0  s  € ô ‹,€CØ×#Ñ#€Là×Ñ× Ñ  Ô*Ø&€LÔØ&€LÔä"×-Ñ-Ð.?Ó@€LÔô ×ÒÜ#)×#6Ñ#6ˆÔ ô  #›u€NÜ×ÒÜ!×1Ñ1ò 	ˆKÜ×)Ñ)¨+Ô6àä"×2Ñ2°;Ñ?ˆMØ×ÑØ,9×,DÒ,D�;�-˜xÑ(È+õð	ð ×Ñ×Ñ˜~Ô.ô
 2öàØœ#Ÿ+™+Ñ%ò 	ð€Lð ô œ#Ÿ,™,Ó'€L„OÜ¤§¡Ó,€LÔØ×Ñ×$Ñ$ \Ô2áØ*<ˆÔ'ä Ó"Ð"€sÐ"Ü'+¨C×,EÑ,EÓ'FˆÔ$à€Jùò!s   ÄGr  )r  Úobjectr   rÕ   )r  úCallable[..., Any]r   rÕ   )r&  r�  r   ú
str | None)
r9  r‘  r:  rÕ   r2  r   r;  r   r   r   )rL  Úfloatr   rK  )r0  rÕ   r  rN  r   rN  rò   )r0  rÕ   r  r  r   zCallable[[F], F])r0  rÕ   r  zF | Noner   zCallable[[F], F] | F)
ru  zlist[Command]rw  rK  rx  rK  r‡  r’  r   r   )7Ú
__future__r   r  r  rÎ   r�  r  rc  rÖ   Úcollections.abcr   r   Ú	functoolsr   Útypingr   r   r	   r
   r   r-  r   r   r   Ústreamlit.loggerr   Ústreamlit.proto.ForwardMsg_pb2r   Ústreamlit.proto.PageProfile_pb2r   r   Ú/streamlit.runtime.scriptrunner_utils.exceptionsr   Ú7streamlit.runtime.scriptrunner_utils.script_run_contextr   r  r   r  r   r   r$   rÌ   rÑ   rÔ   rÛ   ré   rë   r  r!  r'  rI  rM  rN  rR  r�  r  rú   rÚ   ú<module>r�     sÆ  ðö #ã Û Û 	Û 
Û Û Û ß +Ý ß 6Õ 6ç -Ñ -Ý 'Ý 5ß =Ý JÝ Vá˜HÓ%€ˆÓ %ð  #Ð �uÓ "ð #%Ð ˜%Ó $ð 15Ø#.Ø(6Ø$1Ø 2Ø&4Ø&3Ø!/ØDXØ:IñÐ �eó òs!Ð ˜ó sðj )Ð Ø2Ð óó.÷<'ñ 'ó@ó()ó	ð6.Ø%ð6.Ø69ð6.ØBEð6.ØQTð6.àó6.ór$ñ
 ˆC�x  S Ñ)Ô*€ð 
ðØ
ðà
ðð òó 
ðð 
ð ðØ
ðà
ðð òó 
ðôm#ðh &*ð	4Øð4àð4ð ð4ð #ð	4ð
 ô4rú   