U
    9¡_$
  ã                   @   s®   d dl Z d dlZd dlZG dd„ dƒZd dlZd dlZe ejdd… d¡\ZZ	e
e	ƒdk r~ej ejd  ¡Zej ed¡gZ	d Ze	D ]ZeeƒZe ¡ s†dZq†e e¡ dS )é    Nc                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú	Validatorc                 C   s
   || _ d S )N)Ú	_filename)ÚselfÚfilename© r   ú0/usr/share/system-config-printer/xml/validate.pyÚ__init__   s    zValidator.__init__c                 C   s  | j }td| ƒ tjj t|ƒ ¡ ¡}| ¡ \}}d}t	ƒ }| ¡ D ]}| 
d¡}| |¡ qF| ¡ D ]t}	g }
|	 d¡}|d k	r|
 | ¡ ¡ |	 d¡}|d k	r°|
 | ¡ ¡ |
D ]&}|j ¡ }t ||¡}|t	|ƒ8 }q´qh|D ]}d}td| tjd qâ|S )	NzValidating %sTÚnameÚdriversÚ	blacklistFz"*** Driver type "%s" is never used)Úfile)r   ÚprintÚxmlZetreeZElementTreeZXMLÚopenÚreadZgetchildrenÚsetÚgetÚaddÚfindÚextendÚtextÚstripÚfnmatchÚfilterÚsysÚstderr)r   r   ZpreferreddriversZdrivertypesZpreferenceorderZ	validatesÚnamesZ
drivertyper	   ZprinterÚtypesr
   r   ÚpatternZmatchesr   r   r   Úvalidate"   s:    



ÿÿzValidator.validateN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s   r   é   Ú zpreferreddrivers.xml)r   r   Zxml.etree.ElementTreer   r   ZgetoptÚosÚargvZoptsÚargsÚlenÚpathÚdirnameÚjoinZexitcoder   Z	validatorr   Úexitr   r   r   r   Ú<module>   s   &