+
    Ki  c                   s\    R t ^ RIt^ RIHtHtHt ]R]3,          tR R lt ! R R4      tR# )zMisc common functionsN)AnyCallableMapping.c                s    V ^8  d   QhR\         R\        \         \         3,          R\        \         \         3,          /# )   base_obj	delta_objreturn)r    r   )formats   "9/usr/lib/python3.14/site-packages/lutris/util/__init__.py__annotate__r	   	   s4     
 
c 
gc3h.? 
GCQTHDU 
    c                s
   \        V \        4      '       g   V# \        V 4      P                  V4      p\        V4      P	                  V4      pV F  p\        W,          W,          4      W&   K  	  V F  pW,          W&   K  	  V # )zused by write_json)Z
isinstanceZdictZsetZintersectionZ
differenceselective_merge)r   r   Zcommon_keysZnew_keysZks   &&   r   r   r   	   sq    h%%h-,,Y7K9~((5H%hk9<@ l Or
   c                   sZ   a  ] tR t^t o RtV 3R lR ltV 3R lR ltV 3R lR ltRtV t	R	# )
cache_singlea  A simple replacement for lru_cache, with no LRU behavior. This caches
a single result from a function that has no arguments at all. Exceptions
are not cached; there's a 'clear_cache()' function on the wrapper like with
lru_cache to explicitly clear the cache.c                s    < V ^8  d   QhRS[ /# )r   function)AnyCallabler   __classdict__   "r   r	   cache_single.__annotate__   s          r
   c                sZ    \         P                  ! W4       Wn        R V n        RV n        R# FN)	functoolsZupdate_wrapperr   	is_cachedcached_item)selfr   s   &&r   __init__Zcache_single.__init__   s$      0 r
   c                s,   < V ^8  d   QhRS[ RS[ RS[ /# )r   argskwargsr   )r    r   r   r   r	   r   "   s"        c  S  S  r
   c                s    V'       g	   V'       d   V P                   ! V/ VB # V P                  '       g   V P                  4       V n        R V n        V P                  # )T)r   r   r   )r   r   r   s   &*,r   __call__Zcache_single.__call__"   sE    6==$1&11~~~#}}D!DNr
   c                s   < V ^8  d   QhRR/# )r   r   N r   r   r   r	   r   ,   s        T  r
   c                s"    R V n         RV n        R# r   )r   r   )r   s   &r   cache_clearZcache_single.cache_clear,   s    r
   )r   r   r   N)
Z__name__Z
__module__Z__qualname__Z__firstlineno____doc__r   r   r   Z__static_attributes__Z__classdictcell__)r   s   @r   r   r      s(     0
         r
   r   )	r   r   Ztypingr    r   r   r   r   r   r   r
   r   <module>r      s.      ) )sCx 
   r
   