U
    Ú€R]  ã                   @   s~   d dl mZ d dlZG dd„ dƒZG dd„ dƒZdd„ Zd	d
„ Zdd„ ZedkrzedƒD ]Z	e
e	ƒ qXeƒ D ]Z	e
e	ƒ qldS )é    )Úprint_functionNc                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚVariantc                 C   s   || _ || _|| _d S ©N©ÚnameÚdescÚraw_desc)Úselfr   r   r   © r
   ú6/usr/lib/python3/dist-packages/LanguageSelector/xkb.pyÚ__init__   s    zVariant.__init__c                 C   s   d| j | j| jf S )Nz
%s: %s, %sr   ©r	   r
   r
   r   Ú__str__   s    zVariant.__str__N©Ú__name__Ú
__module__Ú__qualname__r   r   r
   r
   r
   r   r      s   r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚLayoutc                 C   s(   || _ || _|| _|| _|| _|| _d S r   ©r   r   r   Ú
short_descÚraw_short_descÚvariants)r	   r   r   r   r   r   r   r
   r
   r   r      s    zLayout.__init__c                 C   s*   d| j | j| j| j| jdd„ | jD ƒf S )Nz%s: %s, %s; %s, %s;; %sc                 S   s   g | ]}d | ‘qS )z%sr
   )Ú.0Úxr
   r
   r   Ú
<listcomp>   s     z"Layout.__str__.<locals>.<listcomp>r   r   r
   r
   r   r      s    zLayout.__str__Nr   r
   r
   r
   r   r      s   r   c                  C   s8   t ƒ } t d¡}| ¡ }| d¡D ]}|  |j¡ q"| S )Nú/etc/X11/xkb/rules/xorg.xmlú;/xkbConfigRegistry/layoutList/layout/configItem/name/text())ÚlistÚlibxml2Ú	parseFileÚxpathNewContextÚ	xpathEvalÚappendÚcontent)Zpossibility_listÚdocÚctxtÚir
   r
   r   Úget_all_layout_possibilities   s    
r'   c                 C   sp   t ƒ }|  d¡}|D ]V}t| d| ¡ƒdkrB| d| ¡d }nd}t|j|| d¡d jƒ}| |¡ q|S )Nz3../../../variantList/variant/configItem/name/text()ú../description[@xml:lang='%s']r   Ú ú../../description[position()=1])r   r!   Úlenr   r#   r"   )Zlayout_nodeÚlangZvariant_listZvariant_nodesr&   ZtransÚvr
   r
   r   Úget_variants&   s    
r.   c                 C   sÎ   t ƒ }t d¡}| ¡ }| d¡}|D ]¢}|j| kr&t| d|  ¡ƒdkr^| d|  ¡d }nd}t| d|  ¡ƒdkrŒ| d|  ¡d }nd}| t|j|| d¡d j|| d¡d jt	|| ƒƒ¡ q&|S )	Nr   r   r(   r   r)   z#../shortDescription[@xml:lang='%s']r*   z$../../shortDescription[position()=1])
r   r   r   r    r!   r#   r+   r"   r   r.   )r,   Zlayout_listr$   r%   Zlayout_nodesr&   ZtranslationZshort_transr
   r
   r   Úget_layouts6   s(    



  ýr/   Ú__main__Úfr)Z
__future__r   r   r   r   r'   r.   r/   r   r&   Úprintr
   r
   r
   r   Ú<module>   s   	

