o
    eM                     @   sl   d dl Z d dlZd dlZd dlmZ e dddZdd Z	dd	 Z
d
d ZdddZdd Zdd ZdS )    N)errorz&^xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx$xz[0-9a-fA-F]c                   C   s   t jddS )Nr   )int)uuidUUID r   r   -/usr/lib/python3/dist-packages/ovs/ovsuuid.pyzero      r	   c                 C   s   t | d uS N)uuidREmatchsr   r   r   is_valid_string   s   r   c                 C   s    t | std|  t| S )Nz%s is not a valid UUID)r   r   Errorr   r   r   r   r   r   from_string!   s   
r   c                 C   s   zt jj| dtfd}t|std| | t	
|W S  tjy[ } z0|s+|zt jj| dtfd}W n
 tjyB   |w ||vrMt	 ||< || W  Y d }~S d }~ww )Nr   stringz"%s" is not a valid UUIDz
named-uuid)ovsdbparserunwrap_jsonstrr   r   r   r   r   r   uuid4)jsonsymtabr   enamer   r   r   	from_json'   s(   
r   c                 C   s   dt | gS )Nr   )r   )uuid_r   r   r   to_json;   r
   r    c                    s*   | j   fddtdD }dd| S )Nc                    s(   g | ]}d  |d |d d   qS )z0x%s      r   ).0r   
hex_stringr   r   
<listcomp>A   s     z$to_c_initializer.<locals>.<listcomp>   z{ %s },z, )hexrangejoin)r   varpartsr   r$   r   to_c_initializer?   s
   
r-   r   )rer   ovs.db.parserr   ovs.dbr   compilereplacer   r	   r   r   r   r    r-   r   r   r   r   <module>   s   
