12.07.2015 Views

The Computational Materials Repository

The Computational Materials Repository

The Computational Materials Repository

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

50 Introduction and usage of CMRimport cmrfrom cmr import l o g g e rfrom cmr import Logfrom cmr import CMRExceptionfrom cmr . base . c o n v e r t e r import Converterfrom cmr . t o o l s . e v a l import s a f e e v a lfrom cmr . i o . f l a g s import Flagsc l a s s NewC2Db :@staticmethodd e f a c c e pt ( f i l e n a m e ) :””” r e t u r n s true , i f supported by t h i s c o n v e r t e r ”””r e t u r n f i l e n a m e . endswith ( ” . newc ”)@staticmethodd e f convert mem ( cmr params ,c a l c u l a t o r i n s t a n c e =””,cmr child params=None ) :l o g g e r . l o g (” Converting newc− f i l e to db− f i l e . . . ” ,Log .MSG TYPE INFORMATION)f i l e n a m e = cmr params [ ” input ” ]cmr params [ ” db cmr plugin ” ] = ”newc−p l u g i n v e r s i o n 0 . 1 ”# c r e a t e d i c t i o n a r y with datadata = Converter . g e t x m l w r i t e r ( c a l c u l a t o r n a m e=”newc ” ,c a l c u l a t o r i n s t a n c e =””,mode=Flags .WRITE MODE CONVERT)l i n e s = open ( f i l e n a m e ) . read ( ) . s p l i t (”\ n ”)f o r l i n e i n l i n e s :name , value = l i n e . s p l i t (”=”)name = name . s t r i p ( )value = value . s t r i p ( )t r y :value = s a f e e v a l ( value . s t r i p ( ) ) #don ’ t use e v a l !except :passdata . s e t u s e r v a r i a b l e (name , value )data . s e t u s e r v a r i a b l e (” ase atomic numbers ” , data [ ” atoms ” ] )data . s e t u s e r v a r i a b l e (” a s e p o s i t i o n s ” , data [ ” p o s i t i o n s ” ] )r e t u r ndata@staticmethodd e f c o n v e r t ( cmr params ,c a l c u l a t o r i n s t a n c e =””,cmr child params=None ) :data = NewC2Db . convert mem ( cmr params ,c a l c u l a t o r i n s t a n c e ,cmr child params )data . w r i t e ( cmr params )data . c l o s e ( )r e t u r n [ data . g e t h a s h ( ) ]Figure 2.28: newc2db.py: A converter that reads *.newc files.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!