Esempio n. 1
0
    def from_file(cls, filename, kind=None):
        """
        Configuration from a string filename
        """
        func = None
        
        if filename.endswith('.yml') or kind=='YAML':
            func = get_yaml
        elif filename.endswith('.json') or kind=='JSON':
            func = get_json
        elif filename.endswith('.pf') or kind=='PF':
            from nsl.antelope.pf import get_pf
            c = get_pf(filename)
        else:
            raise NotImplementedError("No support for format: {0} type={1}".format(filename, kind))

        if func:
            with open(filename) as f:
                c = func(f)
            
        try:
            config =  cls(**c)
        except:
            config = cls()
            config.__content__ = c
        finally:
            return config
 def load_pf(cls, pfname='db2quakeml'):
     try:
         pf = get_pf(pfname)
     except Exception:
         pf = {}
     finally:
         cls.agency = pf.get('AGENCY_CODE', 'XX') 
         cls.place_db = pf.get('PLACE_DB', None)
         cls.auth_id = pf.get('authority', 'local')
         cls.emap = pf.get('etypes',{})
         del pf
Esempio n. 3
0
 def main(cls):
     """
     Main function to run as a script
     """
     # Change logger to class name, logging to stderr
     cls.logger = logging.customLogger(cls.__name__, ['stderr'])
     # Prefer command line orb, else see if you have one in a pf
     if len(sys.argv) > 1:
         ORB = sys.argv[1]
     else:
         pf = get_pf(cls._pffilename)
         ORB = pf.get('ORB')
     # Instantiate and run forever
     rtapp = cls(orbname=ORB)
     try:
         rtapp.start()
     except Exception as e:
         rtapp.logger.exception(e)
         rtapp.logger.critical("Uncaught exception, exiting...")
         sys.exit(1)