Blame server.py

3d8d28
cbf076
import datetime
4656ad
from db.types import bytype, bychar
cbf076
from db.pool import Pool
cbf076
cbf076
3d8d28
class Server:
3d8d28
  def __init__(self, config):
cbf076
    urlprefix = str(config.get('urlprefix', ''))
cbf076
    
cbf076
    config_db = config.get('db', dict())
cbf076
    config_db_pool = config_db.get('pool', dict())
cbf076
    
cbf076
    self.config = {
cbf076
      'urlprefix'     : urlprefix,
cbf076
      'urldataprefix' : str(config.get('urldataprefix', urlprefix + '/data')),
cbf076
      
cbf076
      'db' : {
cbf076
        'connection'  : dict(config_db.get('connection', dict())),
4656ad
        'prefix'      : str(config_db.get('prefix', '')),
cbf076
        'retrytime'   : float(config_db.get('retrytime', 0)),
cbf076
        'pool': {
cbf076
          'read'      : int(config_db_pool.get('read' , 10)),
cbf076
          'write'     : int(config_db_pool.get('write', 10)),
cbf076
        },
cbf076
      },
cbf076
    }
cbf076
    
cbf076
    assert self.config['db']['retrytime'] >= 0
4656ad
    assert self.config['db']['prefix'] == '' \
4656ad
        or self.config['db']['prefix'].isidentifier()
cbf076
    assert self.config['db']['pool']['read']  > 0
cbf076
    assert self.config['db']['pool']['write'] > 0
cbf076
    
4656ad
    self.dbtypebytype = bytype
4656ad
    self.dbtypebychar = bychar
cbf076
    self.dbpool = Pool(self)
4656ad
    
cbf076