+
    ~j&                     Z    ^ RI t ^ RIHtHt ^ RIHtHt ^RIHtH	t	H
t
 Rt ! R R4      tR# )    N)	HTTPErrorURLError)Requesturlopen)EngineClientErrorEngineConnectionErrorEngineResponseErrorz1.0.0c                   Z   a  ] tR t^t o RtRR ltRR ltR tR tR t	R t
RR	 ltR
tV tR# )EngineClientz>Small, versioned boundary around the private image engine API.c                >    VP                  R 4      V n        W n        R# )/N)rstripbase_urltimeout)selfr   r   s   &&&/scresyns-tritroia-platform/engine_sdk/client.py__init__EngineClient.__init__   s     ,    Nc                >   R pRRR\         /pVe-   \        P                  ! VRR7      P                  R4      pRVR&   \	        V P
                   V 2VVVR7      p \        Yt;'       g    V P                  R	7      ;_uu_ 4       pVP                  4       p	\        P                  ! V	P                  R4      4      p
R R R 4       \)        X
\*        4      '       g   \        R4      hT
#   + '       g   i     L3; i  \         dI   pTP                  4       P                  RR
4      R,          p\        RTP                   RT 24      ThR p?i\        \        \         3 d   p\#        RT 24      ThR p?i\$        \        P&                  3 d   p\        R4      ThR p?ii ; i)NAcceptzapplication/jsonzX-Engine-SDK-VersionF)ensure_asciizutf-8zContent-Type)dataheadersmethodr   replace:Ni  Nengine_http_z: zengine_unreachable: engine_invalid_jsonengine_response_must_be_object)SDK_VERSIONjsondumpsencoder   r   r   r   readloadsdecoder   r	   coder   TimeoutErrorOSErrorr   UnicodeDecodeErrorJSONDecodeError
isinstancedict)r   r   pathpayloadr   r   r   requestresultrawresponseerrordetails   &&&&&        r   _requestEngineClient._request   sn   /1GU::gE:AA'JD&8GN#}}odV$	

	H*A*AT\\BBfkkm::cjj&9: C (D))%&FGG CB  	XZZ\(()<TBF%UZZL6(&KLRWW,0 	S'*>ug(FGUR"D$8$89 	H%&;<%G	Hs[   (C7 6C$9C7 $C4	/C7 4C7 7FAEFFE--F
FFFc                R    V P                  RR\        V P                  ^4      R7      # )z!Return the engine health payload.GETz/api/healthr   )r7   minr   r   s   &r   healthEngineClient.health-   s"    }}UM3t||Q;O}PPr   c                &    V P                  RR4      # )z2Return the engine-owned, versioned preset catalog.r:   z/api/presetsr7   r<   s   &r   list_presetsEngineClient.list_presets1   s    }}UN33r   c                &    V P                  RR4      # )zAReturn engine capabilities, including its current preset catalog.r:   z/api/capabilitiesr@   r<   s   &r   capabilitiesEngineClient.capabilities5   s    }}U$788r   c           	          V P                  4       pRRRV P                  RV/#   \         d&   pRRRT P                  R\        T4      /u Rp?# Rp?ii ; i)z>Return a normalized status object for dashboard health checks.	connectedTurlr=   Fr5   N)r=   r   r   str)r   r=   r5   s   &  r   statusEngineClient.status9   sW    	S[[]FudmmXvNN  	St}}gs5zRR	Ss   !$ AA	AAc                    RVRVRV/pVP                  V4       V P                  RRV4      pVP                  R4      pVP                  R4      R	9  g   \        V\        4      '       g   \        R4      hV# )
z8Generate one or more assets through the engine contract.promptcolorsreferenceProfilePOSTz/api/generateassetrJ   engine_generation_missing_asset)Ncreated)updater7   getr-   r.   r	   )r   rM   rN   reference_profileoptionsr0   	generatedrQ   s   &&&&,   r   generateEngineClient.generateA   ss    VXv7IK\]wMM&/7C	g&=="*;;:eUYCZCZ%&GHHr   )r   r   )   )NN)__name__
__module____qualname____firstlineno____doc__r   r7   r=   rA   rD   rJ   rY   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s2     H6Q49S r   r   )r"   urllib.errorr   r   urllib.requestr   r   
exceptionsr   r   r	   r!   r    r   r   <module>rh      s%     , + U U > >r   