Ë
    uPêj^  ã                   ó   — d Z ddlmZmZ ddlmZ ddlmZmZ ed   Z	 edd¬«       G d„ d	«      «       Z
d
ededefd„Zde
deeef   deeef   dedeeedz  e	f   f
d„Z	 ddee
   deeef   deeef   dedeeeedz  f   eee	f   f   f
d„Zy)a'  Shared primitive for resolving a settings value from its sources.

A ``FieldDescriptor`` names, for one setting, where it lives in the stored DB
row (``db_key``), which process env var carries it (``env_var``), whether it is
a secret, and its effective default. ``resolve_fields`` reconciles a set of
descriptors against a decrypted DB row and the process environment with a fixed
precedence, returning the resolved values plus per-field provenance so a caller
can tell whether a value came from the database, the environment, a default, or
is unset.
é    )ÚMappingÚSequence)Ú	dataclass)ÚFinalÚLiteral)ÚdbÚenvÚdefaultÚunsetT)ÚfrozenÚslotsc                   óN   — e Zd ZU eed<   eed<   eed<   dZeed<   dZedz  ed<   y)ÚFieldDescriptorÚ
field_nameÚdb_keyÚenv_varFÚ	is_secretNr
   )Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   Úboolr
   © ó    úp/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/proxy/config_resolvers/_descriptors.pyr   r      s)   … àƒOØƒKØƒLØ€IˆtÓØ€GˆS�4‰ZÔr   r   Údb_valueÚempty_db_is_setÚreturnc                 ód   — |r| d uS t        | t        «      xr t        | j                  «       «      S ©N)Ú
isinstancer   r   Ústrip)r   r   s     r   Ú
_db_is_setr$      s2   € Ùð ˜tÐ#Ð#ô �h¤Ó$Ò?¬¨h¯n©nÓ.>Ó)?Ð?r   Ú
descriptorÚ	db_valuesr	   Nc                 ó¤  — |j                  | j                  «      }t        ||«      r,| j                  t	        |t
        «      r|dfS t        |«      dfS |j                  | j                  «      }t	        |t
        «      r|j                  «       r| j                  |dfS | j                  �| j                  | j                  dfS | j                  d dfS )Nr   r	   r
   r   )	Úgetr   r$   r   r"   r   r   r#   r
   )r%   r&   r	   r   r   Ú	env_values         r   Ú_resolve_oner*   &   sÃ   € ð  —m‘m J×$5Ñ$5Ó6€HÜ�(˜OÔ,Ø×$Ñ$´*¸XÄsÔ2K hÐ`dÐdÐdÔQTÐU]ÓQ^Ð`dÐdÐdØ—w‘w˜z×1Ñ1Ó2€IÜ�)œSÔ! i§o¡oÔ&7Ø×$Ñ$ i°Ð6Ð6Ø×ÑÐ%Ø×$Ñ$ j×&8Ñ&8¸)ÐCÐCØ× Ñ  $¨Ð/Ð/r   Údescriptorsc                 ó¸   ‡‡‡— t        ˆˆˆfd„| D «       «      }|D ���ci c]	  \  }}}||“Œ }}}}|D ���	ci c]	  \  }}}	||	“Œ }
}}}	||
fS c c}}}w c c}	}}w )aû  Resolve every descriptor to (values, provenance).

    Precedence per field: a set stored value wins, else a non-blank process env
    var, else the descriptor default, else unset. ``empty_db_is_set`` selects
    how a present-but-empty stored value is read: ``False`` treats it as absent
    so it falls back to env (SSO, whose clear path also unsets the env var);
    ``True`` treats it as an explicit clear that wins over env (alerting, whose
    clear path stores "" without unsetting the env var).
    c              3   ó:   •K  — | ]  }t        |‰‰‰«      –— Œ y ­wr!   )r*   )Ú.0r%   r&   r   r	   s     €€€r   ú	<genexpr>z!resolve_fields.<locals>.<genexpr>F   s   øè ø€ ÒtÐZdœL¨°YÀÀ_×UÑtùs   ƒ)Útuple)r+   r&   r	   r   Úresolvedr   ÚvalueÚ_ÚvaluesÚsourceÚ
provenances    ```       r   Úresolve_fieldsr7   7   sn   ú€ ô ÕtÐhsÔtÓt€HØCK×LÐLÑ+?¨:°u¸a�Z Ñ&ÐL€FÒLØIQ×RÐRÑ0E°
¸A¸v˜ VÑ+ÐR€JÒRØ�:ÐÐùô MùÜRs
    A¸A)F)Ú__doc__Úcollections.abcr   r   Údataclassesr   Útypingr   r   ÚFieldSourcer   Úobjectr   r$   r   r0   r*   Údictr7   r   r   r   ú<module>r?      s#  ðñ	÷ .Ý !ß !àÐ5Ñ6€ñ �$˜dÔ#÷ð ó $ðð@˜ð @°$ð @¸4ó @ð0Øð0à�s˜F�{Ñ#ð0ð 
��c�Ñ	ð0ð ð	0ð
 ˆ3��d‘
˜KÐ'Ñ(ó0ð* "ñ	Ø˜/Ñ*ðà�s˜F�{Ñ#ðð 
��c�Ñ	ðð ð	ð
 ˆ4��S˜4‘Z�Ñ  $ s¨KÐ'7Ñ"8Ð8Ñ9ôr   