Merge branch 'master' of git://git.assembla.com/mctfpdb.git

This commit is contained in:
eblade 2009-04-02 16:48:30 -04:00
commit 0eab0ad813
3 changed files with 30 additions and 25 deletions

View File

@ -112,7 +112,9 @@ class HandHistoryConverter():
def start(self): def start(self):
"""process a hand at a time from the input specified by in_path. """process a hand at a time from the input specified by in_path.
If in follow mode, wait for more data to turn up. If in follow mode, wait for more data to turn up.
Otherwise, finish at eof...""" Otherwise, finish at eof...
"""
starttime = time.time() starttime = time.time()
if not self.sanityCheck(): if not self.sanityCheck():
print "Cowardly refusing to continue after failed sanity check" print "Cowardly refusing to continue after failed sanity check"
@ -137,7 +139,11 @@ Otherwise, finish at eof..."""
def tailHands(self): def tailHands(self):
"""Generator of handTexts from a tailed file: """Generator of handTexts from a tailed file:
Tail the in_path file and yield handTexts separated by re_SplitHands""" Tail the in_path file and yield handTexts separated by re_SplitHands.
This requires a regex that greedily groups and matches the 'splitter' between hands,
which it expects to find at self.re_TailSplitHands -- see for e.g. Everleaf.py.
"""
if self.in_path == '-': raise StopIteration if self.in_path == '-': raise StopIteration
interval = 1.0 # seconds to sleep between reads for new data interval = 1.0 # seconds to sleep between reads for new data
fd = codecs.open(self.in_path,'r', self.codepage) fd = codecs.open(self.in_path,'r', self.codepage)
@ -161,7 +167,7 @@ Tail the in_path file and yield handTexts separated by re_SplitHands"""
else: else:
# yield hands # yield hands
data = data + newdata data = data + newdata
result = self.re_SplitHands.split(data) result = self.re_TailSplitHands.split(data)
result = iter(result) result = iter(result)
data = '' data = ''
# --x data (- is bit of splitter, x is paragraph) yield,...,keep # --x data (- is bit of splitter, x is paragraph) yield,...,keep
@ -202,7 +208,7 @@ Tail the in_path file and yield handTexts separated by re_SplitHands"""
if self.obs == "" or self.obs == None: if self.obs == "" or self.obs == None:
logging.info("Read no hands.") logging.info("Read no hands.")
return return
return re.split(self.re_TailSplitHands, self.obs) return re.split(self.re_SplitHands, self.obs)
def processHand(self, handText): def processHand(self, handText):
gametype = self.determineGameType(handText) gametype = self.determineGameType(handText)

View File

@ -46,7 +46,7 @@ def testGameInfo():
def testHandInfo(): def testHandInfo():
text = u""""PokerStars Game #20461877044: Hold'em No Limit ($1/$2) - 2008/09/16 18:58:01 ET""" text = u"""PokerStars Game #20461877044: Hold'em No Limit ($1/$2) - 2008/09/16 18:58:01 ET"""
hhc = PokerStarsToFpdb.PokerStars(autostart=False) hhc = PokerStarsToFpdb.PokerStars(autostart=False)
h = HoldemOmahaHand(None, "PokerStars", gametype, text, builtFrom = "Test") h = HoldemOmahaHand(None, "PokerStars", gametype, text, builtFrom = "Test")
hhc.readHandInfo(h) hhc.readHandInfo(h)
@ -78,4 +78,4 @@ Table 'Caia II' 6-max Seat #2 is the button"""
assert h.buttonpos == '2' # TODO: should this be an int? assert h.buttonpos == '2' # TODO: should this be an int?
assert h.starttime == (2008,11 , 15, 19, 22, 21, 5, 320, -1) assert h.starttime == (2008,11 , 15, 19, 22, 21, 5, 320, -1)

View File

@ -16,25 +16,24 @@ def testPokerStarsHHDate():
datetime.datetime(2008,9,7,11,23,14)) datetime.datetime(2008,9,7,11,23,14))
) )
#def testFullTiltHHDate(self): def testFullTiltHHDate():
# sitngo1 = "Full Tilt Poker Game #10311865543: $1 + $0.25 Sit & Go (78057629), Table 1 - 25/50 - No Limit Hold'em - 0:07:45 ET - 2009/01/29" sitngo1 = "Full Tilt Poker Game #10311865543: $1 + $0.25 Sit & Go (78057629), Table 1 - 25/50 - No Limit Hold'em - 0:07:45 ET - 2009/01/29"
# cash1 = "Full Tilt Poker Game #9403951181: Table CR - tay - $0.05/$0.10 - No Limit Hold'em - 9:40:20 ET - 2008/12/09" cash1 = "Full Tilt Poker Game #9403951181: Table CR - tay - $0.05/$0.10 - No Limit Hold'em - 9:40:20 ET - 2008/12/09"
# cash2 = "Full Tilt Poker Game #9468383505: Table Bike (deep 6) - $0.05/$0.10 - No Limit Hold'em - 5:09:36 ET - 2008/12/13" cash2 = "Full Tilt Poker Game #9468383505: Table Bike (deep 6) - $0.05/$0.10 - No Limit Hold'em - 5:09:36 ET - 2008/12/13"
# result = fpdb_simple.parseHandStartTime(sitngo1,"ftp") result = fpdb_simple.parseHandStartTime(sitngo1,"ftp")
# self.failUnless(result==datetime.datetime(2009,1,29,05,07,45), assert result==datetime.datetime(2009,1,29,05,07,45)
# "Date incorrect, expected: 2009-01-29 05:07:45 got: " + str(result)) result = fpdb_simple.parseHandStartTime(cash1,"ftp")
# result = fpdb_simple.parseHandStartTime(cash1,"ftp") assert result==datetime.datetime(2008,12,9,14,40,20)
# self.failUnless(result==datetime.datetime(2008,12,9,14,40,20), result = fpdb_simple.parseHandStartTime(cash2,"ftp")
# "Date incorrect, expected: 2008-12-09 14:40:20 got: " + str(result)) assert result==datetime.datetime(2008,12,13,10,9,36)
# result = fpdb_simple.parseHandStartTime(cash2,"ftp")
# self.failUnless(result==datetime.datetime(2008,12,13,10,9,36),
# "Date incorrect, expected: 2008-12-13 10:09:36 got: " + str(result))
# def testTableDetection(self): def testTableDetection():
# result = Tables.clean_title("French (deep)") result = Tables.clean_title("French (deep)")
# self.failUnless(result == "French", "French (deep) parsed incorrectly. Expected 'French' got: " + str(result)) assert result == "French"
# result = ("French (deep) - $0.25/$0.50 - No Limit Hold'em - Logged In As xxxx") result = Tables.clean_title("French (deep) - $0.25/$0.50 - No Limit Hold'em - Logged In As xxxx")
assert result == "French"
for (header, site, result) in tuples:
yield checkDateParse, header, site, result
for (header, site, result) in tuples:
yield checkDateParse, header, site, result