
    ^h                        % S r SSKJ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  Sr " S S\5      r " S S\\5      r " S S\\5      rS\4S\4/rS\S'   g)zAPI handlers for terminals.    )annotationsN)Path)Any)
authorized)
APIHandler)web   )TerminalsMixin	terminalsc                      \ rS rSrSr\rSrg)TerminalAPIHandler   zThe base terminal handler. N)__name__
__module____qualname____firstlineno____doc__AUTH_RESOURCEauth_resource__static_attributes__r       _/home/james-whalen/.local/lib/python3.13/site-packages/jupyter_server_terminals/api_handlers.pyr   r      s
    $!Mr   r   c                  |    \ rS rSrSr\R                  \SS j5       5       r\R                  \SS j5       5       r	Sr
g)TerminalRootHandler   zThe root termanal API handler.c                    U R                   R                  5       nU R                  [        R                  " U5      5        g)zGet the list of terminals.N)terminal_managerlistfinishjsondumps)selfmodelss     r   getTerminalRootHandler.get   s-     &&++-DJJv&'r   c                   U R                  5       =(       d    0 nSU;   Ga  [        US   5      nUc   eUR                  5       R                  5       (       dN  [        U R                  S   5      R                  5       U-  nUR                  5       R                  5       (       d  SnUc?  U R                  S   nU R                  R                  SUR                  S5      U5        US	 OFU R                  R                  SUR                  5       5        [        UR                  5       5      US'   U R                  R                  " S0 UD6nU R                  [        R                  " U5      5        g)z:POST /terminals creates a new terminal and redirects to itcwdNserver_root_dirz`Failed to find requested terminal cwd: %s
  It was not found within the server root neither: %s.zOpening terminal in: %sr   )get_json_bodyr   resolveexistssettings
expanduserlogdebugr%   strr   creater    r!   r"   )r#   datar(   r)   models        r   postTerminalRootHandler.post!   s%    !!#)r
 D=#DK0C?"?;;=''))4==):;<GGICO{{}++--C{"&--0A"BMHHUO#	 K8#++-H!#++-0U%%,,4t4DJJu%&r   r   N)returnNone)r   r   r   r   r   r   authenticatedr   r%   r5   r   r   r   r   r   r      sG    ((  (
 	'  'r   r   c                      \ rS rSrSrSr\R                  \SS j5       5       r	\R                  \SS j5       5       r
Srg)	TerminalHandlerC   z"A handler for a specific terminal.)GETDELETEOPTIONSc                    U R                   R                  U5      nU R                  [        R                  " U5      5        g)zGet a terminal by name.N)r   r%   r    r!   r"   )r#   namer4   s      r   r%   TerminalHandler.getH   s/     %%))$/DJJu%&r   c                   #    U R                   R                  USS9I Sh  vN   U R                  S5        U R                  5         g N&7f)zRemove a terminal by name.T)forceN   )r   	terminate
set_statusr    )r#   rA   s     r   deleteTerminalHandler.deleteO   sA      ##--d$-??? 	@s   A	A'A	r   N)rA   r1   r7   r8   )r   r   r   r   r   SUPPORTED_METHODSr   r9   r   r%   rH   r   r   r   r   r;   r;   C   sM    ,4'  '
 	  r   r;   z/api/terminalsz/api/terminals/(\w+)zlist[tuple[str, type[Any]]]default_handlers)r   
__future__r   r!   pathlibr   typingr   jupyter_server.auth.decoratorr   jupyter_server.base.handlersr   tornador   baser
   r   r   r   r;   rK   __annotations__r   r   r   <module>rT      ss    ! "    4 3   " ")'.*< )'Xn&8 , +,o.1 - r   