コード例 #1
0
def main() -> None:
    """
    Download retrosheet event (zip) files
    :return: None
    """
    # make sure the constants are configured correctly
    try:
        constants.main()
    except Exception as exp:
        print(
            "You have an error in you constants file.  Correct that before continuing"
        )
        print(exp.args[0])
        exit(1)

    parser = setup_args()
    args = parser.parse_args()
    try:
        params = validateArgs(args)
    except Exception as error:
        print(error)
        exit(1)

    for year in range(params.start_year, params.end_year + 1, 1):
        year = str(year)
        file_name = params.destination_dir + '/' + year + 'event.zip'
        url = params.base_url + 'events/' + year + 'eve.zip'
        print("Fetching " + file_name)
        req = requests.get(url)
        file = open(file_name, 'wb')
        for chunk in req.iter_content(100000):
            file.write(chunk)
        file.close()
コード例 #2
0
ファイル: populate_player_table.py プロジェクト: mweltin/cubs
def main() -> None:
    """
    Take CSV files crated by bevent_process and insert that data into the bbhip database
    :return: None
    """
    try:
        constants.main()
    except Exception as exp:
        print("You have an error in you constants file.  You must correct that before you can continue")
        print(exp.args[0])
        exit(1)

    connect_str = "user='******' host='localhost' dbname='bbhip'"
    conn = psycopg2.connect(connect_str)
    conn.autocommit = True
    cursor = conn.cursor()

    insert_player_query = """
        INSERT INTO player (
            id,
            last,
            first,
            play_debut,
            mgr_debut,
            coach_debut,
            ump_debut
        )
        VALUES (
            %s,
            %s,
            %s,
            %s,
            %s,
            %s,
            %s
        );
    """
    file = constants.RETRO_DATA_DIR+'/players.csv'
    with open(file, newline='') as csv_file:
        player = csv.reader(csv_file)
        for insert_data in player:
            # over come limitation in csv.reader convert empty values (i.e. '') to None (i.e. NULL)
            for i in range(len(insert_data)):
                if insert_data[i] == '':
                    insert_data[i] = None
            print(insert_data[0:-1])
            try:
                cursor.execute(insert_player_query, insert_data[0:-1])
            except Exception as exp:
                print("problem inserting data")
                print(exp.args[0])
    print("Finished processing file: " + file)
コード例 #3
0
def main():
    if len(sys.argv) == 2:
        path = sys.argv[1]
    elif len(sys.argv) == 1:
        path = "steam"
    else:
        print("Usage: Steamworks.NET_CodeGen.py [path/to/sdk/public/steam]")
        print("       If a path is not included then a steam/ folder must exist within the cwd.")
        return

    steamworksparser.Settings.fake_gameserver_interfaces = True
    ___parser = steamworksparser.parse(path)

    interfaces.main(___parser)
    constants.main(___parser)
    enums.main(___parser)
    structs.main(___parser)
    typedefs.main(___parser)
    output_dummy_files.main()
コード例 #4
0
ファイル: bevent_process.py プロジェクト: mweltin/cubs
def main() -> None:
    """
    Take event files downloaded by fetch_retrosheet_events.py and convert them to CSV files.
    :return: None
    """
    try:
        constants.main()
    except Exception as exp:
        print(
            "You have an error in you constants file.  You must correct that before you can continue"
        )
        print(exp.args[0])
        exit(1)

    for file in glob.glob(constants.RETRO_DATA_DIR + '/' + "*.zip"):
        base_name = os.path.basename(file)
        year = base_name[:4]

        storage_dir = constants.RETRO_DATA_DIR + '/' + year + 'Events'

        if os.path.isdir(storage_dir):
            if not os.access(storage_dir, os.W_OK):
                raise Exception(storage_dir + " exists but is not writable")
        else:
            os.mkdir(storage_dir, 0o755)

        with ZipFile(file, 'r') as zipObj:
            zipObj.extractall(storage_dir)

        os.chdir(storage_dir)
        for event_file in glob.glob(storage_dir + '/' + "*.EV*"):
            output_file = os.path.splitext(event_file)[0]
            myoutput = open(output_file + '.csv', 'w')
            subprocess.Popen([
                "wine", constants.RETRO_TOOL_DIR + "/BEVENT.EXE", "-y", year,
                "-f", "0-96", event_file
            ],
                             stdout=myoutput,
                             stderr=subprocess.PIPE,
                             universal_newlines=True)
コード例 #5
0
			+ "\n}"
			
		# form all non-corresponding statement
		for varType in constants.BASE:
			
			if varType is functionReturnType:
				continue
				
			# for the corresponding statement
			for fileNameBase in FILE_NAME_BASES:
				statement = ""

				if fileNameBase is FILE_NAME_BASE_SIMPLE:
					statement = "var a " + varType + "; " + "a = foo()"
				elif fileNameBase is FILE_NAME_BASE_VAR:
					statement = "var a " + varType + " = foo()"
				else:
					raise Exception
					
				if not destroy:
					output(statement, function,\
						fileNameBase + varType + "_func_" + functionReturnType + ".go",\
						isValid=False)
				else:
					os.remove(VALID_PATH + fileNameBase + varType + "_func_" + functionReturnType + ".go")
			
	
	return

main(VALID_PATH, INVALID_PATH, valid, invalid)
コード例 #6
0
ファイル: populate_game_table.py プロジェクト: mweltin/cubs
def main() -> None:
    """
    Take CSV files crated by bevent_process and insert that data into the bbhip database
    :return: None
    """
    try:
        constants.main()
    except Exception as exp:
        print(
            "You have an error in you constants file.  You must correct that before you can continue"
        )
        print(exp.args[0])
        exit(1)

    connect_str = "user='******' host='localhost' dbname='bbhip'"
    conn = psycopg2.connect(connect_str)
    conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
    cursor = conn.cursor()

    insert_game_query = """
        INSERT INTO game (
            game_date,
            game_num,
            dow,
            visitor_name,
            visitor_league,
            visitor_game_num,
            home_name,
            home_league,
            home_game_num,
            visitor_score,
            home_score,
            game_len_outs,
            day_night, 
            completion_info,
            forfeit_info,
            protest_info,
            park_id,
            attendance,
            game_time,
            visitor_line_score,
            home_line_score,
            visitor_at_bats,
            visitor_hits,
            visitor_doubles,
            visitor_triples,
            visitor_home_runs,
            visitor_rbi,
            visitor_sacrifice_hits,
            visitor_sacrifice_flies,
            visitor_hit_by_pitch,
            visitor_walks ,
            visitor_intentional_walks,
            visitor_strikeouts,
            visitor_stolen_bases,
            visitor_caught_stealing,
            visitor_grounded_into_double_plays,
            visitor_awarded_first_on_catcher_interference,
            visitor_left_on_base,
            visitor_pitches_used,
            visitor_individual_earned_runs,
            visitor_team_earned_runs,
            visitor_wild_pitches,
            visitor_balks,
            visitor_putouts,
            visitor_assists,
            visitor_errors,
            visitor_passed_balls,
            visitor_double_plays,
            visitor_triple_plays,
            home_at_bats,
            home_hits,
            home_doubles,
            home_triples,
            home_home_runs,
            home_rbi,
            home_sacrifice_hits,
            home_sacrifice_flies,
            home_hit_by_pitch,
            home_walks ,
            home_intentional_walks,
            home_strikeouts,
            home_stolen_bases,
            home_caught_stealing,
            home_grounded_into_double_plays,
            home_awarded_first_on_catcher_interference,
            home_left_on_base,
            home_pitches_used,
            home_individual_earned_runs,
            home_team_earned_runs,
            home_wild_pitches,
            home_balks,
            home_putouts,
            home_assists,
            home_errors,
            home_passed_balls,
            home_double_plays,
            home_triple_plays,
            ump_hp_id,
            ump_hp_name,
            ump_1b_id,
            ump_1b_name,
            ump_2b_id,
            ump_2b_name,
            ump_3b_id,
            ump_3b_name,
            ump_lf_id,
            ump_lf_name,
            ump_rf_id,
            ump_rf_name,
            visitor_mgr_id,
            visitor_mgr_name,
            home_mgr_id,
            home_mgr_name,
            winning_pitcher_id,
            winning_pitcher_name,
            losing_pitcher_id,
            losing_pitcher_name,
            saving_pitcher_id,
            saving_pitcher_name,
            game_winning_rbi_batter_id,
            game_winning_rbi_batter_name,
            visitor_starting_pitcher_id,
            visitor_starting_pitcher_name,
            home_starting_pitcher_id,
            home_starting_pitcher_name,
            visitor_pos_1_id,
            visitor_pos_1_name,
            visitor_pos_1_def_pos,
            visitor_pos_2_id,
            visitor_pos_2_name,
            visitor_pos_2_def_pos,
            visitor_pos_3_id,
            visitor_pos_3_name,
            visitor_pos_3_def_pos,
            visitor_pos_4_id,
            visitor_pos_4_name,
            visitor_pos_4_def_pos,
            visitor_pos_5_id,
            visitor_pos_5_name,
            visitor_pos_5_def_pos,
            visitor_pos_6_id,
            visitor_pos_6_name,
            visitor_pos_6_def_pos,
            visitor_pos_7_id,
            visitor_pos_7_name,
            visitor_pos_7_def_pos,
            visitor_pos_8_id,
            visitor_pos_8_name,
            visitor_pos_8_def_pos,
            visitor_pos_9_id,
            visitor_pos_9_name,
            visitor_pos_9_def_pos,
            home_pos_1_id, 
            home_pos_1_name,
            home_pos_1_def_pos,
            home_pos_2_id,
            home_pos_2_name,
            home_pos_2_def_pos,
            home_pos_3_id,
            home_pos_3_name,
            home_pos_3_def_pos,
            home_pos_4_id,
            home_pos_4_name,
            home_pos_4_def_pos,
            home_pos_5_id,
            home_pos_5_name,
            home_pos_5_def_pos,
            home_pos_6_id,
            home_pos_6_name,
            home_pos_6_def_pos,
            home_pos_7_id,
            home_pos_7_name,
            home_pos_7_def_pos,
            home_pos_8_id,
            home_pos_8_name,
            home_pos_8_def_pos,
            home_pos_9_id,
            home_pos_9_name,
            home_pos_9_def_pos,
            addition_info,
            acquisition_type 
        )
        VALUES (
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s,
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s 
        );
    """
    for zip_arc in glob.glob(constants.RETRO_DATA_DIR + '/' + "gl*.zip"):
        with ZipFile(zip_arc, 'r') as zipObj:
            zipObj.extractall(constants.RETRO_DATA_DIR + '/')

    for glob_item in glob.glob(constants.RETRO_DATA_DIR + '/GL*.TXT'):
        print("Processing file: " + glob_item)
        with open(glob_item, newline='') as csv_file:
            event_row = csv.reader(csv_file)
            for insert_data in event_row:
                # over come limitation in csv.reader convert empty values (i.e. '') to None (i.e. NULL)
                insert_data[0] = insert_data[0][0:4] + '-' + insert_data[0][
                    4:6] + '-' + insert_data[0][6:8]
                for i in range(len(insert_data)):
                    if insert_data[i] == '':
                        insert_data[i] = None
                cursor.execute(insert_game_query, insert_data)
        print("Finished processing file: " + glob_item)
コード例 #7
0
def main() -> None:
    """
    Take CSV files crated by bevent_process and insert that data into the bbhip database
    :return: None
    """
    try:
        constants.main()
    except Exception as exp:
        print(
            "You have an error in you constants file.  You must correct that before you can continue"
        )
        print(exp.args[0])
        exit(1)

    connect_str = "user='******' host='localhost' dbname='bbhip'"
    conn = psycopg2.connect(connect_str)
    conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
    cursor = conn.cursor()

    insert_event_query = """
        INSERT INTO event (
            game_id  ,
            home_team,
            game_date,
            game_num,
            visiting_team  ,
            inning ,
            batting_team ,
            outs ,
            balls ,
            strikes ,
            pitch_sequence ,
            vis_score ,
            home_score ,
            batter ,
            batter_hand ,
            res_batter ,
            res_batter_hand ,
            pitcher ,
            pitcher_hand ,
            res_pitcher ,
            res_pitcher_hand ,
            catcher ,
            first_base ,
            second_base ,
            third_base ,
            shortstop ,
            left_field ,
            center_field ,
            right_field ,
            first_runner ,
            second_runner ,
            third_runner ,
            event_text ,
            leadoff_flag ,
            pinchhit_flag ,
            defensive_position ,
            lineup_position ,
            event_type ,
            batter_event_flag ,
            ab_flag ,
            hit_value ,
            sh_flag ,
            sf_flag ,
            outs_on_play ,
            double_play_flag ,
            triple_play_flag ,
            rbi_on_play ,
            wild_pitch_flag ,
            passed_ball_flag ,
            fielded_by ,
            batted_ball_type ,
            bunt_flag ,
            foul_flag ,
            hit_location ,
            num_errors ,
            first_error_player ,
            first_error_type ,
            second_error_player ,
            second_error_type ,
            third_error_player ,
            third_error_type ,
            batter_dest ,
            runner_on_first_dest ,
            runner_on_second_dest ,
            runner_on_third_dest ,
            play_on_batter ,
            play_on_runner_on_first ,
            play_on_runner_on_second ,
            play_on_runner_on_third ,
            sb_for_runner_on_first_flag ,
            sb_for_runner_on_second_flag ,
            sb_for_runner_on_third_flag ,
            cs_for_runner_on_first_flag ,
            cs_for_runner_on_second_flag ,
            cs_for_runner_on_third_flag ,
            po_for_runner_on_first_flag ,
            po_for_runner_on_second_flag ,
            po_for_runner_on_third_flag ,
            responsible_pitcher_for_runner_on_first ,
            responsible_pitcher_for_runner_on_second ,
            responsible_pitcher_for_runner_on_third ,
            new_game_flag ,
            end_game_flag ,
            pinch_runner_on_first ,
            pinch_runner_on_second ,
            pinch_runner_on_third ,
            runner_removed_for_pinch_runner_on_first ,
            runner_removed_for_pinch_runner_on_second ,
            runner_removed_for_pinch_runner_on_third ,
            batter_removed_for_pinch_hitter ,
            position_of_batter_removed_for_pinch_hitter ,
            fielder_with_first_putout ,
            fielder_with_second_putout ,
            fielder_with_third_putout ,
            fielder_with_first_assist ,
            fielder_with_second_assist ,
            fielder_with_third_assist ,
            fielder_with_fourth_assist ,
            fielder_with_fifth_assist ,
            event_num
        )
        VALUES (
            %s, 
            %s,
            %s,
            %s,
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s, 
            %s 
        );
    """
    for glob_item in glob.glob(constants.RETRO_DATA_DIR + '/*'):
        if os.path.isdir(glob_item):
            os.chdir(glob_item)
            for file in glob.glob('*.csv'):
                print("Processing file: " + file)
                with open(file, newline='') as csv_file:
                    event_row = csv.reader(csv_file)
                    for insert_data in event_row:
                        # index zero is a combination of home_team, game_date and game_num
                        home_team = insert_data[0][0:3]
                        game_date = insert_data[0][3:7] + '-' + insert_data[0][
                            7:9] + '-' + insert_data[0][9:11]
                        game_num = insert_data[0][11:12]
                        # over come limitation in csv.reader convert empty values (i.e. '') to None (i.e. NULL)
                        insert_data.insert(1, home_team)
                        insert_data.insert(2, game_date)
                        insert_data.insert(3, game_num)
                        for i in range(len(insert_data)):
                            if insert_data[i] == '':
                                insert_data[i] = None
                        cursor.execute(insert_event_query, insert_data)
                print("Finished processing file: " + file)