コード例 #1
0
ファイル: config.py プロジェクト: ToxicWar/turg
import os

import yaml

from turg.logger import getLogger

logger = getLogger(__name__)


def str2bool(val):
    if isinstance(val, str):
        return val.lower() in {'yes', 'true'}

    return val


def get_from_env_or_config(config, param, default=None, param_type=None):
    if default and not param_type:
        param_type = type(default)
    elif not default and not param_type:
        param_type = str

    return param_type(os.environ.get(param.upper(), config.get(param,
                                                               default)))


class Config(object):
    conf_file = None
    mongodb_uri = None
    max_x = None
    max_y = None
コード例 #2
0
ファイル: models.py プロジェクト: PushoN/turg
import attr
from collections import defaultdict
from datetime import datetime

from turg.config import Config
from turg.logger import getLogger

config = Config()
logger = getLogger()


@attr.s
class Voxel(object):
    def __attrs_post_init__(self):
        if self.updated is None:
            self.updated = datetime.utcnow()

    x = attr.ib(convert=int)
    y = attr.ib(convert=int)
    z = attr.ib(convert=int)
    owner = attr.ib()
    name = attr.ib(default=None)
    updated = attr.ib(default=None)


async def get_voxels(x, y, range, db):
    results = db.data.find({'x': {'$gt': x - range, '$lt': x + range},
                            'y': {'$gt': y - range, '$lt': y + range}},
                           projection={'_id': False, 'updated': False})
    data = []
    async for result in results: