Ë
    :vžjy  ã                  óŠ   — d Z 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d	lmZmZmZ dd
lmZ  G d„ de
e	e«      Zy)z-Tornado handlers for frontend config storage.é    )ÚannotationsN)ÚAny)ÚValidationError)ÚExtensionHandlerJinjaMixinÚExtensionHandlerMixin)Úwebé   )ÚSchemaHandlerÚget_settingsÚsave_settings)Ú
translatorc                  óˆ   — e Zd ZdZ	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zej                  dd	d„«       Zej                  d
d„«       Zy)ÚSettingsHandlerzA settings API handler.Nc                ód   — t        j                  | |||||«       t        j                  | |«       y)zInitialize the handler.N)r
   Ú
initializer   )ÚselfÚnameÚapp_settings_dirÚschemas_dirÚsettings_dirÚlabextensions_pathÚ	overridesÚkwargss           ús/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jupyterlab_server/settings_handler.pyr   zSettingsHandler.initialize   s4   € ô 	× Ñ ØÐ" K°Ð?QÐS\ô	
ô 	×(Ñ(¨¨tÕ4ó    c           
     ó´  — | j                  «       }t        j                  |«       | j                  dd«      dk(  }t	        | j
                  | j                  | j                  | j                  || j                  t        j                  |¬«      \  }}|D ]   }|sŒ| j                  j                  |«       Œ" | j                  t        j                  |«      «      S )aF  
        Get setting(s)

        Parameters
        ----------
        schema_name: str
            The id of a unique schema to send, added to the URL

        ## NOTES:
            An optional argument `ids_only=true` can be provided in the URL to get only the
            ids of the schemas instead of the content.
        Úids_onlyÚ Útrue)r   Úschema_namer   r   r   )Úget_current_localer   Ú
set_localeÚget_argumentr   r   r   r   r   r   Útranslate_schemaÚlogÚwarningÚfinishÚjsonÚdumps)r   r    Úlocaler   ÚresultÚwarningsÚws          r   ÚgetzSettingsHandler.get%   s»   € ð  ×(Ñ(Ó*ˆÜ×Ñ˜fÔ%à×$Ñ$ Z°Ó4¸Ñ>ˆä'Ø×!Ñ!Ø×ÑØ×ÑØ#×6Ñ6Ø#Ø—n‘nÜ!×2Ñ2Øô	
Ñˆ�ó ˆAÚØ—‘× Ñ  Õ#ð ð �{‰{œ4Ÿ:™: fÓ-Ó.Ð.r   c                ó²  — | j                   }| j                  }| j                  }d}d}d}d}|st        j                  d|«      ‚| j
                  j                  j                  «       j                  d«      }		 t        j                  |	«      d   }
t        ||||
|| j                  «       | j'                  d
«       y	# t        j                  j                  $ r(}t        j                  d|t        |«      z  «      d	‚d	}~wt         t"        f$ r t        j                  d|«      d	‚t$        $ r(}t        j                  d|t        |«      z  «      d	‚d	}~ww xY w)zUpdate a settingzNo current settings directoryzFailed parsing JSON payload: %szAInvalid format for JSON payload. Must be in the form {'raw': ...}zFailed validating input: %siô  zutf-8Úrawi�  NéÌ   )r   r   r   r   Ú	HTTPErrorÚrequestÚbodyÚstripÚdecoder(   Úloadsr   r   ÚdecoderÚJSONDecodeErrorÚstrÚKeyErrorÚ	TypeErrorr   Ú
set_status)r   r    r   r   r   Úsettings_errorÚinvalid_json_errorÚinvalid_payload_format_errorÚvalidation_errorÚraw_payloadÚraw_settingsÚes               r   ÚputzSettingsHandler.putL   s@  € ð —N‘Nˆ	Ø×&Ñ&ˆØ×(Ñ(ˆØ8ˆØ>ÐàOð 	%ð 9ÐáÜ—-‘-  ^Ó4Ð4à—l‘l×'Ñ'×-Ñ-Ó/×6Ñ6°wÓ?ˆð	JÜŸ:™: kÓ2°5Ñ9ˆLÜØØØØØØ×'Ñ'ôð 	�‰˜Õøô �|‰|×+Ñ+ò 	LÜ—-‘- Ð%7¼#¸a»&Ñ%@ÓAÀtÐKûÜœ)Ð$ò 	MÜ—-‘- Ð%AÓBÈÐLÜò 	JÜ—-‘- Ð%5¼¸A»Ñ%>Ó?ÀTÐIûð	Jús$   Á92B= Â=EÃ#C=Ã=1EÄ.#EÅE)N)r   r:   r   r:   r   r:   r   r:   r   z	list[str]r   zdict[str, Any] | Noner   r   ÚreturnÚNone)r   )r    r:   rF   r   )r    r:   rF   rG   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Úauthenticatedr.   rE   © r   r   r   r      s’   „ Ù!ð ,0ð5àð5ð ð5ð ð	5ð
 ð5ð &ð5ð )ð5ð ð5ð 
ó5ð  	×Ñó$/ó ð$/ðL 	×Ñò!ó ñ!r   r   )rK   Ú
__future__r   r(   Útypingr   Ú
jsonschemar   Ú jupyter_server.extension.handlerr   r   Útornador   Úsettings_utilsr
   r   r   Útranslation_utilsr   r   rM   r   r   Ú<module>rU      s9   ðÙ 3õ #ã Ý å &ß ^Ý ç FÑ FÝ )ô\Ð+Ð-GÈõ \r   