
    XhW                     h    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e
      Z e       Zy)    N)AnyIterableOptional   )GaugeMetricFamilyMetric)	CollectorCollectorRegistryREGISTRYc                   `    e Zd ZdZedfdee   dee   fdZde	e
   fdZed        Zd	 Zd
 Zy)PlatformCollectorz)Collector for python platform informationNregistryplatformc                    |t         n|| _        | j                         }| j                  j                         }|dk(  r|j	                  | j                                | j                  dd|      g| _        |r|j                  |        y y )NJavapython_infozPython platform information)	pf	_platform_infosystemupdate_java_add_metric_metricsregister)selfr   r   infor   s        X/var/www/html/myenv/lib/python3.12/site-packages/prometheus_client/platform_collector.py__init__zPlatformCollector.__init__   s}      (/Xzz|&&(VKK

%],I4P
 d#     returnc                     | j                   S )N)r   )r   s    r   collectzPlatformCollector.collect   s    }}r    c                     |j                         }|D cg c]  }||   	 }}t        | ||      }|j                  |d       |S c c}w )N)labelsr   )keysr   
add_metric)namedocumentationdatar%   kvaluesgs          r   r   zPlatformCollector._add_metric   sJ    #)*a$q'**dM&A	VQ +s   Ac                     | j                   j                         \  }}}| j                   j                         | j                   j                         |||dS )N)versionimplementationmajorminor
patchlevel)r   python_version_tuplepython_versionpython_implementation)r   r1   r2   r3   s       r   r   zPlatformCollector._info%   sN    #'>>#F#F#H uj~~446"nnBBD$
 	
r    c                 Z    | j                   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_vendors           r   r   zPlatformCollector._java/   s?    *...*A*A*C'a)/&Y'%#	
 	
r    )__name__
__module____qualname____doc__r   r   r
   r   r   r   r   r#   staticmethodr   r   r    r    r   r   r      s\    3 :B+/$#$56$#C=$&)   

r    r   )r   r   typingr   r   r   metrics_corer   r   r   r	   r
   r   r   PLATFORM_COLLECTORrI   r    r   <module>rM      s2     * * 3 < </
	 /
d '(  4r    