Пример #1
0
 def __init__(self, loglevel):
     'Create object that works out the jobs'
     logger = Logger(loglevel)  # configure logging
     self.logger = logger.get()  # get the logging function
     self.storage = Storage(self.logger)  # object for file system accesss
     self.chrome = Chrome(
         self.logger)  # object to work with chrome/chromium
     self.modulenames = [i['name'] for i in self.MODULES]
     self.logins = dict()
     self.options = dict()
     for i in self.MODULES:
         if i['login'] != None:
             self.logins[i['name']] = {j: '' for j in i['login']}
         else:
             self.logins[i['name']] = None
         if i['options'] != None:
             self.options[i['name']] = {
                 j: i['options'][j]
                 for j in i['options']
             }
         else:
             self.options[i['name']] = None
     self.options_defaults = {
         i: {j: self.options[i][j]['default']
             for j in self.options[i]}
         for i in self.options
     }
Пример #2
0
    def __init__(self,
                 username=None,
                 password=None,
                 headers=None,
                 user_type=None,
                 grant_type=None):

        if not username: username = config.get_data_username
        if not password: password = config.get_data_password
        if not user_type: user_type = 1
        if not grant_type: grant_type = password
        if headers is None:
            self.headers = {"Content-Type": "application/json;charset=UTF-8"}
        self.username = username
        self.session = requests.session()
        self.log = Logger()
        if len(password) == 32:
            self.password = password
        else:

            self.password = "******"

        self._config = self.base_yaml_info(curr_file=__file__,
                                           module_key="dataUser")

        self._get_header()
Пример #3
0
    def on_match_act(self, act, room_id, user_id, score):
        table = TableMgr().room_dict.get(room_id)
        if table and table.match > 0:
            player = table.player_dict.get(user_id)
            if not player:
                player = table.lookon_player_dict.get(user_id)
            if player:
                # 同步分数
                player.match_score = score
                msg_dict = {
                    "player": user_id,
                    "score": player.get_total_score()
                }
                table.send_table_msg(SYNC_SCORE, msg_dict)

                # 处理动作
                if act == "ready":
                    if player.state == "InitState" or player.state == "SettleState" or player.state == "PauseState":
                        if player.get_total_score(
                        ) < player.table.conf.get_sit_score():
                            player.send(SCORE_LEAK, {})
                        else:
                            player.ready()
                elif act == "enter":
                    pass
            else:
                Logger().warn("match room {0} ready user {1} not exist".format(
                    room_id, user_id))
 def __init__(self, database_config):
     self.cnx = None
     self.cursor = None
     self.db_is_connected = False
     self.username = database_config[Config.Keys.Database.username]
     self.password = database_config[Config.Keys.Database.password]
     self.host = database_config[Config.Keys.Database.host]
     self.logger = Logger(LoggerConfig.file_path)
Пример #5
0
 def test_back_login(self, user, pwd, expect):
     self.PageBackLogin.back_login(user, pwd)
     ret = self.driver.current_url
     try:
         assert expect in ret
         print('断言通过,测试后台登录通过')
     except AssertionError:
         self.PageBackLogin.base_get_image()
         Logger().get_logger('login.log').error('断言失败,测试后台登录不通过')
         raise
Пример #6
0
 def test_check_article(self, title, channel):
     self.PageCheckArticle.check_article(title, channel)
     ret = self.PageCheckArticle.find_article()
     try:
         assert ret
         print('断言成功,测试审核文章通过')
     except AssertionError:
         self.PageCheckArticle.base_get_image()
         Logger().get_logger('login.log').error('断言失败,测试审核文章不通过')
         raise
Пример #7
0
 def on_body(self, data):
     try:
         msg_dict = msgpack.unpackb(data)
     except Exception, e:
         print e, self.address
         self.close()
         from base.logger import Logger
         Logger().local(
             "fake_ip.log",
             self.address[0] + ":" + str(self.address[1]) + ":unpack")
         return
Пример #8
0
def _train_auto_encoders():
    n_folds = 1
    top = None
    val_top = None
    train_bsize = 256
    test_b_size = 64
    num_planes = 2
    scores = []

    one_transform = transforms.Compose([
        Flip(axis=2, targets_also=True, rnd=True),
        Flip(axis=1, targets_also=True, rnd=True),
        Rotate(90, targets_also=True, rnd=True),
        Rotate(180, targets_also=True, rnd=True),
        Ravel(),
        ToTensor()
    ])
    val_transform = transforms.Compose([Ravel(), ToTensor()])

    for f in range(n_folds):
        main_logger = Logger("../logs/enc/", erase_folder_content=False)
        train_set = AutoEncoderDataset("../data/all.npy",
                                       transform=one_transform,
                                       top=top)
        train_loader = DataLoader(train_set,
                                  batch_size=train_bsize,
                                  num_workers=12,
                                  pin_memory=True,
                                  shuffle=True)
        val_set = AutoEncoderDataset("../data/folds/test_1.npy",
                                     transform=val_transform,
                                     top=val_top)
        val_loader = DataLoader(val_set,
                                batch_size=test_b_size,
                                num_workers=6,
                                pin_memory=True)

        encoder = VariationalAutoEncoder(num_planes, fold_number=None)
        if torch.cuda.is_available():
            encoder.cuda()
        optim = torch.optim.Adam(encoder.parameters(),
                                 lr=0.001,
                                 weight_decay=0)
        best = encoder.fit(optim,
                           loss_function,
                           train_loader,
                           val_loader,
                           100,
                           logger=main_logger)
        scores.append(best)
        print()
        print("Best was ", best)
    print(scores)
    return scores
Пример #9
0
    def __init__(self, deviceCode, socket_addr, aes_key):

        self.deviceCode = deviceCode
        self.socket_addr = socket_addr
        self.aes_key = aes_key
        self.log = Logger()

        self.simulate_socket_conn()
        self.simulate_device_login()

        g1 = gevent.spawn(self.simulate_device_beat)
        g1.join()
Пример #10
0
 def on_head(self, data):
     self.last_time = time.time()
     self.head_data = data
     size = ord(data[0]) * 256 + ord(data[1])
     if size <= 0 or size > 4096:
         print "bad package, size:", size, " ", self.address
         self.close()
         from base.logger import Logger
         Logger().local(
             "fake_ip.log",
             self.address[0] + ":" + str(self.address[1]) + ":size")
         return
     self._stream.read_bytes(size, self.on_body)
Пример #11
0
 def test_article(self, name, content, expect):
     self.PageArticle.option_content()
     sleep(2)
     self.PageArticle.article(name, content)
     ret = self.PageArticle.get_info()
     sleep(2)
     try:
         assert ret == expect
         print('实际结果为{},预期结果为{},测试发布文章通过'.format(ret, expect))
     except AssertionError:
         print('实际结果为{},预期结果为{},测试没有通过'.format(ret, expect))
         self.PageArticle.base_get_image()
         Logger().get_logger('login.log').error('断言失败,测试发布文章没有通过')
         raise
Пример #12
0
    def __init__(self, room_id, room_uuid, group_id, guild_id, match, owner,
                 kwargs):
        super(Table, self).__init__()
        self.chairs = 6  # 默认人数
        self.room_id = room_id  #桌子ID
        self.room_uuid = room_uuid
        self.owner = owner  #房主ID
        self.group_id = group_id  # 群id
        self.guild_id = guild_id  # 公会ID
        self.guild_admins = []  #公会管理员Id
        self.match = match  # 比赛房
        self.owner_info = None
        self.kwargs = str(kwargs)
        self.player_dict = {}
        self.seat_dict = {}  #桌子上的玩家对象
        self.lookon_player_dict = {}  # 旁观玩家列表
        self.machine = None
        self.state = None
        self.dismiss_state = False
        self.dismiss_sponsor = None
        self.dismiss_time = 0
        self.logger = Logger()  # 战斗日志
        self.dealer_seat = -1  # 庄家位置
        self.active_seat = -1
        self.active_card = 0
        self.discard_seat = -1
        self.event = None
        self.cards_total = 136
        self.base_score = 0  # 庄家压分 诈金牛奖金池
        self.conf = None  # 桌子配置
        self.sport_id = 0

        self.st = time.time()
        self.dt = self.st + 20 * 60
        #20分钟后解散房间
        if match > 0:
            self.dt = self.st + 72 * 3600
        self.et = 0
        self.replay = []  # 桌子记录
        self.cards_on_desk = []  # 当前桌子牌堆
        self.cur_round = 1  # 当前回合数
        self.timers = {}
        self.timer_active = True
        self.show_card_end_time = 0

        # 洗牌使用
        self.niu_max = 0  # 大牌型出现次数
        Machine(self)
Пример #13
0
    def __init__(self, session=False, verbose=False):

        # 解决控制台输出 InsecureRequestWarning 的问题
        urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

        self.log = Logger()

        self.headers = {}

        self.verbose = verbose
        self.info = dict()

        if session:
            self.request = requests.session()
        else:
            self.request = requests
Пример #14
0
    def __init__(self, username=None, password=None, headers=None):

        if not username: username = config.get_b2b_username
        if not password: password = config.get_b2b_password
        if headers is None:
            self.headers = {"Content-Type": "application/json;charset=UTF-8"}
        self.username = username
        self.session = requests.session()
        self.log = Logger()
        if len(password) == 32:
            self.password = password
        else:
            self.password = "******"

        self._config = self.base_yaml_info(curr_file=__file__,
                                           module_key="b2bUser")

        self._get_header()
    def train():
        from cnn.simple_ds import SimpleIcebergDataset
        from cnn.dataset import IcebergDataset, Ravel, ToTensor
        from torch.utils.data import DataLoader
        import torch
        from base.logger import Logger

        main_logger = Logger("../logs/simple", erase_folder_content=True)

        ds = SimpleIcebergDataset("../data/for_train_encoder.npy", transform=ToTensor())
        val_ds = SimpleIcebergDataset("../data/for_test_encoder.npy", transform=ToTensor())
        ldr = DataLoader(ds, batch_size=64)
        val_ldr = DataLoader(val_ds, batch_size=64)
        model = SimpleMLP()

        optim = torch.optim.Adam(model.parameters(), lr=0.0001, weight_decay=0.005)
        loss_fn = nn.BCELoss()
        if torch.cuda.is_available():
            model.cuda()
            loss_fn.cuda()
        best = model.fit(optim, loss_fn, ldr, val_ldr, 250, logger=main_logger)
        print(best)
Пример #16
0
def handler(cmd, msg_dict, session):
    if cmd == CG_CREATE_ROOM:
        create_room(msg_dict, session)
    elif cmd == CG_DISMISS_ROOM:
        dismiss_room(msg_dict, session)
    elif cmd == CG_SYNC_ROOM:
        sync_room(msg_dict, session)
    elif cmd == CG_USER_TOKEN:
        user_token(msg_dict, session)
    elif cmd == CG_MATCH_SCORE:
        match_score(msg_dict, session)
    elif cmd == GC_ROOM_RESET:
        room_reseted(msg_dict, session)
    elif cmd == CG_EMO_AMOUNT:
        emo_amount(msg_dict, session)
    elif cmd == GC_MATCH_ACT:
        match_act(msg_dict, session)
    elif cmd == CG_CREATE_SPORT_ROOM:
        create_sport_room(msg_dict, session)
    elif cmd == CG_DISMISS_SPORT:
        dismiss_sport(msg_dict, session)
    else:
        Logger().warn("center client error cmd:%d"%cmd)
Пример #17
0
import pytest
from conftest import cases_path, max_fail
from base.logger import Logger
import os

logger = Logger('root').getlog()
if __name__ == '__main__':
    pytest.main(["-s", "--alluredir", "./report/xml", "--maxfail", max_fail])
    os.system('allure generate report/xml/ -o report/html --clean')
    logger.info("test end! Generate test report")
Пример #18
0
    def enter(self, room_id, player_id, info, user_token, session):
        print "enter room %d" % room_id
        table = self.room_dict.get(room_id)
        if not table:
            if room_id in self.room_settle_cache:
                send(SETTLEMENT_FOR_ROOM_DN, self.room_settle_cache[room_id],
                     session)
                msg_dict = dict()
                msg_dict["code"] = 0
                send(DISMISS_ROOM, msg_dict, session)
            else:
                # 给前端返回房间不存在的错误
                msg_dict = dict()
                msg_dict["code"] = 1
                send(ENTER_ROOM, msg_dict, session)
                print("room {0} not exist, player {1} enter failed".format(
                    room_id, player_id))
            return

        #检测token是否合法
        token = redis.get("token:{0}".format(player_id))

        if token == None or token != user_token:
            msg_dict = dict()
            msg_dict["code"] = 3  #token验证不通过,非法用户
            send(ENTER_ROOM, msg_dict, session)
            table.logger.info("token error: server;{0} client:{1}".format(
                token, user_token))
            return

        if table.room_id != room_id:
            self.room_dict[table.room_id] = table
            del self.room_dict[room_id]
            msg_dict = dict()
            msg_dict["code"] = 1
            send(ENTER_ROOM, msg_dict, session)
            table.logger.fatal(
                "room id map error: msg {0} actually {1}".format(
                    room_id, table.room_id))
            return
        from base.match_mgr import MatchMgr
        player = table.player_dict.get(player_id)
        if player:
            # 服务重启后player没有session
            if player.session:
                if session != player.session:
                    player.table.logger.info(
                        "player {0} cancel old session {1}".format(
                            player_id, player.session.uuid))
                    # SessionMgr().cancel(player.session)
                    player.session.close()
            SessionMgr().register(player, session)
            player.table.logger.info(
                "player {0} register new session {1}".format(
                    player_id, player.session.uuid))
            if player.seat == -1:
                seat = -1
                for seat in range(table.chairs):
                    if seat in table.seat_dict.keys():
                        continue
                    break
                player.seat = seat
            MatchMgr().player_enter(player)
            player.reconnect()
            player.reload_extra()
            player.online_status(True)
        else:
            player = table.lookon_player_dict.get(player_id)
            if player and player.session and session != player.session:
                player.table.logger.info(
                    "player {0} cancel old session {1}".format(
                        player_id, player.session.uuid))
                player.session.close()
            table.enter_room(player_id, info, session)

        Logger().local("ip.log",
                       session.address[0] + ":" + str(session.address[1]))
Пример #19
0
def process_args(args, kwargs, options):
    """ process arguments"""
    # create the output directory
    out_dir = args.output
        
    if os.path.exists(out_dir) and not os.path.isdir(out_dir):
        if not ((hasattr(args, 'realtime') and args.realtime)
            or (hasattr(args, 'use_prefit_model') and args.use_prefit_model)):
            dtime = datetime.fromtimestamp(os.path.getctime( out_dir)).strftime('%y%m%d_%H%M%S')
            name =  out_dir+'_'+ dtime
            os.rename( out_dir, name)

    if not os.path.exists(out_dir):
        os.makedirs( out_dir)
    
    # create logger 
    log_name = os.path.join(out_dir, args.task.title() + '.log')
    args.logger = Logger(log_name)
    args.date_format = __date_format__

    # standard output the running of module with current Python version    
    args.logger.start("Running task '{task}', using '{prog} v{version}' under Python {py} by '{user}' on '{sys}', output to  '{output}'".format(
            task=args.task,
            prog=os.path.split(kwargs['__current_module__'])[1], 
            version=kwargs['__version__'], 
            py='.'.join(map(str, __sys_version__[:3])), 
            user=__user__, 
            sys=__sys_name__,
            output=args.output)
    )
    #args.logger.info("using arguments: {args}".format(args=args.__dict__))

    if hasattr(args, 'force_cpu') and args.force_cpu:
        # force tensoflow to use CPU only on machines with a GPU
        os.environ["CUDA_VISIBLE_DEVICES"] = ""  

    # establish the input database connection if required
    if hasattr(args, 'idb_connstr') and args.idb_connstr != '':
        try:
            # using sqlalchemy
            #iengine = create_engine(conn_str=args.idb_connstr)
            #args.idb = iengine.connect()

            # using turbodbc
            args.idb = DataBase(conn_str=args.idb_connstr)

        except:
            args.logger.critical("failed to connect to the input Database using the connection strings entered with '-d'.")

    # establish the input database connection if required
    if hasattr(args, 'odb_connstr') and args.odb_connstr != '':
        try:
            engine = create_engine(args.odb_connstr, convert_unicode=True)
            args.odb = Session(engine)
            try:
                __, abbr, project_name, run_name, task = args.output.split(os.sep)
                args.logger.info("storing run '%s' records in the database." % run_name)
                product = args.odb.query(Product).filter_by(abbr=abbr).first()
                if not product:
                    args.logger.error("product abbr '%s' is not valid." % abbr)
                    raise ValueError("product abbr '%s' is not valid." % abbr)
                project = args.odb.query(Project).filter_by(name=project_name, product=product).first()
                if not project:
                    args.logger.error("project name '%s' is not valid." % project_name)
                    raise ValueError("project name '%s' is not valid." % project_name)
                user = args.odb.query(User).filter_by(login=args.user).first()
            except:
                args.logger.error("failed to parse the project properties from the '-o' argument; the run won't be recorded in the database.")
                raise ValueError("failed to parse the project properties from the '-o' argument; the run won't be recorded in the database.")
            
            args.logger.info("storing run '%s' records in the database." % run_name)
            run = args.odb.query(Run).filter_by(name=run_name, project=project).first()
            if run:                
                args.logger.warning("run '%s' already exists; replacing the run results.")
                args.odb.delete(run)
                args.odb.flush()
            run = Run(name=run_name, project=project, project_id=project.id, task=task)
            project.runs.append(run)
            if user:
                run.user = user
            inputs = []
            for k in args.__dict__:
                if getattr(args, k) is None:
                    pass
                elif k in ['idb', 'odb', 'idb_connstr', 'odb_connstr', 'logger', 'date_format', 'task', 'output']:
                    pass
                elif getattr(args, k) != '':
                    inputs.append(Parameter(name=k, value=str(getattr(args, k))))
            run.inputs = inputs
            args.run = run
            args.odb.add(run)
            args.odb.flush()            
        except:
            args.logger.critical("failed to connect to and store run records in the output Database.")
    
    if not hasattr(args, 'show'):
        setattr(args, 'show', False)

    if not args.show:
        os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2" 
        # suppress warning and debug info

    # process list-type options
    for key, option in options.items():
        if option['nargs'] == '+' and type(getattr(args, key)) != list:
            setattr(args, key, [getattr(args, key)])
        
    # check the range for 'Test-to-Train' ratio
    if hasattr(args, 'test_ratio'):
        frange = (0, 1)
        if args.test_ratio < frange[0] or args.test_ratio > frange[1]:
            args.logger.critical("'test_ratio' is not in range [{}, {}}]".format(frange))
Пример #20
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Copyright (c) 2019 Jared Recomendable.
Licensed under the GNU General Public License Version 3.
This program DOES NOT COME WITH ANY WARRANTY, EXPRESS OR IMPLIED.
"""

from base.utils import *
from base.logger import Logger

logger = Logger(LoggerConfig.file_path)


class QueryConstructor:
    """Class for constructing a query to be executed by the DBMS. Specifically made with the goal to automate adding
    conditions using the WHERE clause in SQL
    """
    def __init__(self, table_name: str, schema_name: str = ""):
        """Initialise the object. Optionally pass a schema name to the constructor.
        :type table_name: str
        :type schema_name: str
        """
        self.table_name = table_name
        self.schema_name = schema_name
        self.field_list = []
        self.value_list = []
        self.condition = ""
        self.order = ""

    def reset(self):
Пример #21
0
 def on_close(self):
     self._is_connected = False
     tornado.ioloop.IOLoop.instance().call_later(5, self.reconnect)
     Logger().warn("center connect closed, reconnect 5s later")
Пример #22
0
class Connection(object):
    uuid = None
    last_time = 0

    def __init__(self, stream, address):
        from base.session_mgr import SessionMgr
        self.uuid = str(uuid4())
        SessionMgr().add(self)

        self._stream = stream
        self.address = address
        self.last_time = time.time()
        self._stream.set_close_callback(self.on_close)
        self._stream.read_bytes(8, self.on_head)
        self.head_data = None
        print "connection opened.", address, "count:", len(
            SessionMgr().session_set)

    def on_head(self, data):
        self.last_time = time.time()
        self.head_data = data
        size = ord(data[0]) * 256 + ord(data[1])
        if size <= 0 or size > 4096:
            print "bad package, size:", size, " ", self.address
            self.close()
            from base.logger import Logger
            Logger().local(
                "fake_ip.log",
                self.address[0] + ":" + str(self.address[1]) + ":size")
            return
        self._stream.read_bytes(size, self.on_body)

    def checkcrc(self, cmd, body_data):
        size = ord(self.head_data[0]) * 256 + ord(self.head_data[1])
        crc_data = ""
        if size < 122:
            crc_data = self.head_data[4:8] + chr(int(cmd / 256)) + chr(
                cmd % 256) + body_data[0:size]
        else:
            crc_data = self.head_data[4:8] + chr(int(cmd / 256)) + chr(
                cmd % 256) + body_data[0:122]
        if get_crc(crc_data) != ord(self.head_data[2]) * 256 + ord(
                self.head_data[3]):
            return False

        return True

    def on_body(self, data):
        try:
            msg_dict = msgpack.unpackb(data)
        except Exception, e:
            print e, self.address
            self.close()
            from base.logger import Logger
            Logger().local(
                "fake_ip.log",
                self.address[0] + ":" + str(self.address[1]) + ":unpack")
            return

        if isinstance(msg_dict, dict):
            cmd = msg_dict.get("cmd")
            if not self.checkcrc(cmd, data):
                print "check crc fail", self.address
                self.close()
                from base.logger import Logger
                Logger().local(
                    "fake_ip.log",
                    self.address[0] + ":" + str(self.address[1]) + ":crc")
                return
            if cmd is not None:
                from protocol.deserialize import receive
                receive(cmd, msg_dict, self)
        else:
            print "bad msg dict.", self.address
            self.close()
            return

        try:
            self._stream.read_bytes(8, self.on_head)
        except StreamClosedError:
            pass
Пример #23
0
from time import sleep
import page
from base.logger import Logger
from base.webbase import WebBase

logger = Logger().get_logger('login.log')


class PageLogin(WebBase):
    def login_input(self, user):
        self.base_input(page.login_input, user)

    def pwd_input(self, pwd):
        self.base_input(page.pwd_input, pwd)

    def login_click(self):
        self.base_click(page.login_btn)

    def login(self, user, pwd):
        logger.info('正在登录,用户名:{},密码:{}'.format(user, pwd))
        self.login_input(user)
        self.pwd_input(pwd)
        self.login_click()
        sleep(3)

    def get_image(self):
        self.base_get_image()

    def get_nickname(self):
        return self.base_get_text(page.nickname)
Пример #24
0
from base.logger import Logger
import time
from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
from selenium.common.exceptions import *
from selenium.webdriver.support import expected_conditions as ec
from conftest import IMG_DIR

#logger实例
logger = Logger(logger="BasePage").getlog()


class BasePage(object):
    def __init__(self, login):
        """
        :param login:conftest.py的login
        """
        self.driver = login

    #后退操作
    def back(self):
        self.driver.back()
        logger.info("Click back on current page.")

    def forward(self):
        self.driver.forward()
        logger.info('Click forward on current page.')

    def open(self, url):
Пример #25
0
from base.base import BasePage
from base.logger import Logger

logger = Logger(logger="HomePage").getlog()


class HomePage(BasePage):

    # locators
    _search_input = "kw"
    _search_button = "su"

    def __init__(self, driver):
        super().__init__(driver)
        self.driver = driver

    def enter_search(self, content):
        self.element_send_keys(self._search_input, content, "id")

    def click_search_button(self):
        self.element_click(self._search_button, "id")

    def search(self, content):
        self.enter_search(content)
        self.click_search_button()
Пример #26
0
 def __init__(self, log_file=None, name=""):
     self.name = self.name + name
     if log_file is None:
         log_file = self.name
     self.logger = Logger(log_file + ".log")
     self.functions = []