+
     Gi  c                   s    ^ RI t ^ RIt^ RIHt R.t]P
                  P                  4       t ! R R]4      t	 ! R R]4      t
R# )i    N)consts	Inventoryc                   sb   a  ] tR t^	t o RtRR ltR tR tR tR t	R t
R	 tR
 tRR ltRtV tR# )r   z
Inventory object can handle information about available hardware devices. It also informs the plugins
about related hardware events.
Nc                s   Ve   Wn         M\        P                  ! 4       V n         Vf   \        P                  pVP	                  V P                   4      V n        Vf   \        P                  pV'       d    V P
                  P                  V4       Vf   \        4       pW0n        R V n        / V n        R #   \         d    \        P                  R4        LFi ; i)Nzcannot set udev monitor receive buffer size, we are probably running inside container or with limited capabilites, TuneD functionality may be limited)_udev_contextpyudevZContextZMonitorZfrom_netlink_udev_monitorr    ZCFG_DEF_UDEV_BUFFER_SIZEset_receive_buffer_sizeZEnvironmentErrorlogZwarning_MonitorObserverFactory_monitor_observer_factory_monitor_observer_subscriptions)selfZudev_contextZudev_monitor_clsZmonitor_observer_factoryZbuffer_sizer   s   &&&&&&=/usr/lib/python3.14/site-packages/tuned/hardware/inventory.py__init__ZInventory.__init__   s    $(4nn'44T5G5GH$00;S..{;
 %57#; $$  SKK R SSs   7B6 6 CCc                sR     \         P                  P                  V P                  W4      pV#   \         P                   d    Rp T# i ; i  \
         dO     \         P                  P                  T P                  Y4      p T#   \         P                   d    Rp  T# i ; ii ; i)z9Get a pyudev.Device object for the sys_name (e.g. 'sda').N)r   ZDevicesZ	from_namer   ZDeviceNotFoundByNameErrorZAttributeErrorZDevice)r   	subsystemZsys_nameZds   &&& r   
get_deviceZInventory.get_device)   s    
  !3!3YIA 
( 
*
* A 
( 
  2 2IHA 
( 
*
* A	
(s?   */ A
A 	A

A B&*BB"B&!B""B&c                s:    V P                   P                  VR7      # )z)Get list of devices on a given subsystem.)r   )r   Zlist_devices)r   r   s   &&r   get_devicesZInventory.get_devices8   s    				(	(9	(	==    c                s   VP                   V P                  9   g   R # \        P                  pVP                  '       g[   V^ 8  dT   \
        P                  RV\        P                  3,          4       \        P                  \        P                  4       RpKl  VP                  '       g   \
        P                  RV,          4       V P                  VP                   ,           F  w  rE V! W4       K  	  R #   \         d=   p\
        P                  RT,          4       \
        P                  T4        R p?KV  R p?ii ; i)NzLDevice '%s' is uninitialized, waiting '%.2f' seconds for its initialization.zoUnsuccessfully waited for device '%s' initialization, continuing with uninitialized device, problems may occur.z+Exception occured in event handler of '%s'.i)r   r
   r    Z!HOTPLUG_WAIT_FOR_DEV_INIT_RETRIESZis_initializedr   debugZHOTPLUG_WAIT_FOR_DEV_INIT_DELAYZtimeZsleepZwarnZ	ExceptionZerrorZ	exception)r   ZeventZdeviceZretryplugincallbackZes   &&&    r   _handle_udev_eventZInventory._handle_udev_event<   s	   			T00	0	

2
2%!!!eai99[_egm  hN  hN  _O  O  P::f445
5				88}  AG  G  H //0@0@AAvU B  II;fDEMM!s   +C99E 1D;;E c                s:   \         P                  RV: RV: R24       W3pW P                  9   d%   V P                  V,          P                  V4       R# V.V P                  V&   V P                  P                  V4       V P                  P                  4        R# )z7Register handler of device events on a given subsystem.zadding handler:  ()N)r   r   r
   appendr   Z	filter_bystart)r   r   r   r   callback_datas   &&&& r   	subscribeZInventory.subscribeO   sy    ))F;<$-%%%y!((7%2$54y!	*r   c                s    V P                   fg   \        P                  R4       V P                  P	                  V P
                  V P                  4      V n         V P                   P                  4        R # R # )Nzstarting monitor observer)r	   r   r   r   creater   r   r   r      &r   start_processing_eventsZ!Inventory.start_processing_events[   sZ    	#99() ::AA$BTBTVZVmVmn4! $r   c                s    V P                   e9   \        P                  R4       V P                   P                  4        R V n         R # R # )Nzstopping monitor observer)r	   r   r   Zstopr   r   r   stop_processing_eventsZ Inventory.stop_processing_eventsa   s:    	'99()  4 (r   c                s    V P                   V,           FO  pVw  rEW8X  g   K  \        P                  R V: RV: R24       V P                   V,          P                  V4       KQ  	  R# )zremoving handler: r   r   N)r
   r   r   Zremove)r   r   r   r   Z_pluginr   s   &&&   r   _unsubscribe_subsystemZ Inventory._unsubscribe_subsystemg   sR    **955m&GIIY?@	"))-8	 6r   c                s    . pV P                    FT  pVe	   WB8X  g   K  V P                  W4       \        V P                   V,          4      ^ 8X  g   KC  VP                  V4       KV  	  V F  pV P                   V K  	  R# )z4Unregister handler registered with subscribe method.N)r
   r!   Zlenr   )r   r   r   Zempty_subsystemsZ
_subsystems   &&&  r   unsubscribeZInventory.unsubscriben   sq    ''j:23
4z*+q0Z(	 ( %j:& %r   )r	   r   r
   r   r   )NNNNTN)__name__
__module____qualname____firstlineno__Z__doc__r   r   r   r   r   r   r    r!   r"   __static_attributes____classdictcell__Z__classdict__   @r   r   r   	   s<     
4>&
"!9
' 
'r   c                   s&   a  ] tR t^zt o R tRtV tR# )r   c                s.    \         P                  ! V/ VB # r#   )r   ZMonitorObserver)r   ZargsZkwargss   &*,r   r   Z_MonitorObserverFactory.create{   s    				0	00r    N)r$   r%   r&   r'   r   r(   r)   r*   r+   r   r   r   z   s     1 1r   r   )r   Z
tuned.logsZtunedr    Z__all__ZlogsZgetr   Zobjectr   r   r,   r   r   <module>r-      s@      -jjnno' o'b1f 1r   