def __init__(self, allowed_keys, **kwargs): allowed_keys_base = dict() allowed_keys_base.update(allowed_keys) MASTObj.__init__(self, allowed_keys_base, **kwargs) work_dir = '/'.join(self.keywords['name'].split('/')[:-1]) topmeta = Metadata(metafile='%s/metadata.txt' % work_dir) data = topmeta.read_data(self.keywords['name'].split('/')[-1]) self.meta_dict = dict() if data: for datum in data.split(';'): self.meta_dict[datum.split(':')[0]] = datum.split( ':')[1].strip() self.metafile = Metadata(metafile='%s/metadata.txt' % self.keywords['name']) self.program = self.keywords['program_keys']['mast_program'].lower() self.logger = loggerutils.get_mast_logger(self.keywords['name']) sdir = os.path.join(os.path.dirname(self.keywords['name']), "structure_index_files") if os.path.exists(sdir): self.atomindex = AtomIndex(structure_index_directory=sdir) else: self.atomindex = None if self.program == 'vasp': self.checker = VaspChecker( name=self.keywords['name'], program_keys=self.keywords['program_keys'], structure=self.keywords['structure']) self.errhandler = VaspError( name=self.keywords['name'], program_keys=self.keywords['program_keys'], structure=self.keywords['structure']) elif self.program == 'vasp_neb': self.checker = VaspNEBChecker( name=self.keywords['name'], program_keys=self.keywords['program_keys'], structure=self.keywords['structure']) self.errhandler = VaspNEBError( name=self.keywords['name'], program_keys=self.keywords['program_keys'], structure=self.keywords['structure']) elif self.program == 'phon': self.checker = PhonChecker( name=self.keywords['name'], program_keys=self.keywords['program_keys'], structure=self.keywords['structure']) self.errhandler = PhonError( name=self.keywords['name'], program_keys=self.keywords['program_keys'], structure=self.keywords['structure']) elif self.program == 'lammps': self.checker = LammpsChecker( name=self.keywords['name'], program_keys=self.keywords['program_keys'], structure=self.keywords['structure']) self.errhandler = GenericError( name=self.keywords['name'], program_keys=self.keywords['program_keys'], structure=self.keywords['structure']) elif self.program == 'structopt': self.checker = StructoptChecker( name=self.keywords['name'], program_keys=self.keywords['program_keys'], structure=self.keywords['structure']) self.errhandler = GenericError( name=self.keywords['name'], program_keys=self.keywords['program_keys'], structure=self.keywords['structure']) else: allowed_keys = {'name', 'program_keys', 'structure'} self.checker = GenericChecker( name=self.keywords['name'], program_keys=self.keywords['program_keys'], structure=self.keywords['structure']) self.errhandler = GenericError( name=self.keywords['name'], program_keys=self.keywords['program_keys'], structure=self.keywords['structure'])