HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/lib/python3/dist-packages/LanguageSelector/__pycache__/macros.cpython-38.pyc
U

ڀR]��@s�dZddlmZddlZddlZddd�ZGdd�d�ZGdd	�d	�Zed
kr�dZ	dD]dZ
ee	e
�Zed
e
d�dZ
ede�e
��edd��e
�e�d�eded����e�d�qVdS)z�macros.py: Generate macro values from configuration values and provide
substitution functions.

The following macros are available:

  LCODE CCODE PKGCODE LOCALE
�)�print_functionNc	Cs�d}t|�D]^}z|�|�\}}Wntk
r:YqYnX|�d�dks|�d�dkrZq||kr|��}q|dkr�td||f��|S)z[Look up key in given file ("key value" lines). Throw an exception if
    key was not found.N�#rzKey %s not found in %s)�open�split�
ValueError�find�strip�KeyError)�file�key�sep�val�l�k�v�r�9/usr/lib/python3/dist-packages/LanguageSelector/macros.py�	_file_maps

rc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�LangcodeMacrosz1/usr/share/language-selector/data/langcode2localec	Cs�i|_i}t|j�D]t}z|��}|�d�\}}Wntk
rJYqYnX|�d�dks|�d�dkrjq||krzg||<||�|�q|||d<dS)N�:rrZLOCALES)�macrosr�LANGCODE_TO_LOCALE�rstriprrr�append)�selfZlangCodeZlocalesrrrrrr�__init__%s
zLangcodeMacros.__init__cCs|j�|d�S�N��r�get�r�itemrrr�__getitem__5szLangcodeMacros.__getitem__cCs||j|<dS�N�r�rr!�valuerrr�__setitem__9szLangcodeMacros.__setitem__cCs|j�|�Sr#�r�__contains__r rrrr)<szLangcodeMacros.__contains__N)�__name__�
__module__�__qualname__rrr"r'r)rrrrr!s
rc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�LangpackMacroscCs�tj�|dd�|_i|_d|d<d|d<d|d<d|d<d|d<d|d	<|d
ksX|dkr\d}d
|krv|�d
�\}|d<d|kr�|�d�d}d|kr�|�d�\|d<|d<n||d<t|d�dkr�d||df|d<n||d<t|d�dk�rZt|d�dk�r d|d|df|d	<nd|d|d	<t|d�dk�rZd|d	|df|d	<zt|j|dd�|d<Wn"tk
�r�|d|d<YnXdS)a9Initialize values of macros.

        This uses information from maps/, config/, some hardcoded aggregate
        strings (such as package names), and some external input:
        
        - locale: Standard locale representation (e. g. pt_BR.UTF-8)
                  Format is: ll[_CC][.UTF-8][@variant]
        �dataZlocale2langpackrZLCODEZCCODEZVARIANT�LOCALEZPKGCODEZ	SYSLOCALE�CZPOSIXZen_US�@�.r�_z%s@%sz%s_%s.UTF-8z%s.UTF-8rN)	�os�path�joinZLOCALE_TO_LANGPACKrr�lenrr	)r�datadir�localerrrr@s<
zLangpackMacros.__init__cCs|j�|d�Srrr rrrr"pszLangpackMacros.__getitem__cCs||j|<dSr#r$r%rrrr'tszLangpackMacros.__setitem__cCs|j�|�Sr#r(r rrrr)wszLangpackMacros.__contains__cCs\t�d�}|�|�}|rX|d|�d�d�||�d�||�d�dd�}q
qXq
|S)z&Substitute all macros in given string.z
%([A-Z]+)%N�)�re�compile�search�start�group�end)r�sZre_macro�mrrr�subst_stringzs

<zLangpackMacros.subst_stringcCs&t|���}t|d��|�|��dS)z$Substitute all macros in given file.�wN)r�read�writerC)rr
rArrr�
subst_file�szLangpackMacros.subst_filec	Cs:t�|�D]*\}}}|D]}|�tj�|||��qq
dS)z.Substitute all macros in given directory tree.N)r4�walkrGr5r6)r�rootr5�dirs�files�frrr�
subst_tree�szLangpackMacros.subst_treeN)
r*r+r,rr"r'r)rCrGrMrrrrr-?s0
r-�__main__z/usr/share/language-selector)	ZdeZde_DEzde_DE.UTF-8zde_DE.UTF-8@eurozfr_BE@latinzzh_CN.UTF-8zzh_TW.UTF-8zzh_HK.UTF-8Zinvalid_Localez-------z---------------z;"%PKGCODE%: %LCODE% %CCODE% %VARIANT% %LOCALE% %SYSLOCALE%"zstring:ZtesttestrDzfile  :)N)�__doc__Z
__future__rr4r;rrr-r*r8r9r�print�templaterCrrFrGrE�unlinkrrrr�<module>s"
U