+
    Kin
  c                   s.    ^ RI t ^ RIHt  ! R R4      tR# )    N)loggerc                   sp   a  ] tR t^t o RRRRRR/tR t]R 4       tR	 tR
 t	R t
R tR tR tR tRtV tR# )RetroConfigZtrueTZfalseF Nc                sF    V'       g   \        R 4      hWn        . V n        R# )zConfig path is mandatoryN)Z
ValueErrorconfig_path_config)selfr   s   &&9/usr/lib/python3.14/site-packages/lutris/util/libretro.py__init__ZRetroConfig.__init__	   s    788&    c                s    V P                   '       d   V P                   #  V P                  4        V P                   #   \         d'    \        P                  ! RT P
                  4       . u # i ; i)z$Lazy loading of the RetroArch configzQThe Retroarch config in %s could not be read because of character encoding issues)r   load_configZUnicodeDecodeErrorr   Zerrorr   )r   s   &r   configZRetroConfig.config   s`     <<<<<	<<! 	LLceieueu I		s   < .A-,A-c                s   . V n         \        P                  P                  V P                  4      '       g%   \        RP                  V P                  4      4      h\        V P                  RRR7      ;_uu_ 4       pVP                  4        F  pV'       g   K  VP                  4       pVR8X  g   VP                  R4      '       d   K=  RV9   g   KF  VP                  R^4      w  r4VP                  4       pVP                  4       P                  R4      pV'       d	   V'       g   K  V P                   P                  W434       K  	  R	R	R	4       R	#   + '       g   i     R	# ; i)
z Load the configuration from filez'Specified config file {} does not existZrutf-8Zencodingr   Z#Z=Z"N)r   osZpathZisfiler   ZOSErrorformatopenZ	readlinesZstripZ
startswithZsplitappend)r   config_fileZlinekeyvalues   &    r   r
   ZRetroConfig.load_config   s    ww~~d..//CJJ4K[K[\]]$""C'::k#--/zz|2:!5!5$;!%C!3JC))+C!KKM//4Ee LL''5 0 ;:::s    ;AEEAE%"EE"	c           	     s    \        V P                  R RR7      ;_uu_ 4       pV P                   F%  w  r#VP                  RP	                  W#4      4       K'  	  RRR4       R#   + '       g   i     R# ; i)Zwr   r   z
{} = "{}"
N)r   r   r   Zwriter   )r   r   r   r   s   &   r   saveZRetroConfig.save1   sQ    $""C'::k"kk
!!-"6"6s"BC * ;:::s   6A!!A2	c                s^    V P                   P                  4        F  w  r#WJ g   K  Vu # 	  V# N	value_mapZitemsr   r   kZv   &&  r   serialize_valueZRetroConfig.serialize_value6   s,    NN((*DAz + r	   c                s`    V P                   P                  4        F  w  r#W8X  g   K  Vu # 	  V# r   r   r   r   r   deserialize_valueZRetroConfig.deserialize_value<   s,    NN((*DAz + r	   c                sb    V P                    F  w  r#W8X  g   K  V P                  V4      u # 	  R # r   )r   r   )r   r   r   r   r   r   __getitem__ZRetroConfig.__getitem__B   s(    HAx--e44 $r	   c                s    \        V P                  4       F4  w  r4W^ ,          8X  g   K  WP                  V4      3V P                  V&    R# 	  V P                  P	                  WP                  V4      34       R# )r    N)Z	enumerater   r   r   r   )r   r   r   ZindexZconfs   &&&  r   __setitem__ZRetroConfig.__setitem__G   sa    $T[[1KE1g~'*,@,@,G&HU#	 2
 	S"6"6u"=>?r	   c                sN    V P                    UUu. uF  w  rVNK	  	  upp# u uppi r   )r   )r   r   Z_values   &  r   keysZRetroConfig.keysO   s     )-5555s   !)r   r   )Z__name__Z
__module__Z__qualname__Z__firstlineno__r   r   Zpropertyr   r
   r   r   r   r   r   r    Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r      sZ     wr48I  6(D
5
@6 6r	   r   )r   Zlutris.util.logr   r   ) r	   r   <module>r!      s    	 "J6 J6r	   