File: //var/opt/nydus/ops/primordial/log/__pycache__/extra.cpython-39.pyc
a
�,�hw
� @ s� d dl Z d dlZd dlmZmZmZ d dlmZ e� e
�ZG dd� de jd�Z
G dd� de
�ZG d d
� d
e
�ZG dd� de
�ZdS )
� N)�Any�Dict�Optional)�EnvelopeRolec @ sp e Zd ZdZdZedd�dd�Zeed d�dd��Zedd�d d
�Z ee
dd�dd
�Zdee e
d�dd�Z
dS )�LogExtrazmAbstract Base Class that provides a set of methods for extraction, setting and retrieval of 'extra' log data.�extraN��kwargs�returnc K s i | _ | jf i |�� d S �N)r �set��selfr � r �E/opt/nydus/tmp/pip-target-wkfpz8uv/lib/python/primordial/log/extra.py�__init__ s zLogExtra.__init__c K sr t j}t j| v r| t j }|t jkr2tf i | ��S |t jkrJtf i | ��S |t jkrbtf i | ��S t d| ��dS )z1Factory method to create a new LogExtra instance.z
Invalid role N)
r ZDEFAULT_ROLE�
ROLE_FIELD�ROLE_DEVELOPMENT�DevLogExtra�ROLE_BUSINESS_ANALYTICS�
BALogExtra�ROLE_PERFORMANCE�PerfLogExtra�
ValueError)r �roler r r �getLogExtra s
zLogExtra.getLogExtrac K s, |� � D ]\}}|tjur| �||� qdS )z"Set fields on a LogExtra instance.N)�itemsr r �setField)r r �k�vr r r r % s
zLogExtra.set)�field�valuer
c C s || j |<