Ë
    v×j¼  ã                  óâ   — U d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
mZ dZi Zded	<   i Zd
ed<    ej                   e«      Z ed«       ddd„Z	 	 	 d	 	 	 	 	 	 	 dd„Z	 	 d	 	 	 	 	 dd„Zy)é    )ÚannotationsN)ÚLiteral)ÚVirtualNode)ÚClientÚServer)Úset_default_client_typeÚtramezdict[str, Server]ÚAVAILABLE_SERVERSzdict[str, Client]ÚAVAILABLE_CLIENTSÚvue3c                ó   — ||| _         | S ©N)Úclient_type)Úserverr   s     ú;/DATA/.local/lib/python3.12/site-packages/trame/app/core.pyÚapply_client_typer      s   € ØÐØ(ˆÔØ€Mó    c                óÒ   — t        | t        «      rt        | |«      S | €t        } | t        v rt        t        |    |«      S |r&t        | t
        fi |¤Ž}|t        | <   t        ||«      S y)aû  Return a server for serving trame applications.

    If a name is given and such server is not available yet,
    it will be created otherwise the previously created instance will be returned.

    :param name: A server name identifier which can be useful when several servers
                are expected to be created. Most of the time, passing no arguments
                is what you are looking for. Also an actual Server instance can be
                provided so you can use it as a decorator function.
    :type name: None | str | Server instance

    :param create_if_missing: By default if a server for a given name does not exist
        that method will create it.
    :type create_if_missing: bool

    :param client_type: If provided, it will set it on the server.
    :type client_type: None | "vue2" | "vue3"

    :param **kwargs: any extra keyword args are passed as option to the server instance.

    :return: Return a unique Server instance per given name.
    :rtype: trame_server.core.Server
    N)Ú
isinstancer   r   ÚDEFAULT_NAMEr
   r   )ÚnameÚcreate_if_missingr   Úkwargsr   s        r   Ú
get_serverr      sr   € ô< $œÔÜ   {Ó3Ð3à€|ÜˆàÔ Ñ Ü Ô!2°4Ñ!8¸+ÓFÐFáÜ˜œkÑ4¨VÑ4ˆØ"(Ô˜$Ñä  ¨Ó5Ð5ð r   c                óZ   — | t         v r	t         |    S t        | ||¬«      }| 	|t         | <   |S )ad  Return a client to a remote trame applications.

    If a url is given and such client is not available yet,
    it will be created otherwise the previously created instance will be returned.

    :param url: Websocket URL which to connect to.
    :type url: str


    :param hot_reload: Enable when state change function should be hot reloaded.
    :type hot_reload: bool

    :param **kwargs: any extra keyword args use for authentication configuration.

    :return: Return a unique Client instance per given url. Each instance needs to call
             connect().
    :rtype: trame_server.client.Client
    )ÚurlÚconfigÚ
hot_reload)r   r   )r   r   r   Úclients       r   Ú
get_clientr    J   s;   € ð. ÔÑÜ  Ñ%Ð%ä˜ F°zÔB€FØ
€Ø!'Ô˜#Ñà€Mr   r   )r   r   r   ú
str | NoneÚreturnr   )NTN)r   zstr | Server | Noner   Úboolr   zLiteral['vue2', 'vue3'] | Noner"   zServer | None)NF)r   r!   r   r#   r"   r   )Ú
__future__r   ÚloggingÚtypingr   Útrame_client.widgets.corer   Útrame_serverr   r   Útrame_server.corer   r   r
   Ú__annotations__r   Ú	getLoggerÚ__name__Úloggerr   r   r    © r   r   Ú<module>r/      s¯   ðÞ "ã Ý å 1ß 'Ý 5à€Ø')Ð Ð$Ó )Ø')Ð Ð$Ó )à	ˆ×	Ñ	˜8Ó	$€á ˜Ô ôð !%Ø"Ø26ð.Ø
ð.àð.ð 0ð.ð
 ó.ðd ØðØ	ðàðð ô	r   