%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python3.9/site-packages/cockpit/__pycache__/
Upload File :
Create Path :
Current File : //usr/lib/python3.9/site-packages/cockpit/__pycache__/jsonutil.cpython-39.pyc

a

��h��@s�ddlmZddlmZmZmZmZmZmZm	Z	m
Z
mZmZee
eedfZede	defZee
efZeddefZee
efZeeZed�Zed	�ZGd
d�de�Zee
eed�d
d�ZGdd�de�ZejZeeegefe
eeefeeefd�dd�Zefee
eeefeeefd�dd�Zefee
eeefeee fd�dd�Z!efee
eeefeee
fd�dd�Z"ee
ee
ee
d�dd�Z#ee
eee
e feee
e fd�dd�Z$efee
eeefeeefd�dd �Z%efee
eegefeeefeeefd!�d"d#�Z&efee
eeefeee	e
fd�d$d%�Z'efee
ee
eeefeee
fd&�d'd(�Z(ee
eegefeee	efd)�d*d+�Z)d,eed-�d.d/�Z*eeed0�d1d2�Z+eedd0�d3d4�Z,dS)5�)�Enum)
�Callable�	Container�Dict�List�Mapping�Optional�Sequence�Type�TypeVar�UnionN�
JsonObject�	JsonValue�JsonDict�JsonList�DT�Tcs.eZdZUeed<eed��fdd�Z�ZS)�	JsonError�value)r�msgcst��|�||_dS�N)�super�__init__r)�selfrr��	__class__��4/usr/lib/python3.9/site-packages/cockpit/jsonutil.pyr(szJsonError.__init__)�__name__�
__module__�__qualname__�object�__annotations__�strr�
__classcell__rrrrr%s
r)r�
expected_type�returncCs t||�st|d|j����|S)z>Ensure a JSON value has the expected type, returning it if so.zmust have type )�
isinstancerr)rr%rrr�typechecked-s
r(c@seZdZdZdS)�_EmptyrN)rrr �TOKENrrrrr)7sr))�obj�cast�key�defaultr&c
Cs�z|||�WStyD|tur,|YSt|d|�d��d�Yn\ty�}zDd|�d�|j||urndnd}t||�d|���|�WYd}~n
d}~00dS)Nzattribute 'z
' required�'z
 elements:�:� )�KeyError�_emptyrr)r+r,r-r.�exc�targetrrr�_get>s"r6)r+r-r.r&cCst|dd�||�S)NcSs
t|t�Sr)r(�bool��vrrr�<lambda>K�zget_bool.<locals>.<lambda>�r6�r+r-r.rrr�get_boolJsr>cCst|dd�||�S)NcSs
t|t�Sr)r(�intr8rrrr:Or;zget_int.<locals>.<lambda>r<r=rrr�get_intNsr@cCst|dd�||�S)NcSs
t|t�Sr�r(r#r8rrrr:Sr;zget_str.<locals>.<lambda>r<r=rrr�get_strRsrBcCst|dd�||�S)NcSs|durdSt|t�SrrAr8rrrr:Wr;z!get_str_or_none.<locals>.<lambda>r<r=rrr�get_str_or_noneVsrCcCs&ttttfd�dd�}t||||�S)N�rr&cSst|ttf�st|d��|S)Nzmust be a string or integer)r'r#r?r�rrrr�
as_str_or_int[s
z%get_str_or_int.<locals>.as_str_or_int)rrr#r?r6)r+r-r.rFrrr�get_str_or_intZsrGcCst|dd�||�S)NcSs
t|t�Sr�r(�dictr8rrrr:dr;zget_dict.<locals>.<lambda>r<r=rrr�get_dictcsrJ)r+r-�constructorr.r&cst|�fdd�||�S)Ncs�t|t��SrrHr8�rKrrr:mr;zget_object.<locals>.<lambda>r<)r+r-rKr.rrLr�
get_objectgsrMcCs"tttd�dd�}t||||�S)NrDcSstdd�t|t�D��S)Ncss|]}t|t�VqdSrrA��.0�itemrrr�	<genexpr>rr;z,get_strv.<locals>.as_strv.<locals>.<genexpr>��tupler(�listrErrr�as_strvqszget_strv.<locals>.as_strv)rr	r#r6)r+r-r.rUrrr�get_strvpsrV)r+r-�choicesr.r&cs"ttd��fdd�}t||||�S)NrDcs0t|t�r|�vr|St|d|�d�����dS)Nzinvalid value "z	" not in )r'r#rrE�rWrr�	as_choiceyszget_enum.<locals>.as_choice)rr#r6)r+r-rWr.rYrrXr�get_enumvsrZ)r+r-rKr&cs&tttd��fdd�}t|||d�S)NrDcst�fdd�t|t�D��S)Nc3s|]}�t|t��VqdSrrHrNrLrrrQ�r;z,get_objv.<locals>.as_objv.<locals>.<genexpr>rRrErLrr�as_objv�szget_objv.<locals>.as_objvr)rr	rr6)r+r-rKr[rrLr�get_objv�sr\zJsonObject | None)�message�kwargsr&cCs6t|pi�}|��D]\}}|�dd�}|||<q|S)a�Constructs a JSON object based on message and kwargs.

    If only message is given, it is returned, unmodified.  If message is None,
    it is equivalent to an empty dictionary.  A copy is always made.

    If kwargs are present, then any underscore ('_') present in a key name is
    rewritten to a dash ('-').  This is intended to bridge between the required
    Python syntax when providing kwargs and idiomatic JSON (which uses '-' for
    attributes).  These values override values in message.

    The idea is that `message` should be used for passing data along, and
    kwargs used for data originating at a given call site, possibly including
    modifications to an original message.
    �_�-)rI�items�replace)r]r^�resultr-rZjson_keyrrr�
create_object�s

rd)�current�patchr&cCspt|�}|��D]Z\}}t|t�rL|�|d�}t|t�s<i}t||�||<q|dur^|||<q|�|d�q|S)u�Perform a JSON merge patch (RFC 7396) using 'current' and 'patch'.
    Neither of the original dictionaries is modified — the result is returned.
    N)rIrar'r�get�json_merge_patch�pop)rerfrcr-�patch_value�
current_valuerrrrh�s


rhcCs�t|���D]~\}}|�|d�}t|t�rbt|t�sLi||<}t||�q�t||�|s�||=q||krr||=q|dur�|||<q||=qdS)z�Perform a JSON merge patch (RFC 7396) modifying 'current' with 'patch'.
    Also modifies 'patch' to remove redundant operations.
    N)rSrargr'rI�json_merge_and_filter_patch)rerfr-rjrkrrrrl�s



rl)-�enumr�typingrrrrrrr	r
rrr#�floatr7ZJsonLiteralrr
ZJsonDocumentrrrr�	Exceptionrr(r)r*r3r6r>r?r@rBrCrGrJrMrVrZr\rdrhrlrrrr�<module>sL0
0(((,	(�

�	,�
�*

Zerion Mini Shell 1.0