Open Stats : CapNKipe

HomePage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

Capnkipe


CapNKipe is a TCL script that downloads the event files from Retrosheet and generates PSV files from them.

Capnkipe will be released in the first half of January, 2007.

CapNKipe is a TCL (Tool Command Language) script that has been tested on Linux and Windows. In theory it should run on Mac OS X, but at the present time has not been tested.

You can use the files generated by CapNKipe and load them into databases.

The script is available in two modes:



capnkipe.tcl
package provide app-capnkipe 1.0

### Name:  Cap'n Kipe (capnkipe)
###
### A tool to download Retrosheet event files and convert them to csv
### files.
###
### Author: Mat Kovach <mek@mek.cc>
###
### Copyright Mat Kovach 2006
###
### Published under the GPL
###
### This program is free software; you can redistribute it and/or modify
### it under the terms of the GNU General Public License as published by
### the Free Software Foundation; either version 2 of the License, or
### (at your option) any later version.
###
### This program is distributed in the hope that it will be useful,
### but WITHOUT ANY WARRANTY; without even the implied warranty of
### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
### GNU General Public License for more details.
###
### You should have received a copy of the GNU General Public License
### along with this program; if not, write to the Free Software
### Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
###
### Version 0.2 -- Retrosheet released updates, including 2006 files.
### Version 0.1 -- First go at it and Happy B-Day Dad!, 20061205
###
### Packages required from tcllib (http://tcllib.sourceforge.net)
package require http
package require csv
package require md5
package require logger
package require cmdline

### This is required for the star kit.  Load vfs::zip if using a startkit
### or vfs for a regular tcl installation.
if {[catch {package require vfs::zip}]} {
    package require vfs
}

### Setup a logger instance to log output
set service "retrosheet"
set log [logger::init $service]
proc ${log}::stdoutcmd { level text } {
  global service
  puts "\[[clock format [clock seconds] -format {%D %H:%M:%S}]\]\
  $service $level $text"

}
### This imports the logger instance into this namespace and adding
### the prefix allows logging calls to be made with log_<service>
logger::import -prefix log_ $service

### Min year available from retrosheet (note:  if changing here, change
### options default.
set min_year 1957

### Max year available from retrosheet (note:  if changing here, change
### options default.
set max_year 2006

### Setup some command line options
set options {
    {eventfiles.arg "eventfiles" "Location to store files that are created"}
    {zipfiles.arg       "zipfiles"      "Location to store zip files"}
    {csvfiles.arg   "csv"           "Location to store csv/psv files"}
    {psv        "Create psv files"}
    {start_year.arg "1957"     "Year to start"}
    {last_year.arg  "2006"       "Year to stop"}
    {retro_url.arg  "http://www.retrosheet.org" "Retrosheet URL"}
    {http_timeout.arg   "100000"        "Http timeout"}
    {wine.arg           "/usr/bin/wine" "Location of Wine binary"}
    {bevent.arg         "BEVENT.EXE"    "Location of BEVENT.EXE"}
    {bgame.arg          "BGAME.EXE"     "Location of BGAME.EXE"}
    {debug    "Debug logging?"}
}
if {[catch {array set cfg [::cmdline::getoptions argv $options]} errmsg]} {
    puts $errmsg
    exit 1
}

### Do some sanity checking on the given years
if {$cfg(start_year) < $min_year || \
    $cfg(start_year) > $max_year || \
    $cfg(start_year) == 1999} {
    log_critical "Start year must be from $min_year to $max_year and not be equal to 1999, $cfg(start_year) was entered."
    exit 1
}

if {$cfg(last_year) < $min_year || \
    $cfg(last_year) > $max_year || \
    $cfg(last_year) == 1999} {
    log_critical "Last year must be from $min_year to $max_year and not be equal to 1999, $cfg(last_year) was entered."
    exit 1
}

if {$cfg(start_year) > $cfg(last_year)} {
    log_critical "Start year greater than Last year, no can do."
    exit 1
}

if {$cfg(start_year) == 1999 ||  $cfg(last_year) == 1999} {
    log_critical "Data for 1999 is currently not available."
    exit 1
}

### Setup some variables from the command like config
set retro_url $cfg(retro_url)
set http_timeout $cfg(http_timeout)

if {$cfg(psv)} { set psv_p 1 } else { set psv_p 0 }
if {$cfg(debug)} {
    ${log}::setlevel debug
    log_debug "DEBUG logging"
} else { 
    ${log}::setlevel notice
    log_notice "Normal logging"
}

set last_year $cfg(last_year)
set start_year $cfg(start_year)
 
set eventfiles $cfg(eventfiles)
if {[string index $eventfiles 0] ne [file separator] } {
    set eventfiles [file join [pwd] $eventfiles]
}
catch {file mkdir $eventfiles}

set zipfiles $cfg(zipfiles)
if {[string index $zipfiles 0] ne [file separator] } {
    set zipfiles [file join [pwd] $zipfiles]
}
catch {file mkdir $zipfiles}

set csvfiles $cfg(csvfiles)
if {[string index $csvfiles 0] ne [file separator] } {
    set csvfiles [file join [pwd] $csvfiles]
}
catch {file mkdir $csvfiles}


if {[string toupper $tcl_platform(platform)] == "UNIX"} {
    if {![file executable $cfg(wine)]} {
        puts stderr "Wine ($cfg(wine)) is not executable."
        exit 1
    }
    set cfg(usewine) 1
    set wine $cfg(wine)
}

#### TESTING ####

set bgame $cfg(bgame)
set bevent $cfg(bevent)

set str "Starting Retrosheet conversion for"
if {$start_year == $last_year} {
    append str " $start_year"
} else {
    append str " $start_year - $last_year"
}

log_notice $str

for {set year $start_year} {$year <= $last_year} { incr year } {
   
    log_notice "Year $year"
    ### Before 1997, event files were distrubuted for each
    ### league (National League, nl and American League, al).
    ### Strating in 1997, only one file for the Major League (ml)
    ### was distrubuted.
    if {$year < 1997 } {
        set league {al nl}
    } else {
        set league {ml}
    }
   
    ### Big loop to download the files, extract the event files.
    ### YEARTEA.EVA: Event files for American League home team (TEA).
    ### YEARTEA.EVN: Event files for National League home team (TEA).
    ### TEAYEAR.ROS: Roster files for each team (TEA)
    ### TEAMYEAR:  Team files contain the TEA designations, full team
    ### name and if they are in the American or National League.
    foreach lg $league {
        log_notice "League $lg"
        ### Zip files are available at
        ### http://www.retrosheet.org/YEAR/YEAR.LEAGUE.zip
        set url ${retro_url}/${year}/${year}${lg}.zip
   
        ### Assume we will not need to update the files for the year.
        set update_year_p 0
   
        ### Attempt to get the zip file
        log_notice "Attempting to get $url"
   
        if {[catch {set token [http::geturl $url -timeout $http_timeout]} errmsg]} {
            log_error "Error connecting to $url: $errmsg"
            continue
        }
        switch -glob [http::ncode $token] {
            4* {
                log_error "URL Error:([http::ncode $token]), $url."
                continue
            }
            5* {
                log_error "URL Error:([http::ncode $token]), $url."
                continue
            }
            default {
                set file [file join $zipfiles ${year}${lg}.zip]
                set tmp_file [file join $zipfiles  "tmp_${year}${lg}.zip"]
                if {[catch {open $tmp_file "w"} fp]} {
                    log_error "Error, opening file temp file."
                }
       
                ### File was available, get the data and write to
                ### a file.  Since this is a binary file, the
                ### channel needs to be configured correctly.
                set data [http::data $token]
                fconfigure $fp -translation binary -encoding binary
                puts -nonewline $fp $data
                close $fp
                catch {http::cleanup $token}
       
                ### Check to see if the files differ.  Yes, this is a
                ### bit slow, but it works.
        if {[file exists $file] && ([md5::md5 -hex -file $file] eq [md5::md5 -hex -file $tmp_file])} {
            log_notice "File [file tail $file] has not changed, disregarding."
            catch {file delete $tmp_file}
            
            ### Since the files are the same, we don't need
            ### to extract new ones, continue to the next one.
            continue
            
        }
       
                ### The file is either new or updated.  All files
                ### will need to be generated for that year.
        set update_year_p 1
        if {[catch {file copy -force $tmp_file $file} err]} {
            log_error "Error copying $file: $err"
                    continue
        } else {
            log_notice "Wrote $file"
            catch {file delete -force $tmp_file}
        }
        }
    }
   
    ### Using VFS, mount the zip file and copy the files
    ### in the archive to the event files directory
    if {[catch {set fd [vfs::zip::Mount $file tmp]} errmsg]} {
            log_error "Could not unzip $file: errmsg"
            continue
        }
    foreach zfile [glob tmp/*] {
        if {[catch {file copy -force $zfile $eventfiles} errmsg]} {
        log_error "Error copying [file tail $zfile] to $eventfiles: $errmsg"
        }
        log_notice "Extracted [file tail $zfile]"
    }
   
    ### Make sure to unmount it.
    vfs::zip::Unmount $fd tmp
    }
   
    ### If the year file(s) have not changed, we don't need to update
    if {!$update_year_p} {
        log_notice "File(s) for $year have not changed, keeping current files."
    continue
    }
   
    ### Deleted any current csv files.
    set eventscsv [file join $csvfiles ${year}-events.csv]
    set gamescsv  [file join $csvfiles ${year}-games.csv]
    catch {file delete $eventscsv}
    catch {file delete $gamescsv}
   
    ### The Retrosheet tools require you to be in the directory
    ### containing the event, roster, and team files.  Save
    ### the working directory before running the commands.
    set cur_dir [pwd]
   
    ### Retrosheet's tools need to be run on EACH file.
    foreach efile [glob [file join $eventfiles "${year}*.EV*"]] {
    log_notice "Processing [file tail $efile]"
    set status 0
   
        ### Changed into the eventfiles directory and run the BEVENT.EXE
        ### and BGAME.EXE, sending the output into the respective
        ### csv files.
        ### NOTE: When running wine, TCL's exec can be hard pressed
        ### to know if there is an error because of wine or the
        ### Retrosheet tools.  Unfortunately, both programs write
        ### to stderr even if there is not a problem.  We just
        ### hope for the best when these run.  Error checking
        ### doesn't help much.
    cd $eventfiles
        if $cfg(usewine) {
            set cmd [list exec $wine $bevent -f 0-96 -y $year [file tail $efile] >> $eventscsv]
        } else {
            set cmd [list exec $bevent -f 0-96 -y $year [file tail $efile] >> $eventscsv]
        }

    if {[catch $cmd results]} {
        switch -exact [string tolower [lindex $::errorCode 0]] {
        childstatus { set status [lindex $::errorCode 2] }
        default     { set status 0 }
        }
        log_debug "BEVENT.EXE:status:$status"
        log_debug "BEVENT.EXE:results:$results"
        log_notice "BEVENT.EXE run on [file tail $efile]."
    }
   
        if $cfg(usewine) {
            set cmd [list exec $wine $bgame -f 0-83 -y $year [file tail $efile] >> $gamescsv]
        } else {
            set cmd [list exec $bgame -f 0-81 -y $year [file tail $efile] >> $gamescsv]
        }
    if {[catch $cmd results]} {
        switch -exact [string tolower [lindex $::errorCode 0]] {
        childstatus { set status [lindex $::errorCode 2] }
        default     { set status 0}
        }
        log_debug "BGAME.EXE:status:$status"
        log_debug "BGAME.EXE:results:$results"
        log_notice "BGAME.EXE run on [file tail $efile]."
    }
   
    ### Go back home, collect $200 and a free dinner
    cd $cur_dir
    }
    ### Generate the roster csv file. After 2002, Retrosheet started
    ### to include a postion for each player.  Before that, the
    ### field was not used.  I just use NON to designate that.
    ### Also, the year is not included in the retrosheet files,
    ### so we add it here.
    set rfile [file join $csvfiles "${year}-rosters.csv"]
    catch {file delete $rfile}
    set roster_pattern "*${year}.ROS"
    foreach ros [glob [file join $eventfiles $roster_pattern]] {
    set name [file tail $ros]
    if {[regexp {(\w{3})(\d{4}).ROS} $name match team y]} {
            if {$year != $y} { continue }
        if {[catch {open $rfile "a"} output]} {
        log_error "error opening $outfile"
        continue
        }
        log_notice "Working on roster $name."
        set in [open $ros r]
        while {![eof $in]} {
        if {[gets $in line] < 0} {
            continue
        }
        set data [::csv::split $line ","]
        if {[regexp {\w{5}\d{3}} [lindex $data 0] playerid]} {
            set newline $year
            foreach item $data { lappend newline $item }           
            if {$year < 2002} {                                   
            lappend newline $team
            lappend newline "NON"
            }
            puts $output [::csv::join $newline ","]
        }
        }
        catch {close $in}
    }
    catch {close $output}
    }
   
    ### Generated a team file, using the TEAMYEAR file.  Basically
    ### just adding the specific year to the file.
    set teamfile [file join $eventfiles "TEAM${year}"]
    if [file exists $teamfile] {
    set tfile  [file join $csvfiles "${year}-teams.csv"]
    catch {file delete $tfile}
    if {[catch {open $tfile "a"} output]} {
        log_error "error opening $outfile"
        continue
    }
    log_notice "Working on TEAM${year}."
    set in [open $teamfile r]
    while {![eof $in]} {
        if {[gets $in line] < 0} {
        continue
        }
        set data [::csv::split $line ","]
        set newline $year
        foreach item $data { lappend newline $item }
        puts $output [::csv::join $newline ","]
    }
    }
    catch {close $in}
    catch {close $output} 

   
    ### If psv_p is set create PSV PSV (pipe (|) seperated files) from
    ### CSV files).
    ### This helps with database imports.
    if ${psv_p} {
    foreach type {events games rosters teams} {
        log_notice "Converting ${year}-${type}.csv to a psv file."

        set in  [open [file join $csvfiles ${year}-${type}.csv] r]

        catch {file delete [file join $csvfiles ${year}-${type}.psv]}
        set out [open [file join $csvfiles ${year}-${type}.psv] w]

        while {![eof $in]} {
        if {[gets $in line] < 0 } {
            continue
        }      
        puts $out [::csv::join [::csv::split $line ","] "|"]
        }
        catch {close $in}
        catch {close $out}
    }
    }
    log_notice "Done with year $year."
}
log_notice "Completed Retrosheet conversion"


mek@barker:~/retrosheet$ ./tclkit capnkipe.kit -h
capnkipe options:
 -eventfiles value    Location to store files that are created <eventfiles>
 -zipfiles value      Location to store zip files <zipfiles>
 -csvfiles value      Location to store csv/psv files <csv>
 -psv                 Create psv files
 -start_year value    Year to start <1957>
 -last_year value     Year to stop <2006>
 -retro_url value     Retrosheet URL <http://www.retrosheet.org>
 -http_timeout value  Http timeout <100000>
 -wine value          Location of Wine binary </usr/bin/wine>
 -bevent value        Location of BEVENT.EXE <BEVENT.EXE>
 -bgame value         Location of BGAME.EXE <BGAME.EXE>
 -debug               Debug logging?
 -help                Print this message
 -?                   Print this message


CapNKipe will create CSV files and if you use the -psv flag, it will converted the CSV files to PSV files. You only have to worry about the -wine file if you are running on UNIX. CapNKipe will look in the directory you start CapNKipe in for BEVENT.EXe and BGAME.EXE, if you have then installed else where on the system, you need to use the -bevent and -bgame flags.
If you are running CapNKipe on a UNIX system, TCL will determine it and attempt run BEVENT.EXe and BGAME.EXE with Wine


Example run to generate filies for 2006:



mek@barker:~/retrosheet$ ./tclkit capnkipe.kit -start_year 2006 -last_year 2006 -psv \
-wine /usr/bin/wine -bevent /home/mek/bin/BEVENT.EXE -bgame /home/mek/bin/BGAME.EXE -psv
[01/03/07 21:47:01] retrosheet notice Normal logging
[01/03/07 21:47:01] retrosheet notice Starting Retrosheet conversion for 2006
[01/03/07 21:47:01] retrosheet notice Year 2006
[01/03/07 21:47:01] retrosheet notice League ml
[01/03/07 21:47:01] retrosheet notice Attempting to get http://www.retrosheet.org/2006/2006ml.zip
[01/03/07 21:48:31] retrosheet notice Wrote /home/mek/retrosheet/zipfiles/2006ml.zip
[01/03/07 21:48:31] retrosheet notice Extracted 2006HOU.EVN
[01/03/07 21:48:32] retrosheet notice Extracted 2006OAK.EVA
[01/03/07 21:48:32] retrosheet notice Extracted 2006SFN.EVN
[01/03/07 21:48:32] retrosheet notice Extracted DET2006.ROS
[01/03/07 21:48:32] retrosheet notice Extracted 2006CHN.EVN
[01/03/07 21:48:32] retrosheet notice Extracted COL2006.ROS
[01/03/07 21:48:32] retrosheet notice Extracted SFN2006.ROS
[01/03/07 21:48:32] retrosheet notice Extracted 2006KCA.EVA
[01/03/07 21:48:32] retrosheet notice Extracted 2006TEX.EVA
[01/03/07 21:48:32] retrosheet notice Extracted CHN2006.ROS
[01/03/07 21:48:32] retrosheet notice Extracted 2006MIN.EVA
[01/03/07 21:48:33] retrosheet notice Extracted 2006CHA.EVA
[01/03/07 21:48:33] retrosheet notice Extracted 2006BOS.EVA
[01/03/07 21:48:33] retrosheet notice Extracted 2006ATL.EVN
[01/03/07 21:48:33] retrosheet notice Extracted NYA2006.ROS
[01/03/07 21:48:33] retrosheet notice Extracted ANA2006.ROS
[01/03/07 21:48:33] retrosheet notice Extracted ATL2006.ROS
[01/03/07 21:48:33] retrosheet notice Extracted CIN2006.ROS
[01/03/07 21:48:33] retrosheet notice Extracted OAK2006.ROS
[01/03/07 21:48:33] retrosheet notice Extracted 2006TBA.EVA
[01/03/07 21:48:33] retrosheet notice Extracted 2006MIL.EVN
[01/03/07 21:48:33] retrosheet notice Extracted KCA2006.ROS
[01/03/07 21:48:33] retrosheet notice Extracted TEX2006.ROS
[01/03/07 21:48:33] retrosheet notice Extracted 2006ARI.EVN
[01/03/07 21:48:34] retrosheet notice Extracted 2006NYN.EVN
[01/03/07 21:48:34] retrosheet notice Extracted NYN2006.ROS
[01/03/07 21:48:34] retrosheet notice Extracted 2006TOR.EVA
[01/03/07 21:48:34] retrosheet notice Extracted 2006FLO.EVN
[01/03/07 21:48:34] retrosheet notice Extracted 2006PHI.EVN
[01/03/07 21:48:34] retrosheet notice Extracted 2006NYA.EVA
[01/03/07 21:48:34] retrosheet notice Extracted 2006ANA.EVA
[01/03/07 21:48:35] retrosheet notice Extracted 2006LAN.EVN
[01/03/07 21:48:35] retrosheet notice Extracted 2006WAS.EVN
[01/03/07 21:48:35] retrosheet notice Extracted PHI2006.ROS
[01/03/07 21:48:35] retrosheet notice Extracted 2006SEA.EVA
[01/03/07 21:48:35] retrosheet notice Extracted FLO2006.ROS
[01/03/07 21:48:35] retrosheet notice Extracted WAS2006.ROS
[01/03/07 21:48:35] retrosheet notice Extracted 2006COL.EVN
[01/03/07 21:48:35] retrosheet notice Extracted LAN2006.ROS
[01/03/07 21:48:35] retrosheet notice Extracted CLE2006.ROS
[01/03/07 21:48:35] retrosheet notice Extracted HOU2006.ROS
[01/03/07 21:48:35] retrosheet notice Extracted TBA2006.ROS
[01/03/07 21:48:35] retrosheet notice Extracted 2006BAL.EVA
[01/03/07 21:48:35] retrosheet notice Extracted TOR2006.ROS
[01/03/07 21:48:35] retrosheet notice Extracted 2006CIN.EVN
[01/03/07 21:48:35] retrosheet notice Extracted SEA2006.ROS
[01/03/07 21:48:36] retrosheet notice Extracted 2006PIT.EVN
[01/03/07 21:48:36] retrosheet notice Extracted 2006SDN.EVN
[01/03/07 21:48:36] retrosheet notice Extracted 2006CLE.EVA
[01/03/07 21:48:36] retrosheet notice Extracted SDN2006.ROS
[01/03/07 21:48:36] retrosheet notice Extracted PIT2006.ROS
[01/03/07 21:48:36] retrosheet notice Extracted 2006DET.EVA
[01/03/07 21:48:36] retrosheet notice Extracted TEAM2006
[01/03/07 21:48:36] retrosheet notice Extracted BAL2006.ROS
[01/03/07 21:48:36] retrosheet notice Extracted 2006SLN.EVN
[01/03/07 21:48:36] retrosheet notice Extracted MIL2006.ROS
[01/03/07 21:48:36] retrosheet notice Extracted ARI2006.ROS
[01/03/07 21:48:36] retrosheet notice Extracted BOS2006.ROS
[01/03/07 21:48:36] retrosheet notice Extracted CHA2006.ROS
[01/03/07 21:48:36] retrosheet notice Extracted MIN2006.ROS
[01/03/07 21:48:36] retrosheet notice Extracted SLN2006.ROS
[01/03/07 21:48:36] retrosheet notice Processing 2006HOU.EVN
[01/03/07 21:48:43] retrosheet notice BEVENT.EXE run on 2006HOU.EVN.
[01/03/07 21:48:46] retrosheet notice BGAME.EXE run on 2006HOU.EVN.
[01/03/07 21:48:46] retrosheet notice Processing 2006OAK.EVA
[01/03/07 21:48:51] retrosheet notice BEVENT.EXE run on 2006OAK.EVA.
[01/03/07 21:48:54] retrosheet notice BGAME.EXE run on 2006OAK.EVA.
[01/03/07 21:48:54] retrosheet notice Processing 2006SFN.EVN
[01/03/07 21:48:58] retrosheet notice BEVENT.EXE run on 2006SFN.EVN.
[01/03/07 21:49:02] retrosheet notice BGAME.EXE run on 2006SFN.EVN.
[01/03/07 21:49:02] retrosheet notice Processing 2006CHN.EVN
[01/03/07 21:49:06] retrosheet notice BEVENT.EXE run on 2006CHN.EVN.
[01/03/07 21:49:09] retrosheet notice BGAME.EXE run on 2006CHN.EVN.
[01/03/07 21:49:09] retrosheet notice Processing 2006KCA.EVA
[01/03/07 21:49:13] retrosheet notice BEVENT.EXE run on 2006KCA.EVA.
[01/03/07 21:49:17] retrosheet notice BGAME.EXE run on 2006KCA.EVA.
[01/03/07 21:49:17] retrosheet notice Processing 2006TEX.EVA
[01/03/07 21:49:21] retrosheet notice BEVENT.EXE run on 2006TEX.EVA.
[01/03/07 21:49:24] retrosheet notice BGAME.EXE run on 2006TEX.EVA.
[01/03/07 21:49:24] retrosheet notice Processing 2006MIN.EVA
[01/03/07 21:49:29] retrosheet notice BEVENT.EXE run on 2006MIN.EVA.
[01/03/07 21:49:32] retrosheet notice BGAME.EXE run on 2006MIN.EVA.
[01/03/07 21:49:32] retrosheet notice Processing 2006CHA.EVA
[01/03/07 21:49:36] retrosheet notice BEVENT.EXE run on 2006CHA.EVA.
01/03/07 21:49:40] retrosheet notice BGAME.EXE run on 2006CHA.EVA.
[01/03/07 21:49:40] retrosheet notice Processing 2006BOS.EVA
[01/03/07 21:49:44] retrosheet notice BEVENT.EXE run on 2006BOS.EVA.
[01/03/07 21:49:48] retrosheet notice BGAME.EXE run on 2006BOS.EVA.
[01/03/07 21:49:48] retrosheet notice Processing 2006ATL.EVN
[01/03/07 21:49:52] retrosheet notice BEVENT.EXE run on 2006ATL.EVN.
[01/03/07 21:49:55] retrosheet notice BGAME.EXE run on 2006ATL.EVN.
[01/03/07 21:49:55] retrosheet notice Processing 2006TBA.EVA
[01/03/07 21:50:00] retrosheet notice BEVENT.EXE run on 2006TBA.EVA.
[01/03/07 21:50:03] retrosheet notice BGAME.EXE run on 2006TBA.EVA.
[01/03/07 21:50:03] retrosheet notice Processing 2006MIL.EVN
[01/03/07 21:50:07] retrosheet notice BEVENT.EXE run on 2006MIL.EVN.
[01/03/07 21:50:11] retrosheet notice BGAME.EXE run on 2006MIL.EVN.
[01/03/07 21:50:11] retrosheet notice Processing 2006ARI.EVN
[01/03/07 21:50:15] retrosheet notice BEVENT.EXE run on 2006ARI.EVN.
[01/03/07 21:50:18] retrosheet notice BGAME.EXE run on 2006ARI.EVN.
[01/03/07 21:50:18] retrosheet notice Processing 2006NYN.EVN
[01/03/07 21:50:22] retrosheet notice BEVENT.EXE run on 2006NYN.EVN.
[01/03/07 21:50:26] retrosheet notice BGAME.EXE run on 2006NYN.EVN.
[01/03/07 21:50:26] retrosheet notice Processing 2006TOR.EVA
[01/03/07 21:50:30] retrosheet notice BEVENT.EXE run on 2006TOR.EVA.
[01/03/07 21:50:33] retrosheet notice BGAME.EXE run on 2006TOR.EVA.
[01/03/07 21:50:33] retrosheet notice Processing 2006FLO.EVN
[01/03/07 21:50:38] retrosheet notice BEVENT.EXE run on 2006FLO.EVN.
[01/03/07 21:50:41] retrosheet notice BGAME.EXE run on 2006FLO.EVN.
[01/03/07 21:50:41] retrosheet notice Processing 2006PHI.EVN
[01/03/07 21:50:46] retrosheet notice BEVENT.EXE run on 2006PHI.EVN.
[01/03/07 21:50:49] retrosheet notice BGAME.EXE run on 2006PHI.EVN.
[01/03/07 21:50:49] retrosheet notice Processing 2006NYA.EVA
[01/03/07 21:50:53] retrosheet notice BEVENT.EXE run on 2006NYA.EVA.
[01/03/07 21:50:57] retrosheet notice BGAME.EXE run on 2006NYA.EVA.
[01/03/07 21:50:57] retrosheet notice Processing 2006ANA.EVA
[01/03/07 21:51:01] retrosheet notice BEVENT.EXE run on 2006ANA.EVA.
[01/03/07 21:51:04] retrosheet notice BGAME.EXE run on 2006ANA.EVA.
[01/03/07 21:51:04] retrosheet notice Processing 2006LAN.EVN
[01/03/07 21:51:09] retrosheet notice BEVENT.EXE run on 2006LAN.EVN.
[01/03/07 21:51:12] retrosheet notice BGAME.EXE run on 2006LAN.EVN.
[01/03/07 21:51:12] retrosheet notice Processing 2006WAS.EVN
[01/03/07 21:51:16] retrosheet notice BEVENT.EXE run on 2006WAS.EVN.
[01/03/07 21:51:20] retrosheet notice BGAME.EXE run on 2006WAS.EVN.
[01/03/07 21:51:20] retrosheet notice Processing 2006SEA.EVA
[01/03/07 21:51:24] retrosheet notice BEVENT.EXE run on 2006SEA.EVA.
[01/03/07 21:51:27] retrosheet notice BGAME.EXE run on 2006SEA.EVA.
[01/03/07 21:51:27] retrosheet notice Processing 2006COL.EVN
[01/03/07 21:51:31] retrosheet notice BEVENT.EXE run on 2006COL.EVN.
[01/03/07 21:51:35] retrosheet notice BGAME.EXE run on 2006COL.EVN.
[01/03/07 21:51:35] retrosheet notice Processing 2006BAL.EVA
[01/03/07 21:51:39] retrosheet notice BEVENT.EXE run on 2006BAL.EVA.
[01/03/07 21:51:43] retrosheet notice BGAME.EXE run on 2006BAL.EVA.
[01/03/07 21:51:43] retrosheet notice Processing 2006CIN.EVN
[01/03/07 21:51:47] retrosheet notice BEVENT.EXE run on 2006CIN.EVN.
[01/03/07 21:51:50] retrosheet notice BGAME.EXE run on 2006CIN.EVN.
[01/03/07 21:51:50] retrosheet notice Processing 2006PIT.EVN
[01/03/07 21:51:54] retrosheet notice BEVENT.EXE run on 2006PIT.EVN.
[01/03/07 21:51:58] retrosheet notice BGAME.EXE run on 2006PIT.EVN.
[01/03/07 21:51:58] retrosheet notice Processing 2006SDN.EVN
[01/03/07 21:52:02] retrosheet notice BEVENT.EXE run on 2006SDN.EVN.
[01/03/07 21:52:06] retrosheet notice BGAME.EXE run on 2006SDN.EVN.
[01/03/07 21:52:06] retrosheet notice Processing 2006CLE.EVA
[01/03/07 21:52:10] retrosheet notice BEVENT.EXE run on 2006CLE.EVA.
[01/03/07 21:52:13] retrosheet notice BGAME.EXE run on 2006CLE.EVA.
[01/03/07 21:52:13] retrosheet notice Processing 2006DET.EVA
[01/03/07 21:52:17] retrosheet notice BEVENT.EXE run on 2006DET.EVA.
[01/03/07 21:52:21] retrosheet notice BGAME.EXE run on 2006DET.EVA.
[01/03/07 21:52:21] retrosheet notice Processing 2006SLN.EVN
[01/03/07 21:52:25] retrosheet notice BEVENT.EXE run on 2006SLN.EVN.
[01/03/07 21:52:28] retrosheet notice BGAME.EXE run on 2006SLN.EVN.
[01/03/07 21:52:28] retrosheet notice Working on roster DET2006.ROS.
[01/03/07 21:52:28] retrosheet notice Working on roster COL2006.ROS.
[01/03/07 21:52:28] retrosheet notice Working on roster SFN2006.ROS.
[01/03/07 21:52:28] retrosheet notice Working on roster CHN2006.ROS.
[01/03/07 21:52:28] retrosheet notice Working on roster NYA2006.ROS.
[01/03/07 21:52:28] retrosheet notice Working on roster ANA2006.ROS.
[01/03/07 21:52:28] retrosheet notice Working on roster ATL2006.ROS.
[01/03/07 21:52:28] retrosheet notice Working on roster CIN2006.ROS.
[01/03/07 21:52:28] retrosheet notice Working on roster OAK2006.ROS.
[01/03/07 21:52:28] retrosheet notice Working on roster KCA2006.ROS.
[01/03/07 21:52:28] retrosheet notice Working on roster TEX2006.ROS.
[01/03/07 21:52:28] retrosheet notice Working on roster NYN2006.ROS.
[01/03/07 21:52:28] retrosheet notice Working on roster PHI2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster FLO2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster WAS2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster LAN2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster CLE2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster HOU2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster TBA2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster TOR2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster SEA2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster SDN2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster PIT2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster BAL2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster MIL2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster ARI2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster BOS2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster CHA2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster MIN2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on roster SLN2006.ROS.
[01/03/07 21:52:29] retrosheet notice Working on TEAM2006.
[01/03/07 21:52:29] retrosheet notice Converting 2006-events.csv to a psv file.
[01/03/07 22:03:55] retrosheet notice Converting 2006-games.csv to a psv file.
[01/03/07 22:04:02] retrosheet notice Converting 2006-rosters.csv to a psv file.
[01/03/07 22:04:02] retrosheet notice Converting 2006-teams.csv to a psv file.
[01/03/07 22:04:02] retrosheet notice Done with year 2006.
[01/03/07 22:04:02] retrosheet notice Completed Retrosheet conversion
mek@barker:~/retrosheet$ ls csv
2006-events.csv  2006-games.csv  2006-rosters.csv  2006-teams.csv
2006-events.psv  2006-games.psv  2006-rosters.psv  2006-teams.psv


Categories

CategorySoftware
CategoryData

There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.2
Page was generated in 0.4080 seconds