Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:48:49

0001 #!/usr/bin/env python
0002 """
0003 OpticksGenstepEnum.py
0004 =======================
0005 
0006 """
0007 
0008 import os
0009 from collections import OrderedDict as odict
0010 from opticks.ana.base import ini_
0011 
0012 
0013 class OpticksGenstepEnum(object):
0014     def __init__(self):
0015         ini = ini_("$OPTICKS_PREFIX/include/OpticksCore/OpticksGenstep_Enum.ini")
0016 
0017         code2name = odict() 
0018         pfx = "OpticksGenstep_"
0019         for kv in sorted(ini.items(),key=lambda kv:int(kv[1])):
0020             assert kv[0].startswith(pfx)
0021             code2name[int(kv[1])] = kv[0][len(pfx):] 
0022         pass
0023         self.code2name = code2name
0024 
0025     def __call__(self, icode):
0026         return self.code2name.get(icode, "INVALID CODE")
0027 
0028     def __repr__(self):
0029         return "\n".join(["%2d : %s " % (int(kv[0]), kv[1]) for kv in self.code2name.items()])
0030 
0031 
0032 if __name__ == '__main__':
0033     oge = OpticksGenstepEnum()
0034     print(oge)
0035