
xR                 @   s   d  d l  m Z d  d l Z Gd d   d  Z Gd d   d  Z d d   Z d	 d
   Z d d   Z e d k r x e d  D] Z	 e
 e	  q Wx e   D] Z	 e
 e	  q Wd 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, %s)r   r   r   )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)N)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   s9   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   )r   r   r   r	   r      s    zLayout.__str__N)r   r   r   r
   r   r   r   r   r	   r      s   r   c              C   sR   t    }  t j d  } | j   } x' | j d  D] } |  j | j  q4 W|  S)Nz/etc/X11/xkb/rules/xorg.xmlz;/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   s   t    } |  j d  } x | D]w } t | j d |   d k r^ | j d |  d } n d } t | j | | j d  d j  } | j |  q W| S)Nz3../../../variantList/variant/configItem/name/text()z../description[@xml:lang='%s']r    z../../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 j d  } | j   } | j d  } x | D] } | j |  k r: t | j d |    d k r | j d |   d } n d } t | j d |    d k r | j d |   d } n d } | j t | j | | j d  d j | | j d  d j t	 | |     q: W| S)	Nz/etc/X11/xkb/rules/xorg.xmlz;/xkbConfigRegistry/layoutList/layout/configItem/name/text()z../description[@xml:lang='%s']r   r!   z#../shortDescription[@xml:lang='%s']z../../description[position()=1]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__Zfr)Z
__future__r   r   r   r   r    r%   r&   r   r   printr   r   r   r	   <module>   s   	