a `8aOã@s4ddlZddlZddlmZdZGdd„deƒZdS)éNé)ÚFileBasedSource)ÚJsonFileSourcecs&eZdZ‡fdd„Zddd„Z‡ZS)rcs(| dd¡|_tt|ƒj|i|¤ŽdS)NÚencodingzutf-8)ÚpoprÚsuperrÚ__init__)ÚselfÚargsÚkwargs©Ú __class__©úP/home/carl/code/landscape/setoptconf-tmp/build/lib/setoptconf/source/jsonfile.pyr szJsonFileSource.__init__NcCsht |d|j¡ ¡ ¡}|s dSt |¡}|s2dSt|tƒsDt dƒ‚|D]}|j |vrH||j |_ qH|S)NÚrz$JSON files must contain only objects) ÚcodecsÚopenrÚreadÚstripÚjsonÚloadsÚ isinstanceÚdictÚ TypeErrorÚnameÚvalue)r Ú file_pathÚsettingsÚmanagerÚcontentÚsettingrrrÚget_settings_from_files   z%JsonFileSource.get_settings_from_file)N)Ú__name__Ú __module__Ú __qualname__rr!Ú __classcell__rrr rr s r)rrÚ filebasedrÚ__all__rrrrrÚs