o
    i                     @   sP   d dl mZ G dd deZG dd deZG dd deZG dd	 d	eZd
S )    )
MetricTypec                   @   s   e Zd ZdddZdd ZdS )MetricAggregatorr   Nc                 C   s.   || _ || _|| _|| _|| _|| _|| _d S N)nametagsratemetric_typevalue	timestampcardinality)selfr   r   r   r   r	   r
   r    r   M/home/ubuntu/.local/lib/python3.10/site-packages/datadog/dogstatsd/metrics.py__init__   s   
zMetricAggregator.__init__c                 C   s   t d)Nz(Subclasses should implement this method.)NotImplementedError)r   r	   r   r   r   	aggregate   s   zMetricAggregator.aggregate)r   r   N)__name__
__module____qualname__r   r   r   r   r   r   r      s    
	r   c                       &   e Zd Zd fdd	Zdd Z  ZS )CountMetricr   Nc              	      "   t t| |||tj||| d S r   )superr   r   r   COUNTr   r   r	   r   r   r
   r   	__class__r   r   r         
zCountMetric.__init__c                 C   s   |  j |7  _ d S r   r	   r   vr   r   r   r      s   zCountMetric.aggregater   Nr   r   r   r   r   __classcell__r   r   r   r   r          r   c                       r   )GaugeMetricr   Nc              	      r   r   )r   r%   r   r   GAUGEr   r   r   r   r      r   zGaugeMetric.__init__c                 C   s
   || _ d S r   r   r   r   r   r   r   "   s   
zGaugeMetric.aggregater!   r"   r   r   r   r   r%      r$   r%   c                       s.   e Zd Zd	 fdd	Zdd Zdd Z  ZS )
	SetMetricr   Nc              	      s:   d}t t| |||tj||| t | _| j| d S )Nr   )r   r'   r   r   SETsetdataadd)r   r   r	   r   r   r
   r   default_valuer   r   r   r   '   s   
zSetMetric.__init__c                 C   s   | j | d S r   )r*   r+   r   r   r   r   r   /   s   zSetMetric.aggregatec                    s    fdd j D S )Nc                    s$   g | ]}t  j j jtj|qS r   )r   r   r   r   r   r(   ).0r	   r   r   r   
<listcomp>3   s    z&SetMetric.get_data.<locals>.<listcomp>)r*   r.   r   r.   r   get_data2   s   
zSetMetric.get_datar!   )r   r   r   r   r   r0   r#   r   r   r   r   r'   &   s    r'   N)datadog.dogstatsd.metric_typesr   objectr   r   r%   r'   r   r   r   r   <module>   s
    

