diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 6340660d..f06ee64b 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -38,7 +38,12 @@ import sys import traceback from datetime import datetime, date, time, timedelta from time import time, strftime, sleep -from decimal import Decimal + +try: + from cdecimal import * +except ImportError: + from decimal import * + import string import re import Queue @@ -454,7 +459,7 @@ class Database: self.connection = sqlite3.connect(self.db_path, detect_types=sqlite3.PARSE_DECLTYPES ) self.__connected = True sqlite3.register_converter("bool", lambda x: bool(int(x))) - sqlite3.register_adapter(bool, lambda x: "1" if x else "0") + sqlite3.register_adapter(bool, lambda x: 1 if x else 0) self.connection.create_function("floor", 1, math.floor) tmp = sqlitemath() self.connection.create_function("mod", 2, tmp.mod) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index 654e6001..93c09571 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -30,71 +30,76 @@ class DerivedStats(): self.hands = {} self.handsplayers = {} self.handsactions = {} + self._initStats = DerivedStats._buildStatsInitializer() + + @staticmethod + def _buildStatsInitializer(): + init = {} + #Init vars that may not be used, but still need to be inserted. + # All stud street4 need this when importing holdem + init['winnings'] = 0 + init['rake'] = 0 + init['totalProfit'] = 0 + init['street4Aggr'] = False + init['wonWhenSeenStreet1'] = 0.0 + init['sawShowdown'] = False + init['wonAtSD'] = 0.0 + init['startCards'] = 0 + init['position'] = 2 + init['street0_3BChance'] = False + init['street0_3BDone'] = False + init['street0_4BChance'] = False + init['street0_4BDone'] = False + init['street0_C4BChance'] = False + init['street0_C4BDone'] = False + init['street0_FoldTo3BChance']= False + init['street0_FoldTo3BDone']= False + init['street0_FoldTo4BChance']= False + init['street0_FoldTo4BDone']= False + init['street0_SqueezeChance']= False + init['street0_SqueezeDone'] = False + init['success_Steal'] = False + init['raiseFirstInChance'] = False + init['raisedFirstIn'] = False + init['foldBbToStealChance'] = False + init['foldSbToStealChance'] = False + init['foldedSbToSteal'] = False + init['foldedBbToSteal'] = False + init['tourneyTypeId'] = None + init['street1Seen'] = False + init['street2Seen'] = False + init['street3Seen'] = False + init['street4Seen'] = False + + + for i in range(5): + init['street%dCalls' % i] = 0 + init['street%dBets' % i] = 0 + init['street%dRaises' % i] = 0 + for i in range(1,5): + init['street%dCBChance' %i] = False + init['street%dCBDone' %i] = False + init['street%dCheckCallRaiseChance' %i] = False + init['street%dCheckCallRaiseDone' %i] = False + init['otherRaisedStreet%d' %i] = False + init['foldToOtherRaisedStreet%d' %i] = False + + #FIXME - Everything below this point is incomplete. + init['other3BStreet0'] = False + init['other4BStreet0'] = False + init['otherRaisedStreet0'] = False + init['foldToOtherRaisedStreet0'] = False + for i in range(1,5): + init['foldToStreet%dCBChance' %i] = False + init['foldToStreet%dCBDone' %i] = False + init['wonWhenSeenStreet2'] = 0.0 + init['wonWhenSeenStreet3'] = 0.0 + init['wonWhenSeenStreet4'] = 0.0 + return init def getStats(self, hand): - for player in hand.players: - self.handsplayers[player[1]] = {} - #Init vars that may not be used, but still need to be inserted. - # All stud street4 need this when importing holdem - self.handsplayers[player[1]]['winnings'] = 0 - self.handsplayers[player[1]]['rake'] = 0 - self.handsplayers[player[1]]['totalProfit'] = 0 - self.handsplayers[player[1]]['street4Aggr'] = False - self.handsplayers[player[1]]['wonWhenSeenStreet1'] = 0.0 - self.handsplayers[player[1]]['sawShowdown'] = False - self.handsplayers[player[1]]['wonAtSD'] = 0.0 - self.handsplayers[player[1]]['startCards'] = 0 - self.handsplayers[player[1]]['position'] = 2 - self.handsplayers[player[1]]['street0_3BChance'] = False - self.handsplayers[player[1]]['street0_3BDone'] = False - self.handsplayers[player[1]]['street0_4BChance'] = False - self.handsplayers[player[1]]['street0_4BDone'] = False - self.handsplayers[player[1]]['street0_C4BChance'] = False - self.handsplayers[player[1]]['street0_C4BDone'] = False - self.handsplayers[player[1]]['street0_FoldTo3BChance']= False - self.handsplayers[player[1]]['street0_FoldTo3BDone']= False - self.handsplayers[player[1]]['street0_FoldTo4BChance']= False - self.handsplayers[player[1]]['street0_FoldTo4BDone']= False - self.handsplayers[player[1]]['street0_SqueezeChance']= False - self.handsplayers[player[1]]['street0_SqueezeDone'] = False - self.handsplayers[player[1]]['success_Steal'] = False - self.handsplayers[player[1]]['raiseFirstInChance'] = False - self.handsplayers[player[1]]['raisedFirstIn'] = False - self.handsplayers[player[1]]['foldBbToStealChance'] = False - self.handsplayers[player[1]]['foldSbToStealChance'] = False - self.handsplayers[player[1]]['foldedSbToSteal'] = False - self.handsplayers[player[1]]['foldedBbToSteal'] = False - self.handsplayers[player[1]]['tourneyTypeId'] = None - self.handsplayers[player[1]]['street1Seen'] = False - self.handsplayers[player[1]]['street2Seen'] = False - self.handsplayers[player[1]]['street3Seen'] = False - self.handsplayers[player[1]]['street4Seen'] = False - - - for i in range(5): - self.handsplayers[player[1]]['street%dCalls' % i] = 0 - self.handsplayers[player[1]]['street%dBets' % i] = 0 - self.handsplayers[player[1]]['street%dRaises' % i] = 0 - for i in range(1,5): - self.handsplayers[player[1]]['street%dCBChance' %i] = False - self.handsplayers[player[1]]['street%dCBDone' %i] = False - self.handsplayers[player[1]]['street%dCheckCallRaiseChance' %i] = False - self.handsplayers[player[1]]['street%dCheckCallRaiseDone' %i] = False - self.handsplayers[player[1]]['otherRaisedStreet%d' %i] = False - self.handsplayers[player[1]]['foldToOtherRaisedStreet%d' %i] = False - - #FIXME - Everything below this point is incomplete. - self.handsplayers[player[1]]['other3BStreet0'] = False - self.handsplayers[player[1]]['other4BStreet0'] = False - self.handsplayers[player[1]]['otherRaisedStreet0'] = False - self.handsplayers[player[1]]['foldToOtherRaisedStreet0'] = False - for i in range(1,5): - self.handsplayers[player[1]]['foldToStreet%dCBChance' %i] = False - self.handsplayers[player[1]]['foldToStreet%dCBDone' %i] = False - self.handsplayers[player[1]]['wonWhenSeenStreet2'] = 0.0 - self.handsplayers[player[1]]['wonWhenSeenStreet3'] = 0.0 - self.handsplayers[player[1]]['wonWhenSeenStreet4'] = 0.0 + self.handsplayers[player[1]] = self._initStats.copy() self.assembleHands(self.hand) self.assembleHandsPlayers(self.hand) diff --git a/pyfpdb/Filters.py b/pyfpdb/Filters.py index 557bb846..f19774c7 100644 --- a/pyfpdb/Filters.py +++ b/pyfpdb/Filters.py @@ -57,7 +57,7 @@ class Filters(threading.Thread): ,'groupstitle':_('Grouping:'), 'posnshow':_('Show Position Stats') ,'datestitle':_('Date:') ,'groupsall':_('All Players') - ,'limitsFL':'FL', 'limitsNL':'NL', 'limitsPL':'PL', 'ring':_('Ring'), 'tour':_('Tourney') + ,'limitsFL':'FL', 'limitsNL':'NL', 'limitsPL':'PL', 'limitsCN':'CAP', 'ring':_('Ring'), 'tour':_('Tourney') } gen = self.conf.get_general_params() @@ -79,7 +79,7 @@ class Filters(threading.Thread): self.sw.show() print _("DEBUG: New packing box created!") - self.found = {'nl':False, 'fl':False, 'pl':False, 'ring':False, 'tour':False} + self.found = {'nl':False, 'fl':False, 'pl':False, 'cn':False, 'ring':False, 'tour':False} self.label = {} self.callback = {} @@ -154,10 +154,13 @@ class Filters(threading.Thread): self.cbFL = None self.cbNL = None self.cbPL = None + self.cbCN = None self.rb = {} # radio buttons for ring/tour self.type = None # ring/tour self.types = {} # list of all ring/tour values + self.num_limit_types = 0 + self.num_limit_types = 0 self.fillLimitsFrame(vbox, self.display) limitsFrame.add(vbox) @@ -429,7 +432,7 @@ class Filters(threading.Thread): #print "__set_limit_select: limit =", limit, w.get_active() self.limits[limit] = w.get_active() log.debug(_("self.limit[%s] set to %s") %(limit, self.limits[limit])) - if limit.isdigit() or (len(limit) > 2 and (limit[-2:] == 'nl' or limit[-2:] == 'fl' or limit[-2:] == 'pl')): + if limit.isdigit() or (len(limit) > 2 and (limit[-2:] == 'nl' or limit[-2:] == 'fl' or limit[-2:] == 'pl' or limit[-2:] == 'cn')): # turning a leaf limit on with 'None' checked turns 'None' off if self.limits[limit]: if self.cbNoLimits is not None: @@ -438,7 +441,7 @@ class Filters(threading.Thread): else: if self.cbAllLimits is not None: self.cbAllLimits.set_active(False) - # turning off a leaf limit turns off the corresponding fl. nl, or pl + # turning off a leaf limit turns off the corresponding fl. nl, cn or pl if not self.limits[limit]: if limit.isdigit(): if self.cbFL is not None: @@ -446,6 +449,9 @@ class Filters(threading.Thread): elif (len(limit) > 2 and (limit[-2:] == 'nl')): if self.cbNL is not None: self.cbNL.set_active(False) + elif (len(limit) > 2 and (limit[-2:] == 'cn')): + if self.cbCN is not None: + self.cbCN.set_active(False) else: if self.cbPL is not None: self.cbPL.set_active(False) @@ -461,18 +467,26 @@ class Filters(threading.Thread): self.cbNL.set_active(True) if self.cbPL is not None: self.cbPL.set_active(True) + if self.cbCN is not None: + self.cbCN.set_active(True) elif limit == "none": if self.limits[limit]: - if self.num_limit_types == 1: - for cb in self.cbLimits.values(): - cb.set_active(False) - else: + if self.num_limit_types > 1: if self.cbNL is not None: self.cbNL.set_active(False) if self.cbFL is not None: self.cbFL.set_active(False) if self.cbPL is not None: self.cbPL.set_active(False) + if self.cbCN is not None: + self.cbCN.set_active(False) + # + # Finally, clean-up all individual limit checkboxes + # needed because the overall limit checkbox may + # not be set, or num_limit_types == 1 + # + for cb in self.cbLimits.values(): + cb.set_active(False) elif limit == "fl": if not self.limits[limit]: # only toggle all fl limits off if they are all currently on @@ -552,6 +566,29 @@ class Filters(threading.Thread): elif self.type == 'tour': if 'ring' in self.rb: self.rb['ring'].set_active(True) + elif limit == "cn": + if not self.limits[limit]: + all_cn_on = True + for cb in self.cbLimits.values(): + t = cb.get_children()[0].get_text() + if "cn" in t and len(t) > 2: + if not cb.get_active(): + all_cn_on = False + found = {'ring':False, 'tour':False} + for cb in self.cbLimits.values(): + t = cb.get_children()[0].get_text() + if "cn" in t and len(t) > 2: + if self.limits[limit] or all_cn_on: + cb.set_active(self.limits[limit]) + found[self.types[t]] = True + if self.limits[limit]: + if not found[self.type]: + if self.type == 'ring': + if 'tour' in self.rb: + self.rb['tour'].set_active(True) + elif self.type == 'tour': + if 'ring' in self.rb: + self.rb['ring'].set_active(True) elif limit == "ring": log.debug("set", limit, "to", self.limits[limit]) if self.limits[limit]: @@ -725,15 +762,16 @@ class Filters(threading.Thread): showb = gtk.Button(label="hide", stock=None, use_underline=True) showb.set_alignment(xalign=1.0, yalign=0.5) showb.connect('clicked', self.__toggle_box, 'limits') + top_hbox.pack_start(showb, expand=False, padding=1) - vbox1 = gtk.VBox(False, 0) + vbox1 = gtk.VBox(False, 15) vbox.pack_start(vbox1, False, False, 0) self.boxes['limits'] = vbox1 self.cursor.execute(self.sql.query['getCashLimits']) # selects limitType, bigBlind result = self.db.cursor.fetchall() - self.found = {'nl':False, 'fl':False, 'pl':False, 'ring':False, 'tour':False} + self.found = {'nl':False, 'fl':False, 'pl':False, 'cn':False, 'ring':False, 'tour':False} if len(result) >= 1: hbox = gtk.HBox(True, 0) @@ -758,6 +796,9 @@ class Filters(threading.Thread): elif line[1] == 'pl': name = str(line[2])+line[1] self.found['pl'] = True + elif line[1] == 'cn': + name = str(line[2])+line[1] + self.found['cn'] = True else: name = str(line[2])+line[1] self.found['nl'] = True @@ -786,6 +827,7 @@ class Filters(threading.Thread): if self.found['fl']: self.num_limit_types = self.num_limit_types + 1 if self.found['pl']: self.num_limit_types = self.num_limit_types + 1 if self.found['nl']: self.num_limit_types = self.num_limit_types + 1 + if self.found['cn']: self.num_limit_types = self.num_limit_types + 1 if self.num_limit_types > 1: if self.found['fl']: hbox = gtk.HBox(False, 0) @@ -799,6 +841,10 @@ class Filters(threading.Thread): hbox = gtk.HBox(False, 0) vbox3.pack_start(hbox, False, False, 0) self.cbPL = self.createLimitLine(hbox, 'pl', self.filterText['limitsPL']) + if self.found['cn']: + hbox = gtk.HBox(False, 0) + vbox3.pack_start(hbox, False, False, 0) + self.cbCN = self.createLimitLine(hbox, 'cn', self.filterText['limitsCN']) dest = vbox2 # for ring/tour buttons else: print _("INFO: No games returned from database") @@ -829,11 +875,16 @@ class Filters(threading.Thread): top_hbox.pack_start(title, expand=True, padding=3) showb = gtk.Button(label="hide", stock=None, use_underline=True) showb.set_alignment(xalign=1.0, yalign=0.5) - showb.connect('clicked', self.__toggle_box, 'games') + showb.connect('clicked', self.__toggle_box, 'graphops') top_hbox.pack_start(showb, expand=False, padding=1) + vbox1 = gtk.VBox(False, 0) + vbox.pack_start(vbox1, False, False, 0) + vbox1.show() + self.boxes['graphops'] = vbox1 + hbox1 = gtk.HBox(False, 0) - vbox.pack_start(hbox1, False, False, 0) + vbox1.pack_start(hbox1, False, False, 0) hbox1.show() label = gtk.Label(_("Show Graph In:")) @@ -852,10 +903,6 @@ class Filters(threading.Thread): button.connect("toggled", self.__set_displayin_select, "BB") button.show() - vbox1 = gtk.VBox(False, 0) - vbox.pack_start(vbox1, False, False, 0) - vbox1.show() - button = gtk.CheckButton(_("Showdown Winnings"), False) vbox1.pack_start(button, True, True, 0) # wouldn't it be awesome if there was a way to remember the state of things like diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index 29b6d4d2..20980de1 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -208,8 +208,8 @@ class Fulltilt(HandHistoryConverter): m = self.re_GameInfo.search(handText) if not m: tmp = handText[0:100] + log.error(_("determineGameType: Raising FpdbParseError for file '%s'") % self.in_path) log.error(_("determineGameType: Unable to recognise gametype from: '%s'") % tmp) - log.error(_("determineGameType: Raising FpdbParseError")) raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp) mg = m.groupdict() diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index 1e3642aa..727ca00d 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -445,7 +445,7 @@ chips (string) the chips the player has at the start of the hand (can be None) If a player has None chips he won't be added.""" log.debug("addPlayer: %s %s (%s)" % (seat, name, chips)) if chips is not None: - chips = re.sub(u',', u'', chips) #some sites have commas + chips = chips.replace(u',', u'') #some sites have commas self.players.append([seat, name, chips]) self.stacks[name] = Decimal(chips) self.pot.addPlayer(name) @@ -487,10 +487,10 @@ If a player has None chips he won't be added.""" For sites (currently only Carbon Poker) which record "all in" as a special action, which can mean either "calls and is all in" or "raises all in". """ self.checkPlayerExists(player) - amount = re.sub(u',', u'', amount) #some sites have commas + amount = amount.replace(u',', u'') #some sites have commas Ai = Decimal(amount) Bp = self.lastBet[street] - Bc = reduce(operator.add, self.bets[street][player], 0) + Bc = sum(self.bets[street][player]) C = Bp - Bc if Ai <= C: self.addCall(street, player, amount) @@ -503,13 +503,14 @@ For sites (currently only Carbon Poker) which record "all in" as a special actio def addAnte(self, player, ante): log.debug("%s %s antes %s" % ('BLINDSANTES', player, ante)) if player is not None: - ante = re.sub(u',', u'', ante) #some sites have commas - self.bets['BLINDSANTES'][player].append(Decimal(ante)) - self.stacks[player] -= Decimal(ante) - act = (player, 'ante', Decimal(ante), self.stacks[player]==0) + ante = ante.replace(u',', u'') #some sites have commas + ante = Decimal(ante) + self.bets['BLINDSANTES'][player].append(ante) + self.stacks[player] -= ante + act = (player, 'ante', ante, self.stacks[player]==0) self.actions['BLINDSANTES'].append(act) -# self.pot.addMoney(player, Decimal(ante)) - self.pot.addCommonMoney(player, Decimal(ante)) +# self.pot.addMoney(player, ante) + self.pot.addCommonMoney(player, ante) #I think the antes should be common money, don't have enough hand history to check def addBlind(self, player, blindtype, amount): @@ -522,22 +523,25 @@ For sites (currently only Carbon Poker) which record "all in" as a special actio # log.debug("addBlind: %s posts %s, %s" % (player, blindtype, amount)) if player is not None: - amount = re.sub(u',', u'', amount) #some sites have commas - self.stacks[player] -= Decimal(amount) - act = (player, blindtype, Decimal(amount), self.stacks[player]==0) + amount = amount.replace(u',', u'') #some sites have commas + amount = Decimal(amount) + self.stacks[player] -= amount + act = (player, blindtype, amount, self.stacks[player]==0) self.actions['BLINDSANTES'].append(act) if blindtype == 'both': # work with the real amount. limit games are listed as $1, $2, where # the SB 0.50 and the BB is $1, after the turn the minimum bet amount is $2.... - amount = self.bb - self.bets['BLINDSANTES'][player].append(Decimal(self.sb)) - self.pot.addCommonMoney(player, Decimal(self.sb)) + amount = Decimal(self.bb) + sb = Decimal(self.sb) + self.bets['BLINDSANTES'][player].append(sb) + self.pot.addCommonMoney(player, sb) if blindtype == 'secondsb': amount = Decimal(0) - self.bets['BLINDSANTES'][player].append(Decimal(self.sb)) - self.pot.addCommonMoney(player, Decimal(self.sb)) + sb = Decimal(self.sb) + self.bets['BLINDSANTES'][player].append(sb) + self.pot.addCommonMoney(player, sb) street = 'BLAH' @@ -546,27 +550,28 @@ For sites (currently only Carbon Poker) which record "all in" as a special actio elif self.gametype['base'] == 'draw': street = 'DEAL' - self.bets[street][player].append(Decimal(amount)) - self.pot.addMoney(player, Decimal(amount)) - self.lastBet[street] = Decimal(amount) + self.bets[street][player].append(amount) + self.pot.addMoney(player, amount) + self.lastBet[street] = amount self.posted = self.posted + [[player,blindtype]] def addCall(self, street, player=None, amount=None): if amount: - amount = re.sub(u',', u'', amount) #some sites have commas + amount = amount.replace(u',', u'') #some sites have commas log.debug(_("%s %s calls %s") %(street, player, amount)) # Potentially calculate the amount of the call if not supplied # corner cases include if player would be all in if amount is not None: - self.bets[street][player].append(Decimal(amount)) - #self.lastBet[street] = Decimal(amount) - self.stacks[player] -= Decimal(amount) + amount = Decimal(amount) + self.bets[street][player].append(amount) + #self.lastBet[street] = amount + self.stacks[player] -= amount #print "DEBUG %s calls %s, stack %s" % (player, amount, self.stacks[player]) - act = (player, 'calls', Decimal(amount), self.stacks[player]==0) + act = (player, 'calls', amount, self.stacks[player] == 0) self.actions[street].append(act) - self.pot.addMoney(player, Decimal(amount)) + self.pot.addMoney(player, amount) def addRaiseBy(self, street, player, amountBy): """\ @@ -583,11 +588,11 @@ Add a raise by amountBy on [street] by [player] # then: C = Bp - Bc (amount to call) # Rt = Bp + Rb (raise to) # - amountBy = re.sub(u',', u'', amountBy) #some sites have commas + amountBy = amountBy.replace(u',', u'') #some sites have commas self.checkPlayerExists(player) Rb = Decimal(amountBy) Bp = self.lastBet[street] - Bc = reduce(operator.add, self.bets[street][player], 0) + Bc = sum(self.bets[street][player]) C = Bp - Bc Rt = Bp + Rb @@ -601,10 +606,10 @@ Add a raise by amountBy on [street] by [player] """\ For sites which by "raises x" mean "calls and raises putting a total of x in the por". """ self.checkPlayerExists(player) - amount = re.sub(u',', u'', amount) #some sites have commas + amount = amount.replace(u',', u'') #some sites have commas CRb = Decimal(amount) Bp = self.lastBet[street] - Bc = reduce(operator.add, self.bets[street][player], 0) + Bc = sum(self.bets[street][player]) C = Bp - Bc Rb = CRb - C Rt = Bp + Rb @@ -617,9 +622,9 @@ Add a raise on [street] by [player] to [amountTo] """ #CG - No idea if this function has been test/verified self.checkPlayerExists(player) - amountTo = re.sub(u',', u'', amountTo) #some sites have commas + amountTo = amountTo.replace(u',', u'') #some sites have commas Bp = self.lastBet[street] - Bc = reduce(operator.add, self.bets[street][player], 0) + Bc = sum(self.bets[street][player]) Rt = Decimal(amountTo) C = Bp - Bc Rb = Rt - C - Bc @@ -638,15 +643,16 @@ Add a raise on [street] by [player] to [amountTo] def addBet(self, street, player, amount): log.debug(_("%s %s bets %s") %(street, player, amount)) - amount = re.sub(u',', u'', amount) #some sites have commas + amount = amount.replace(u',', u'') #some sites have commas + amount = Decimal(amount) self.checkPlayerExists(player) - self.bets[street][player].append(Decimal(amount)) - self.stacks[player] -= Decimal(amount) + self.bets[street][player].append(amount) + self.stacks[player] -= amount #print "DEBUG %s bets %s, stack %s" % (player, amount, self.stacks[player]) - act = (player, 'bets', Decimal(amount), self.stacks[player]==0) + act = (player, 'bets', amount, self.stacks[player]==0) self.actions[street].append(act) - self.lastBet[street] = Decimal(amount) - self.pot.addMoney(player, Decimal(amount)) + self.lastBet[street] = amount + self.pot.addMoney(player, amount) def addStandsPat(self, street, player): @@ -1377,10 +1383,10 @@ closed likewise, but known only to player Add a complete on [street] by [player] to [amountTo] """ log.debug(_("%s %s completes %s") % (street, player, amountTo)) - amountTo = re.sub(u',', u'', amountTo) #some sites have commas + amountTo = amountTo.replace(u',', u'') #some sites have commas self.checkPlayerExists(player) Bp = self.lastBet['THIRD'] - Bc = reduce(operator.add, self.bets[street][player], 0) + Bc = sum(self.bets[street][player]) Rt = Decimal(amountTo) C = Bp - Bc Rb = Rt - C @@ -1395,12 +1401,14 @@ Add a complete on [street] by [player] to [amountTo] def addBringIn(self, player, bringin): if player is not None: log.debug(_("Bringin: %s, %s") % (player , bringin)) - self.bets['THIRD'][player].append(Decimal(bringin)) - self.stacks[player] -= Decimal(bringin) - act = (player, 'bringin', Decimal(bringin), self.stacks[player]==0) + bringin = bringin.replace(u',', u'') #some sites have commas + bringin = Decimal(bringin) + self.bets['THIRD'][player].append(bringin) + self.stacks[player] -= bringin + act = (player, 'bringin', bringin, self.stacks[player]==0) self.actions['THIRD'].append(act) - self.lastBet['THIRD'] = Decimal(bringin) - self.pot.addMoney(player, Decimal(bringin)) + self.lastBet['THIRD'] = bringin + self.pot.addMoney(player, bringin) def getStreetTotals(self): # street1Pot INT, /* pot size at flop/street4 */ diff --git a/pyfpdb/TableWindow.py b/pyfpdb/TableWindow.py index 05c6ce4e..72151d13 100644 --- a/pyfpdb/TableWindow.py +++ b/pyfpdb/TableWindow.py @@ -118,6 +118,7 @@ class Table_Window(object): self.site = site self.hud = None # fill in later self.gdkhandle = None + self.number = None if tournament is not None and table_number is not None: self.tournament = int(tournament) self.table = int(table_number) @@ -135,7 +136,14 @@ class Table_Window(object): return None self.search_string = getTableTitleRe(self.config, self.site, self.type, **table_kwargs) - self.find_table_parameters() + trys = 0 + while True: + self.find_table_parameters() + if self.number is not None: break + trys += 1 + if trys > 4: + log.error(_("Can't find table %s") % table_name) + return None geo = self.get_geometry() if geo is None: return None diff --git a/pyfpdb/XTables.py b/pyfpdb/XTables.py index 579674a1..10278a05 100644 --- a/pyfpdb/XTables.py +++ b/pyfpdb/XTables.py @@ -67,11 +67,11 @@ class Table(Table_Window): self.number = int( mo.groupdict()["XID"], 0 ) self.title = title if self.number is None: - log.error(_("Could not retrieve XID from table xwininfo. xwininfo is %s") % listing) + log.warning(_("Could not retrieve XID from table xwininfo. xwininfo is %s") % listing) break if self.number is None: - log.error(_("No match in XTables for table '%s'.") % self.search_string) + log.warning(_("No match in XTables for table '%s'.") % self.search_string) return None (self.window, self.parent) = self.get_window_from_xid(self.number) diff --git a/pyfpdb/regression-test-files/cash/FTP/Draw/5-Carddraw-PL-0.10-0.25-201011.Sample.Not.UTF16.txt b/pyfpdb/regression-test-files/cash/FTP/Draw/5-Carddraw-PL-0.10-0.25-201011.Sample.Not.UTF16.txt new file mode 100644 index 00000000..02e4c45e Binary files /dev/null and b/pyfpdb/regression-test-files/cash/FTP/Draw/5-Carddraw-PL-0.10-0.25-201011.Sample.Not.UTF16.txt differ diff --git a/pyfpdb/regression-test-files/cash/FTP/Draw/5-Carddraw-PL-0.10-0.25-201011.Sample.Not.UTF16.txt.hands b/pyfpdb/regression-test-files/cash/FTP/Draw/5-Carddraw-PL-0.10-0.25-201011.Sample.Not.UTF16.txt.hands new file mode 100644 index 00000000..d9716d32 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/FTP/Draw/5-Carddraw-PL-0.10-0.25-201011.Sample.Not.UTF16.txt.hands @@ -0,0 +1,31 @@ +{ 'boardcard1': 0, + 'boardcard2': 0, + 'boardcard3': 0, + 'boardcard4': 0, + 'boardcard5': 0, + 'gametypeId': 1, + 'importTime': None, + 'maxSeats': 6, + 'playersAtShowdown': 2, + 'playersAtStreet1': 2, + 'playersAtStreet2': 2, + 'playersAtStreet3': 2, + 'playersAtStreet4': 0, + 'playersVpi': 1, + 'seats': 4, + 'sessionId': None, + 'showdownPot': 0, + 'siteHandNo': u'25340539000', + 'startTime': datetime.datetime(2010, 11, 7, 7, 58, tzinfo=pytz.utc), + 'street0Raises': 0, + 'street1Pot': 0, + 'street1Raises': 1, + 'street2Pot': 0, + 'street2Raises': 0, + 'street3Pot': 0, + 'street3Raises': 0, + 'street4Pot': 0, + 'street4Raises': 0, + 'tableName': u'Axe Handle', + 'texture': None, + 'tourneyId': None} diff --git a/pyfpdb/regression-test-files/cash/FTP/Draw/5-Carddraw-PL-0.10-0.25-201011.Sample.Not.UTF16.txt.hp b/pyfpdb/regression-test-files/cash/FTP/Draw/5-Carddraw-PL-0.10-0.25-201011.Sample.Not.UTF16.txt.hp new file mode 100644 index 00000000..0bbc0953 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/FTP/Draw/5-Carddraw-PL-0.10-0.25-201011.Sample.Not.UTF16.txt.hp @@ -0,0 +1,412 @@ +{ u'Hero': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': True, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 'B', + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': True, + 'seatNo': 3, + 'sitout': False, + 'startCards': 0, + 'startCash': 2713, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 1, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': True, + 'street2CheckCallRaiseDone': True, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'success_Steal': False, + 'totalProfit': -50, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player2': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 'S', + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 2, + 'sitout': False, + 'startCards': 0, + 'startCash': 1470, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'success_Steal': False, + 'totalProfit': -10, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player4': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 1, + 'raiseFirstInChance': True, + 'raisedFirstIn': False, + 'rake': 5, + 'sawShowdown': True, + 'seatNo': 4, + 'sitout': False, + 'startCards': 0, + 'startCash': 800, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': True, + 'street1Bets': 1, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'success_Steal': False, + 'totalProfit': 55, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 105, + 'wonAtSD': 1.0, + 'wonWhenSeenStreet1': 1.0, + 'wonWhenSeenStreet2': 1.0, + 'wonWhenSeenStreet3': 1.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player6': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 0, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 6, + 'sitout': False, + 'startCards': 0, + 'startCash': 2693, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'success_Steal': False, + 'totalProfit': 0, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}} diff --git a/pyfpdb/regression-test-files/cash/FTP/Draw/Badugi-USD-0.05-0.10-201011.Sample.Not.UTF16.txt b/pyfpdb/regression-test-files/cash/FTP/Draw/Badugi-USD-0.05-0.10-201011.Sample.Not.UTF16.txt new file mode 100644 index 00000000..31b7fbee Binary files /dev/null and b/pyfpdb/regression-test-files/cash/FTP/Draw/Badugi-USD-0.05-0.10-201011.Sample.Not.UTF16.txt differ diff --git a/pyfpdb/regression-test-files/cash/FTP/Draw/Badugi-USD-0.05-0.10-201011.Sample.Not.UTF16.txt.gt b/pyfpdb/regression-test-files/cash/FTP/Draw/Badugi-USD-0.05-0.10-201011.Sample.Not.UTF16.txt.gt new file mode 100644 index 00000000..1a1214c9 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/FTP/Draw/Badugi-USD-0.05-0.10-201011.Sample.Not.UTF16.txt.gt @@ -0,0 +1 @@ +(1, 'USD', 'ring', 'draw', 'badugi', 'fl', 'l', 2, 5, 5, 10) diff --git a/pyfpdb/regression-test-files/cash/FTP/Draw/Badugi-USD-0.05-0.10-201011.Sample.Not.UTF16.txt.hands b/pyfpdb/regression-test-files/cash/FTP/Draw/Badugi-USD-0.05-0.10-201011.Sample.Not.UTF16.txt.hands new file mode 100644 index 00000000..d98855ae --- /dev/null +++ b/pyfpdb/regression-test-files/cash/FTP/Draw/Badugi-USD-0.05-0.10-201011.Sample.Not.UTF16.txt.hands @@ -0,0 +1,31 @@ +{ 'boardcard1': 0, + 'boardcard2': 0, + 'boardcard3': 0, + 'boardcard4': 0, + 'boardcard5': 0, + 'gametypeId': 2, + 'importTime': None, + 'maxSeats': 7, + 'playersAtShowdown': 3, + 'playersAtStreet1': 4, + 'playersAtStreet2': 4, + 'playersAtStreet3': 3, + 'playersAtStreet4': 0, + 'playersVpi': 3, + 'seats': 7, + 'sessionId': None, + 'showdownPot': 0, + 'siteHandNo': u'25340585274', + 'startTime': datetime.datetime(2010, 11, 7, 8, 2, 56, tzinfo=pytz.utc), + 'street0Raises': 0, + 'street1Pot': 0, + 'street1Raises': 1, + 'street2Pot': 0, + 'street2Raises': 1, + 'street3Pot': 0, + 'street3Raises': 1, + 'street4Pot': 0, + 'street4Raises': 0, + 'tableName': u'Laurelvale', + 'texture': None, + 'tourneyId': None} diff --git a/pyfpdb/regression-test-files/cash/FTP/Draw/Badugi-USD-0.05-0.10-201011.Sample.Not.UTF16.txt.hp b/pyfpdb/regression-test-files/cash/FTP/Draw/Badugi-USD-0.05-0.10-201011.Sample.Not.UTF16.txt.hp new file mode 100644 index 00000000..169c5f0c --- /dev/null +++ b/pyfpdb/regression-test-files/cash/FTP/Draw/Badugi-USD-0.05-0.10-201011.Sample.Not.UTF16.txt.hp @@ -0,0 +1,721 @@ +{ u'Hero': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': True, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': True, + 'otherRaisedStreet2': True, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 'B', + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 1, + 'sitout': False, + 'startCards': 0, + 'startCash': 100, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 1, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': True, + 'street2CheckCallRaiseDone': True, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': True, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'success_Steal': False, + 'totalProfit': -10, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player2': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 4, + 'raiseFirstInChance': True, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 2, + 'sitout': False, + 'startCards': 0, + 'startCash': 275, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'success_Steal': False, + 'totalProfit': 0, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player3': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 3, + 'raiseFirstInChance': True, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 3, + 'sitout': False, + 'startCards': 0, + 'startCash': 345, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'success_Steal': False, + 'totalProfit': 0, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player4': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': True, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 2, + 'raiseFirstInChance': True, + 'raisedFirstIn': False, + 'rake': 5, + 'sawShowdown': True, + 'seatNo': 4, + 'sitout': False, + 'startCards': 0, + 'startCash': 90, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': True, + 'street1Bets': 1, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': True, + 'street2CBDone': False, + 'street2Calls': 1, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': True, + 'street3Bets': 1, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': True, + 'street3CheckCallRaiseDone': True, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'success_Steal': False, + 'totalProfit': 65, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 95, + 'wonAtSD': 1.0, + 'wonWhenSeenStreet1': 1.0, + 'wonWhenSeenStreet2': 1.0, + 'wonWhenSeenStreet3': 1.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player5': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': True, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': True, + 'otherRaisedStreet4': False, + 'position': 1, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': True, + 'seatNo': 5, + 'sitout': False, + 'startCards': 0, + 'startCash': 165, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 1, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': True, + 'street2Bets': 1, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 1, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'success_Steal': False, + 'totalProfit': -30, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player6': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 0, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 6, + 'sitout': False, + 'startCards': 0, + 'startCash': 236, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'success_Steal': False, + 'totalProfit': 0, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Player7': { 'card1': 0, + 'card2': 0, + 'card3': 0, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': True, + 'otherRaisedStreet2': True, + 'otherRaisedStreet3': True, + 'otherRaisedStreet4': False, + 'position': 'S', + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': True, + 'seatNo': 7, + 'sitout': False, + 'startCards': 0, + 'startCash': 220, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 1, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 1, + 'street2CheckCallRaiseChance': True, + 'street2CheckCallRaiseDone': True, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 1, + 'street3CheckCallRaiseChance': True, + 'street3CheckCallRaiseDone': True, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'success_Steal': False, + 'totalProfit': -30, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}} diff --git a/pyfpdb/regression-test-files/tour/FTP/Stud/Razz-USD-HUSNG-2-201102.Villain.allin.on.bringing.txt b/pyfpdb/regression-test-files/tour/FTP/Stud/Razz-USD-HUSNG-2-201102.Villain.allin.on.bringing.txt new file mode 100644 index 00000000..035e0542 Binary files /dev/null and b/pyfpdb/regression-test-files/tour/FTP/Stud/Razz-USD-HUSNG-2-201102.Villain.allin.on.bringing.txt differ diff --git a/pyfpdb/regression-test-files/tour/FTP/Stud/Razz-USD-HUSNG-2-201102.Villain.allin.on.bringing.txt.gt b/pyfpdb/regression-test-files/tour/FTP/Stud/Razz-USD-HUSNG-2-201102.Villain.allin.on.bringing.txt.gt new file mode 100644 index 00000000..fba7545b --- /dev/null +++ b/pyfpdb/regression-test-files/tour/FTP/Stud/Razz-USD-HUSNG-2-201102.Villain.allin.on.bringing.txt.gt @@ -0,0 +1 @@ +(1, 'T$', 'tour', 'stud', 'razz', 'fl', 'l', 8000, 16000, 16000, 32000) diff --git a/pyfpdb/regression-test-files/tour/FTP/Stud/Razz-USD-HUSNG-2-201102.Villain.allin.on.bringing.txt.hands b/pyfpdb/regression-test-files/tour/FTP/Stud/Razz-USD-HUSNG-2-201102.Villain.allin.on.bringing.txt.hands new file mode 100644 index 00000000..315dc468 --- /dev/null +++ b/pyfpdb/regression-test-files/tour/FTP/Stud/Razz-USD-HUSNG-2-201102.Villain.allin.on.bringing.txt.hands @@ -0,0 +1,31 @@ +{ 'boardcard1': 0, + 'boardcard2': 0, + 'boardcard3': 0, + 'boardcard4': 0, + 'boardcard5': 0, + 'gametypeId': 1, + 'importTime': None, + 'maxSeats': 2, + 'playersAtShowdown': 2, + 'playersAtStreet1': 2, + 'playersAtStreet2': 2, + 'playersAtStreet3': 2, + 'playersAtStreet4': 2, + 'playersVpi': 1, + 'seats': 2, + 'sessionId': None, + 'showdownPot': 0, + 'siteHandNo': u'28333847000', + 'startTime': datetime.datetime(2011, 2, 19, 10, 46, tzinfo=pytz.utc), + 'street0Raises': 0, + 'street1Pot': 0, + 'street1Raises': 0, + 'street2Pot': 0, + 'street2Raises': 0, + 'street3Pot': 0, + 'street3Raises': 0, + 'street4Pot': 0, + 'street4Raises': 0, + 'tableName': u'220338000 1', + 'texture': None, + 'tourneyId': 1} diff --git a/pyfpdb/regression-test-files/tour/FTP/Stud/Razz-USD-HUSNG-2-201102.Villain.allin.on.bringing.txt.hp b/pyfpdb/regression-test-files/tour/FTP/Stud/Razz-USD-HUSNG-2-201102.Villain.allin.on.bringing.txt.hp new file mode 100644 index 00000000..b5f7f2a3 --- /dev/null +++ b/pyfpdb/regression-test-files/tour/FTP/Stud/Razz-USD-HUSNG-2-201102.Villain.allin.on.bringing.txt.hp @@ -0,0 +1,206 @@ +{ u'Hero': { 'card1': 17, + 'card2': 44, + 'card3': 40, + 'card4': 22, + 'card5': 10, + 'card6': 1, + 'card7': 37, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 0, + 'raiseFirstInChance': True, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': True, + 'seatNo': 2, + 'sitout': False, + 'startCards': 52, + 'startCash': 97600, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': True, + 'success_Steal': False, + 'totalProfit': 2400, + 'tourneyTypeId': 1, + 'tourneysPlayersIds': 2, + 'winnings': 4800, + 'wonAtSD': 1.0, + 'wonWhenSeenStreet1': 1.0, + 'wonWhenSeenStreet2': 1.0, + 'wonWhenSeenStreet3': 1.0, + 'wonWhenSeenStreet4': 1.0}, + u'Villain': { 'card1': 52, + 'card2': 32, + 'card3': 38, + 'card4': 49, + 'card5': 42, + 'card6': 19, + 'card7': 35, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 'S', + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': True, + 'seatNo': 1, + 'sitout': False, + 'startCards': 708, + 'startCash': 2400, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street0_C4BChance': False, + 'street0_C4BDone': False, + 'street0_FoldTo3BChance': False, + 'street0_FoldTo3BDone': False, + 'street0_FoldTo4BChance': False, + 'street0_FoldTo4BDone': False, + 'street0_SqueezeChance': False, + 'street0_SqueezeDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': True, + 'success_Steal': False, + 'totalProfit': -2400, + 'tourneyTypeId': 1, + 'tourneysPlayersIds': 1, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}}