
    `gj                         d Z ddlZddlmZ ddlmZ dZdZdZ e	ed   d	         Z
	 dd
eeef   dz  defdZdede	fdZy)zBShared gateway restart constants and supervisor detection helpers.    N)Mapping)DEFAULT_CONFIGK   N   "HERMES_GATEWAY_EXTERNAL_SUPERVISORagentrestart_drain_timeoutenvironreturnc                     | t         j                  n| }|j                  d      ry|j                  d      ry|j                  dd      }|r|dk7  ryt        |j                  t        d            j                         j                         dv S )z=Return whether this gateway process is owned by a supervisor.INVOCATION_IDTHERMES_S6_SUPERVISED_CHILDXPC_SERVICE_NAME 0>   1onyestrue)osr
   getstrEXTERNAL_GATEWAY_SUPERVISOR_ENVstriplower)r
   envxpc_services      B/root/.hermes/venv/lib/python3.12/site-packages/gateway/restart.pyis_gateway_supervisor_processr      s      "**WC
ww
ww+,'',b1K{c)sww6;<BBDJJL Q      rawc                     	 t        | xs d      j                         rt        |       nt        }t        d|      S # t        t
        f$ r	 t        cY S w xY w)zEParse a configured drain timeout, falling back to the shared default.r   g        )r   r   float%DEFAULT_GATEWAY_RESTART_DRAIN_TIMEOUT	TypeError
ValueErrormax)r!   values     r   parse_restart_drain_timeoutr)   0   sP    5!#)n224c
:_ sE? z" 5445s   .< AA)N)__doc__r   collections.abcr   hermes_cli.configr   !GATEWAY_SERVICE_RESTART_EXIT_CODEGATEWAY_FATAL_CONFIG_EXIT_CODEr   r#   r$   r   boolr   objectr)    r    r   <module>r2      s~    H 	 # , %' ! "$ 
 #G (-734) % )-S#X%	(V  r    