
    h                     >    d dl mZmZ d dlmZ  G d de          ZdS )    )ABCabstractmethod)fieldsc                   J    e Zd Zed             Zeed                         ZdS )
ConfigSpecc           	          d t          |           D             }|                                D ]#}||vrt          d| d| j         d|           $d S )Nc                     g | ]	}|j         
S  )name).0fields     //data/cameron/tmprepos/2unirig/src/data/spec.py
<listcomp>z)ConfigSpec.check_keys.<locals>.<listcomp>   s    666%*666    zexpect names z in z, found )r   keys
ValueError__name__)clsconfigexpectkeys       r   
check_keyszConfigSpec.check_keys   sz    66&++666;;== 	Z 	ZC&   !X!X!XS\!X!XSV!X!XYYY !	Z 	Zr   c                     d S )Nr
   )r   r   s     r   parsezConfigSpec.parse   s	     	r   N)r   
__module____qualname__classmethodr   r   r   r
   r   r   r   r      sU        Z Z [Z   ^ [  r   r   N)abcr   r   dataclassesr   r   r
   r   r   <module>r       sc    # # # # # # # #               r   