def do_stat():
    log.initialize(
        co.logname(__file__, instance=str(args.sex)),
        file_level="debug",
        console_level="info",
    )
    try:
        log.info(__file__ + " started sex: " + str(args.sex))
        start_datetime = datetime.datetime.now()
        dba.open_connect()
        ratings_std.initialize(sex=args.sex)
        qual_seeds.initialize()
        oncourt_players.initialize(yearsnum=18)

        matchstat_process(sex=args.sex)

        process(
            (
                WinFavoriteProcessor(args.sex),
                TourAverageSetProcessor(args.sex),
            ),
            args.sex
        )

        dba.close_connect()
        log.info(
            "{} finished within {}".format(
                __file__, str(datetime.datetime.now() - start_datetime)
            )
        )
        return 0
    except Exception as err:
        log.error("{0} [{1}]".format(err, err.__class__.__name__), exc_info=True)
        return 1
Exemple #2
0
def main():
    try:
        args = parse_command_line_args()
        log.initialize(
            co.logname(__file__, instance=args.instance),
            file_level="debug",
            console_level="info",
        )
        log.info(
            "\n--------------------------------------------------------\nstarted"
        )
        dba.open_connect()
        oncourt_players.initialize()
        ratings.initialize("wta", rtg_names=("elo", ))
        ratings.initialize("atp", rtg_names=("elo", ))
        ratings.Rating.register_rtg_name("elo_alt")
        app = Application(
            wta_players=oncourt_players.players("wta"),
            atp_players=oncourt_players.players("atp"),
        )
        app.master.title("Live")
        app.mainloop()
        log.info("sex: " + app.sex())
        log.info("left_player: " + app.left_player_name())
        log.info("right_player: " + app.right_player_name())
        log.info("score: {}".format(app.score()))
        log.info("level: {}".format(app.level()))
        log.info("surface: {}".format(app.surface()))
        dba.close_connect()
        return 0
    except Exception as err:
        log.error("{0} [{1}]".format(err, err.__class__.__name__),
                  exc_info=True)
        return 1
Exemple #3
0
def do_stat():
    log.initialize(
        co.logname(__file__, instance=str(args.sex)),
        file_level="debug",
        console_level="info",
    )
    try:
        msg = "sex: {} max_rtg: {}  max_rtg_dif: {}".format(
            args.sex, args.max_rating, args.max_rating_dif)
        log.info(__file__ + " started {}".format(msg))
        initialize(args.sex)
        maker = StatMaker(args.sex)
        maker.process_all()
        log.info(__file__ + " done {}".format(ASPECT))

        dba.close_connect()
        log.info(__file__ + " finished sex: {}".format(args.sex))
        return 0
    except Exception as err:
        log.error("{0} [{1}]".format(err, err.__class__.__name__),
                  exc_info=True)
        return 1
def do_stat():
    log.initialize(
        co.logname(__file__, instance=str(args.sex)),
        file_level="debug",
        console_level="info",
    )
    try:
        msg = "sex: {} min_size: {} max_size: {} max_rtg: {}  max_rtg_dif: {}".format(
            args.sex, args.min_size, args.max_size, args.max_rating,
            args.max_rating_dif)
        log.info(__file__ + " started {}".format(msg))
        dba.open_connect()
        oncourt_players.initialize(yearsnum=8)
        min_date = tt.now_minus_history_days(history_days_personal(args.sex))
        ratings_std.initialize(sex=args.sex,
                               min_date=min_date - datetime.timedelta(days=7))
        initialize_results(
            args.sex,
            max_rating=args.max_rating,
            max_rating_dif=args.max_rating_dif,
            min_date=min_date,
        )

        maker = StatMaker(args.sex,
                          min_size=args.min_size,
                          max_size=args.max_size)
        maker.process_all(aspect=RECOVERY_ASPECT)
        log.info(__file__ + " done {}".format(RECOVERY_ASPECT))
        maker.process_all(aspect=KEEP_ASPECT)
        log.info(__file__ + " done {}".format(KEEP_ASPECT))

        dba.close_connect()
        log.info(__file__ + " finished sex: {}".format(args.sex))
        return 0
    except Exception as err:
        log.error("{0} [{1}]".format(err, err.__class__.__name__),
                  exc_info=True)
        return 1
    def __init__(self, sex, left_player, right_player):
        super(PageBuilderDecidedSetLGR, self).__init__()
        self.set_data(sex, left_player, right_player)

    def set_data(self, sex, left_player, right_player):
        self.keys = ("decided", )
        self.columns = [
            make_player_columninfo(sex,
                                   left_player.ident if left_player else None,
                                   "left", 1),
            make_generic_columninfo(sex, title="avg", number=2),
            make_player_columninfo(
                sex, right_player.ident if right_player else None, "right", 3),
        ]


def parse_command_line_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("--sex", choices=["wta", "atp", "both"])
    parser.add_argument("--stat", action="store_true")
    return parser.parse_args()


if __name__ == "__main__":
    log.initialize(co.logname(__file__), "info", "info")
    args = parse_command_line_args()
    if args.stat:
        import make_stat

        sys.exit(do_stat(sex=None if args.sex == "both" else args.sex))
            rnd=Round("Second"),
            date=datetime.date(2017, 2, 1),
        )
        h2hdir = HeadToHead(sex="atp", match=match,
                            completed_only=True).direct()
        self.assertEqual(h2hdir, None)

    @unittest.skip(
        "actual only was 2019,10,18 and recent h2h match was 2019,9,26")
    def test_recent_winner(self):
        plr1 = Player(ident=6590, name="Cagla Buyukakcay", cou="TUR")
        plr2 = Player(ident=8951, name="Veronica Cepede Royg", cou="PAR")
        match = Match(first_player=plr1,
                      second_player=plr2,
                      score=None,
                      rnd=Round('Second'),
                      date=datetime.date(2019, 10, 18))
        h2h = HeadToHead(sex='wta', match=match, completed_only=True)
        recent_winner_id = h2h.recently_won_player_id()
        self.assertEqual(recent_winner_id, plr1.ident)


if __name__ == '__main__':
    import doctest

    log.initialize(co.logname(__file__, test=True), "debug", None)
    dba.open_connect()
    doctest.testmod()
    unittest.main()
    dba.close_connect()
    return 0


def parse_command_line_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("--sex", choices=["wta", "atp", "both"])
    parser.add_argument("--dayago1", type=int, choices=[1, 2, 3, 4, 5, 6, 7])
    parser.add_argument("--dayago2", type=int, choices=[1, 2, 3, 4, 5, 6, 7])
    parser.add_argument("--current_week", action="store_true")
    parser.add_argument("--interactive", action="store_true")
    return parser.parse_args()


if __name__ == "__main__":
    args = parse_command_line_args()
    if not args.dayago1 and not args.dayago2:
        print("use --dayago1, --dayago2")
        sys.exit(1)
    else:
        log.initialize(co.logname(__file__), file_level="info", console_level="info")
        assert args.dayago1 <= args.dayago2, "daysago bad interval [{}, {}]".format(
            args.dayago1, args.dayago2
        )
        dbdet_wta = open_db(sex="wta")
        dbdet_atp = open_db(sex="atp")
        sys.exit(
            fetch_main(
                args.dayago1, args.dayago2, sex=None if args.sex == "both" else args.sex
            )
        )
def log_init_debug():
    log.initialize(
        logname(__file__, test=True), file_level="debug", console_level="info"
    )
    yield  # this is where the testing happens
def _actual_players_filename(sex):
    return "{}/actual_players-{}.csv".format(cfg_dir.oncourt_players_dir(),
                                             sex)


def _read_actual_players_id(sex):
    with open(_actual_players_filename(sex)) as csvfile:
        reader = csv.reader(csvfile, delimiter=",")
        for row in reader:
            return [int(i) for i in row]


def parse_command_line_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("--make_actual_players", action="store_true")
    parser.add_argument("--sex", choices=["wta", "atp"])
    return parser.parse_args()


if __name__ == "__main__":
    args = parse_command_line_args()
    if args.make_actual_players:
        log.initialize(co.logname(__file__), "debug", "debug")
        if args.sex in ("wta", None):
            write_actual_players(sex="wta")
            log.info("wta actual players done")
        if args.sex in ("atp", None):
            write_actual_players(sex="atp")
            log.info("atp actual players done")
Exemple #10
0
import unittest

import log
import common as co
import dba
from decided_win_by_two_sets_stat import ENABLE_SOFT_LEVELS, read_scores_dict


class ReadFilesTest(unittest.TestCase):
    def test_read_score_dict(self):
        for soft_level in ENABLE_SOFT_LEVELS:
            dct = read_scores_dict("wta", soft_level)
            self.assertEqual(len(dct), 49)

            if soft_level == "main":
                sval = dct[((4, 6), (6, 0))]
                self.assertTrue(0.6 < sval.value < 0.8)
                self.assertTrue(120 < sval.size < 200)


if __name__ == '__main__':
    log.initialize(co.logname(__file__, test=True), "info", "info")
    unittest.main()
    dba.close_connect()

Exemple #11
0
    return quals_from_tid[tour_id]


def _initialize_sex(sex):
    quals_from_tid = __wta_quals_from_tid if sex == "wta" else __atp_quals_from_tid
    sql = """select ID_T_S, ID_P_S
             from Seed_{0}
             where SEEDING Like '%q%' or SEEDING Like '%LL%'
             order by ID_T_S;""".format(
        sex
    )
    with closing(dba.get_connect().cursor()) as cursor:
        for (tour_id, player_id) in cursor.execute(sql):
            quals_from_tid[tour_id].append(player_id)


if __name__ == "__main__":
    import log

    log.initialize(
        co.logname(__file__, test=True), file_level="debug", console_level="info"
    )
    dba.open_connect()

    initialize()

    print("wta len: %d" % len(__wta_quals_from_tid))
    print("atp len: %d" % len(__atp_quals_from_tid))

    dba.close_connect()
Exemple #12
0
            [],
            [False],
        ])
        blinkova_lr = LastResults.from_week_results([
            [True, True, True, True],
            [],
            [False, True, True, True, True],
            [False, True],
            [False, True, True, True],
            [False, True],
        ])

        fst_ratio = garcia_lr.best_win_streak_ratio(min_ratio=0.777,
                                                    min_size=8)
        snd_ratio = blinkova_lr.best_win_streak_ratio(min_ratio=0.777,
                                                      min_size=8)
        adv_side = None
        if fst_ratio and fst_ratio > (snd_ratio + 0.2):
            adv_side = co.LEFT
        if not fst_ratio and snd_ratio > (fst_ratio + 0.2):
            adv_side = co.RIGHT

        self.assertTrue(adv_side is not None)


if __name__ == '__main__':
    log.initialize(co.logname(__file__),
                   file_level="info",
                   console_level="info")
    unittest.main()
Exemple #13
0
            is_shuffle=args.shuffle,
            random_state=random_state,
        )
        hyperopt_search(
            variant,
            data,
            max_evals=100,
            mix_algo_ratio=clf_hp.MixAlgoRatio(tpe=0.50,
                                               anneal=0.50,
                                               rand=0.00),
            random_state=random_state,
        )

    args = parse_command_line_args()
    log.initialize(
        co.logname(__file__, instance=args.log_instance),
        file_level="info",
        console_level="info",
    )
    co.log_command_line_args()
    random_args = co.RandomArguments(args, default_seed=random_seed)
    if args.variant:
        if args.sex:
            in_variant = cco.Variant.find_variant_by(
                variants=train_variants,
                predicate=lambda v: v.name == args.variant and v.sex == args.
                sex,
            )
        else:
            in_variant = cco.Variant.find_variant_by(
                variants=train_variants,