o
    pfW                     @   sZ   d dl Zd dlmZmZmZ ddlmZmZ ddl	m
Z
mZmZ G dd de
Ze ZdS )    N)AnyIterableOptional   )GaugeMetricFamilyMetric)	CollectorCollectorRegistryREGISTRYc                   @   s^   e Zd ZdZedfdee dee fddZde	e
 fdd	Zed
d Zdd Zdd ZdS )PlatformCollectorz)Collector for python platform informationNregistryplatformc                 C   sb   |d u rt n|| _|  }| j }|dkr||   | dd|g| _|r/||  d S d S )NJavapython_infozPython platform information)	pf	_platform_infosystemupdate_java_add_metric_metricsregister)selfr   r   infor    r   ]/home/ertert/spirit/venv/lib/python3.10/site-packages/prometheus_client/platform_collector.py__init__   s   
zPlatformCollector.__init__returnc                 C   s   | j S )N)r   )r   r   r   r   collect   s   zPlatformCollector.collectc                    s8      } fdd|D }t| ||d}||d |S )Nc                    s   g | ]} | qS r   r   ).0kdatar   r   
<listcomp>    s    z1PlatformCollector._add_metric.<locals>.<listcomp>)labelsr   )keysr   
add_metric)namedocumentationr#   r%   valuesgr   r"   r   r      s
   zPlatformCollector._add_metricc                 C   s,   | j  \}}}| j  | j  |||dS )N)versionimplementationmajorminor
patchlevel)r   python_version_tuplepython_versionpython_implementation)r   r.   r/   r0   r   r   r   r   %   s   zPlatformCollector._infoc                 C   s*   | j  \}}}}|\}}}||||dS )N)jvm_versionjvm_release
jvm_vendorjvm_name)r   java_ver)r   java_version_vminfoosinfovm_name
vm_release	vm_vendorr   r   r   r   /   s   
zPlatformCollector._java)__name__
__module____qualname____doc__r
   r   r	   r   r   r   r   r   staticmethodr   r   r   r   r   r   r   r      s    


r   )r   r   typingr   r   r   metrics_corer   r   r   r   r	   r
   r   PLATFORM_COLLECTORr   r   r   r   <module>   s    2