+
     [;i  c                   st    ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
 ^ RIHt  ! R R]4      tR# )    )absolute_importN)version_info)PackageManager)Processc                   s   a  ] tR t^!t o ]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t	]R 4       t
]R 4       t]R 4       tR	tV tR
# )Systemc                 s   \         P                  P                  R4      '       Ed   \        R4      ;_uu_ 4       p / p. R
OpV  Uu. uF*  q3P	                  4       '       g   K  VP	                  4       NK,  	  ppV F)  pVP                  R4      w  rVVP                  R4      W&   K+  	  VR,          V9   d;   VR,          R8X  d   VR,          ^8X  d    RRR4       R# VR,          uuRRR4       # R	V9   d3   VR	,          P                  4        F  pWr9   g   K  Vu uuRRR4       # 	  RRR4       R# \        P                  ! 4       # u upi   + '       g   i     R# ; i)z
Checks if /etc/os-release exists, and if it does, uses it to divine the name of the distribution or
distribution like. e.g It will return 'debian' on Ubuntu systems.
Otherwise, revert to using distro.id()
z/etc/os-releasecentosZ=Z"ZIDZ
VERSION_IDNcentos-7ZID_LIKE)
gentoodebianrhelr   olmageiaarcharcharmfedorasuse)	ospathZisfileZopenZrstripsplitZstripdistroZid)Zos_release_fileZos_release_dataZdistrosZlineZlinesZos_release_keyZos_release_valuedistributions           </usr/lib/python3.14/site-packages/tracer/resources/system.pyr   ZSystem.distribution#   s$    WW^^%&&?OiG (7Ht++-]T[[]EH)-C&n(8(>(>s(Co%  t')ol.Kq.P 	  D! 	  	_$))4::<,

!% 	   =! 	 ( ))+ I 	 s<   EE!E5AEE.$EE%EEE	c                 s   a  V 3R lpRR.RR.R. ROR. RORR.R. RORRR.R	R.R
R.R. RORRR./p\         P                  4       pW29  d   R# \        \        \	        WV,          4      4      !  # )zMReturns instance of package manager according to installed linux distributionc                 sZ   < V w  r\         P                  ! V4      p\        W24      ! R/ SB # )N )	importlibZimport_moduleZgetattr)Zpairr   nameZmodulekwargss   &   r   get_instanceZ,System.package_manager.<locals>.get_instanceE   s-    :4##D)6
&

)&
))    r   r	   r
   r   r   r   r   r   r   r   r   N)ztracer.packageManagers.portageZPortage)ztracer.packageManagers.dpkgZDpkgtracer.packageManagers.dnfZDnf5r   ZDnfztracer.packageManagers.yumZYum)r   r   r    )ztracer.packageManagers.alpmZAlpm)r   r   r   ZlistZmap)r   r   Zmanagersr   s   l   r   package_managerZSystem.package_managerA   s    * <=67	 
  
 67 
 *) 
6767 
 
*)="(H $$&,!
	c,0FGH	IIr   c                 sh    \        ^4      p V P                  4       P                  R4      ^ ,          pV# )zG
Returns name of init system you are using
e.g. init, systemd, upstart
Z )r   r   r   )Zinitr   s     r   init_systemZSystem.init_systemu   s-     
$			3		"$	+r   c                 sx    \         P                  ! 4       #   \         d    \         P                  ! 4       u # i ; i)N)psutil	boot_timeZAttributeErrorZget_boot_timer   r   r   r$   ZSystem.boot_time   s,       	6 4 4 666s     99c                 s|    R P                  \        P                  \        P                  \        P                  4      # )z{}.{}.{})Zformatr   ZmajorZminorZmicror   r   r   python_versionZSystem.python_version   s)    			<--|/A/A<CUCU	VVr   c                 s    \         P                  4       P                  \         P                  4       \        P
                  ! 4       ^,          4      # )i   )r   r!   Zfind_packagekernel_package_namer   Zunamer   r   r   running_kernel_packageZSystem.running_kernel_package   s2    				!	.	.v/I/I/KRXXZXY]	[[r   c                 s    R# )z5TODO: infer kernel package from current distribution Zkernelr   r   r   r   r&   ZSystem.kernel_package_name   s     
r   c                 s    \         P                  ! 4       #   \         d4    \        P                  ! \         P
                  ! 4       4      ^ ,          u # i ; i)r    )r   ZgetloginZOSErrorpwdZgetpwuidZgetuidr   r   r   userZSystem.user   s4     kkm	5biik21555s    ;AAr   N)Z__name__Z
__module__Z__qualname__Z__firstlineno__Zstaticmethodr   r!   r"   r$   r%   r'   r&   r)   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r   !   s      : 1J 1Jf   7 7
 W W \ \   6 6r   r   )Z
__future__r   r   r(   r   r   r#   Zsysr   Ztracer.resources.PackageManagerr   Ztracer.resources.processesr   Zobjectr   r   r   r   <module>r*      s2   * ' 
 
     : .w6V w6r   