o
    );cM                     @   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                   @   sZ   e Zd ZdZedfd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JavaZpython_infozPython platform information)	pf	_platform_infosystemupdate_java_add_metric_metricsregister)selfr   r   infor    r   o/Users/cmarchbanks/go/src/github.com/prometheus/client_python/build/lib/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.   r/   r   r   r   r   %   s   zPlatformCollector._infoc                 C   s*   | j  \}}}}|\}}}||||dS )N)Zjvm_versionZjvm_releaseZ
jvm_vendorZjvm_name)r   java_ver)r   Z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