示例#1
0
def add_result(args):
    """
    Adds a result row to the result table.

    :param args: A list with arguments from the argument parser
    :type args: namespace
    """
    if args.player1 is args.player2:
        print "A player can not play against himself."
        return
    print "Adding a result for %s" % args.game
    print "\tPlayer 1:", args.player1
    print "\tPlayer 2:", args.player2
    print "\tOutcome: ", utils.outcomes[args.outcome]
    print "\tDate: ", args.date

    player1 = utils.add_player(args.player1, commit=False)
    player2 = utils.add_player(args.player2, commit=False)

    pid1 = player1.player_id.value
    pid2 = player2.player_id.value

    dbRow = Match1on1(player1=pid1,
                      player2=pid2,
                      outcome=args.outcome,
                      date=args.date)
    dbRow.save(commit=True)

    print "Done"
示例#2
0
def add_result(args):
    """
    Adds a result row to the result table.

    :param args: A list with arguments from the argument parser
    :type args: namespace
    """
    if args.player1 is args.player2:
        print "A player can not play against himself."
        return
    print "Adding a result for %s" % args.game
    print "\tPlayer 1:", args.player1
    print "\tPlayer 2:", args.player2
    print "\tOutcome: ", utils.outcomes[args.outcome]
    print "\tDate: ", args.date

    player1 = utils.add_player(args.player1, commit=False)
    player2 = utils.add_player(args.player2, commit=False)

    pid1 = player1.player_id.value
    pid2 = player2.player_id.value

    dbRow = Match1on1(player1=pid1, player2=pid2, outcome=args.outcome,
        date=args.date)
    dbRow.save(commit=True)

    print "Done"
示例#3
0
def import_results(args):
    """
    Imports the match data of a csv file into the result table.

    :param args: A list with arguments from the argument parser
    :type args: namespace
    """

    print "Importing results from", args.file

    try:
        csvfile, reader, hasHeader = utils.get_csv(args.file)
        line = 0

        if hasHeader:
            print "\tFirst line of csv file is ignored. It seems to be a " \
                  "header row.\n"

        # nickname --> player
        players = {}

        for row in reader:
            if line != 0 or (line == 0 and not hasHeader):
                if row[1] is row[2]:
                    continue

                player1 = players.get(row[1], None)
                player2 = players.get(row[2], None)
                if player1 is None:
                    player1, created = utils.add_player(row[1], commit=False)
                    players[player1.nickname.value] = player1
                if player2 is None:
                    player2, created = utils.add_player(row[2], commit=False)
                    players[player2.nickname.value] = player2

                dbRow = Match1on1(player1=player1.player_id.value,
                                  player2=player2.player_id.value,
                                  outcome=row[3],
                                  date=row[0])
                dbRow.save(commit=False)

            if line % 100 == 0:
                sys.stdout.write("\r" + "Imported %d entries..." % line)
                sys.stdout.flush()
            line = line + 1

        Rank_Elo.commit()
        Rank_Glicko.commit()
        Match1on1.commit()
        csvfile.close()
        print "\rImported %d entries." % (line - (1 if hasHeader else 0))
    except csv.Error:
        print "Error importing %s in line %d" % (args.file, line)
    except IOError:
        print "No such file: %s" % args.file
示例#4
0
def import_results(args):
    """
    Imports the match data of a csv file into the result table.

    :param args: A list with arguments from the argument parser
    :type args: namespace
    """

    print "Importing results from", args.file

    try:
        csvfile, reader, hasHeader = utils.get_csv(args.file)
        line = 0

        if hasHeader:
            print "\tFirst line of csv file is ignored. It seems to be a " \
                  "header row.\n"

        # nickname --> player
        players = {}

        for row in reader:
            if line != 0 or (line == 0 and not hasHeader):
                if row[1] is row[2]:
                    continue

                player1 = players.get(row[1], None)
                player2 = players.get(row[2], None)
                if player1 is None:
                    player1, created = utils.add_player(row[1], commit=False)
                    players[player1.nickname.value] = player1
                if player2 is None:
                    player2, created = utils.add_player(row[2], commit=False)
                    players[player2.nickname.value] = player2

                dbRow = Match1on1(player1=player1.player_id.value,
                    player2=player2.player_id.value, outcome=row[3],
                    date=row[0])
                dbRow.save(commit=False)

            if line % 100 == 0:
                sys.stdout.write("\r" + "Imported %d entries..." % line)
                sys.stdout.flush()
            line = line + 1

        Rank_Elo.commit()
        Rank_Glicko.commit()
        Match1on1.commit()
        csvfile.close()
        print "\rImported %d entries." % (line - (1 if hasHeader else 0))
    except csv.Error:
        print "Error importing %s in line %d" % (args.file, line)
    except IOError:
        print "No such file: %s" % args.file
示例#5
0
def create_player(args):
    """
    Creates a new player (as specified in args)
    :param args: A list with arguments from the argument parser
    :type args: namespace
    """
    player, created = utils.add_player(args.nickname, args.firstname,
                                       args.lastname, True)
    if created is True:
        print "The player is now known in the database:"
        print "ID: %d;\tfirst name: %s;\tlast name: %s;\tnickname: %s" % (
            player.player_id.value, args.firstname, args.lastname,
            args.nickname)
    else:
        print "The player with nickname %s already exists." % args.nickname
示例#6
0
def create_player(args):
    """
    Creates a new player (as specified in args)
    :param args: A list with arguments from the argument parser
    :type args: namespace
    """
    player, created = utils.add_player(args.nickname, args.firstname,
        args.lastname, True)
    if created is True:
        print "The player is now known in the database:"
        print "ID: %d;\tfirst name: %s;\tlast name: %s;\tnickname: %s" % (
            player.player_id.value, args.firstname, args.lastname,
            args.nickname)
    else:
        print "The player with nickname %s already exists." % args.nickname