3
 X                 @   s2   d d Z dd Zdd Zdd ZG dd	 d	Zd
S )c             C   sH   | dd  dkr| d d } | j ddkr<| d | j d } | j } | S )N   
z##r   r   )findstrip)line r   ../../scripts/Face.pysanitiseLine   s     r	   c       	      C   sV   | j dd\}}|j d\}}|j d\}}|j d\}}|j d\}}|||||fS )N r   (=),)split)	
featureValretTyperest	nameIdentparamsnamevalueparam1param2r   r   r   decodeFunction   s    r   c             C   s6   | j dd\}}|j d\}}|j d\}}|||fS )Nr
   r   r   r   )r   )r   r   r   r   r   r   r   r   r   r   decodeEvent   s    r   c             C   sP   | j  }d}d}d}d|krF|jd\}}d|krB|jd\}}n|}|||fS )N r
   r   )r   r   )pZparamtyper   r   Znvr   r   r   decodeParam   s    r   c               @   s   e Zd Zdd Zdd ZdS )Facec             C   s   g | _ i | _i | _i | _d S )N)orderfeaturesvaluesevents)selfr   r   r   __init__*   s    zFace.__init__c             C   st  d}g }d}t |}xX|j D ]J}t|}|r |d dkrj|d dkrh|rVg }d}|j|dd   q d}|jdd\}}|dkrHyt|\}	}}
}}W n" tk
r   td
|   Y nX t|}t|}||	|
|d |d |d |d |d |d ||d| j	|< |
| j
kr,td|
 d | d| j
|
< | jj| g }q |dkrt|\}	}}
||	|
||d| j	|< |
| jkrtd|
 d | d| j|
< | jj| q |dkr|}q |dkr&y|jdd\}}
W n( tk
r   td|  t Y nX |||
d| j	|< | jj| q |dks8|dkr |jdd\}}
|||
|d| j	|< | jj| g }q W d S )Nr       #r   r
      fungetsetzFailed to decode %s)FeatureType
ReturnTypeValue
Param1Type
Param1NameZParam1Value
Param2Type
Param2NameZParam2ValueCategoryCommentzDuplicate value evt)r,   r-   r.   r3   r4   zDuplicate event Zcatvalr   z
Failure %s)r,   r3   r.   ZenuZlex)r,   r3   r.   r4   )r)   r*   r+   )open	readlinesr	   appendr   r   
ValueErrorprintr   r!   r"   	Exceptionr    r   r#   )r$   r   ZcurrentCategoryZcurrentCommentZcurrentCommentFinishedfiler   ZfeatureTyper   r   r   r   r   Zp1Zp2r   r   r   ReadFromFile0   s    





zFace.ReadFromFileN)__name__
__module____qualname__r%   r>   r   r   r   r   r   (   s   r   N)r	   r   r   r   r   r   r   r   r   <module>   s   