Blob Blame Raw

import datetime
from db.pool import Pool


class Server:
  def __init__(self, config):
    urlprefix = str(config.get('urlprefix', ''))
    
    config_db = config.get('db', dict())
    config_db_pool = config_db.get('pool', dict())
    
    self.config = {
      'urlprefix'     : urlprefix,
      'urldataprefix' : str(config.get('urldataprefix', urlprefix + '/data')),
      'timezone'      : config.get('timezone', datetime.timezone.utc),
      
      'db' : {
        'connection'  : dict(config_db.get('connection', dict())),
        'retrytime'   : float(config_db.get('retrytime', 0)),
        'pool': {
          'read'      : int(config_db_pool.get('read' , 10)),
          'write'     : int(config_db_pool.get('write', 10)),
        },
      },
    }
    
    assert type(self.config['timezone']) is datetime.timezone
    assert self.config['db']['retrytime'] >= 0
    assert self.config['db']['pool']['read']  > 0
    assert self.config['db']['pool']['write'] > 0
    
    self.dbpool = Pool(self)