diff --git a/packaging/windows/py27-links.txt b/packaging/windows/py27-links.txt index 8005ec8d..cb1e413c 100644 --- a/packaging/windows/py27-links.txt +++ b/packaging/windows/py27-links.txt @@ -1,9 +1,16 @@ +This is a list of download links of Windows packages for Python 2.7 of our dependencies. + + +These are as of 26Feb2011: +matplotlib 1.0.1 ... http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0.1/ +pygtk 2.22 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.22/ +pycairo 1.8.10 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.8/ +pyGobject X ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.26/ + + +The below are from Aug2010, and should probably be updated to newer versions: Python 2.7 ... http://python.org/ftp/python/2.7/python-2.7.msi pywin 214 ... https://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/pywin32-214.win32-py2.7.exe/download -matplotlib X ... not available as py27 as of 16aug2010: https://sourceforge.net/projects/matplotlib/files/matplotlib/ -pygtk X ... not available as py27 as of 16aug2010: http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/ -pycairo X ... not available as py27 as of 16aug2010: http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/ -pyGobject X ... not available as py27 as of 16aug2010: http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/ py2exe 0.6.9 ... https://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/py2exe-0.6.9.win32-py2.7.exe/download psycopg2 ... http://www.stickpeople.com/projects/python/win-psycopg/psycopg2-2.2.2.win32-py2.7-pg8.4.4-release.exe diff --git a/pyfpdb/AlchemyFacilities.py b/pyfpdb/AlchemyFacilities.py index fd2082d1..a7f85cd7 100644 --- a/pyfpdb/AlchemyFacilities.py +++ b/pyfpdb/AlchemyFacilities.py @@ -17,7 +17,7 @@ #TODO: gettextify if file is used again -from decimal import Decimal +from decimal_wrapper import Decimal from sqlalchemy import types from sqlalchemy.orm.exc import NoResultFound diff --git a/pyfpdb/AlchemyMappings.py b/pyfpdb/AlchemyMappings.py index b5891c25..a0ddcd25 100644 --- a/pyfpdb/AlchemyMappings.py +++ b/pyfpdb/AlchemyMappings.py @@ -23,7 +23,7 @@ This package contains all classes to be mapped and mappers themselves import logging import re -from decimal import Decimal +from decimal_wrapper import Decimal from sqlalchemy.orm import mapper, relation, reconstructor from sqlalchemy.sql import select from collections import defaultdict diff --git a/pyfpdb/CarbonToFpdb.py b/pyfpdb/CarbonToFpdb.py index b9d80791..2c5dbd5b 100644 --- a/pyfpdb/CarbonToFpdb.py +++ b/pyfpdb/CarbonToFpdb.py @@ -53,7 +53,7 @@ _ = L10n.get_translation() import sys import logging from HandHistoryConverter import * -from decimal import Decimal +from decimal_wrapper import Decimal class Carbon(HandHistoryConverter): diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 6340660d..db54fa0b 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -38,7 +38,7 @@ import sys import traceback from datetime import datetime, date, time, timedelta from time import time, strftime, sleep -from decimal import Decimal +from decimal_wrapper import Decimal import string import re import Queue @@ -454,7 +454,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..86a363f3 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -17,7 +17,7 @@ #fpdb modules import Card -from decimal import Decimal +from decimal_wrapper import Decimal import logging # logging has been set up in fpdb.py or HUD_main.py, use their settings: @@ -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/EverestToFpdb.py b/pyfpdb/EverestToFpdb.py index f910ba2f..a9abebc1 100644 --- a/pyfpdb/EverestToFpdb.py +++ b/pyfpdb/EverestToFpdb.py @@ -25,7 +25,7 @@ _ = L10n.get_translation() import sys import logging from HandHistoryConverter import * -from decimal import Decimal +from decimal_wrapper import Decimal class Everest(HandHistoryConverter): diff --git a/pyfpdb/FullTiltPokerSummary.py b/pyfpdb/FullTiltPokerSummary.py index 2edcd81e..1172d27c 100644 --- a/pyfpdb/FullTiltPokerSummary.py +++ b/pyfpdb/FullTiltPokerSummary.py @@ -20,7 +20,7 @@ import L10n _ = L10n.get_translation() -from decimal import Decimal +from decimal_wrapper import Decimal import datetime from Exceptions import FpdbParseError diff --git a/pyfpdb/HUD_config.xml.example b/pyfpdb/HUD_config.xml.example index b62d6db1..d6aed156 100644 --- a/pyfpdb/HUD_config.xml.example +++ b/pyfpdb/HUD_config.xml.example @@ -263,7 +263,7 @@ Left-Drag to Move" bgcolor="#000000" converter="EverleafToFpdb" decoder="everleaf_decode_table" - enabled="False" + enabled="True" fgcolor="#EEEEEE" hudopacity="0.75" screen_name="PlayerName" @@ -312,7 +312,7 @@ Left-Drag to Move" - - - - + @@ -542,7 +542,7 @@ Left-Drag to Move" - + @@ -578,7 +578,7 @@ Left-Drag to Move" - + @@ -614,7 +614,7 @@ Left-Drag to Move" - + diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index db6b0620..539ec59c 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -25,7 +25,7 @@ import sys import traceback import os import os.path -from decimal import Decimal +from decimal_wrapper import Decimal import operator import time,datetime from copy import deepcopy @@ -490,7 +490,7 @@ For sites (currently only Carbon Poker) which record "all in" as a special actio 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) @@ -592,7 +592,7 @@ Add a raise by amountBy on [street] by [player] 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 @@ -609,7 +609,7 @@ For sites which by "raises x" mean "calls and raises putting a total of x in the 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 @@ -624,7 +624,7 @@ Add a raise on [street] by [player] to [amountTo] self.checkPlayerExists(player) 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 @@ -1386,7 +1386,7 @@ Add a complete on [street] by [player] to [amountTo] 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 @@ -1401,6 +1401,7 @@ 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)) + bringin = bringin.replace(u',', u'') #some sites have commas bringin = Decimal(bringin) self.bets['THIRD'][player].append(bringin) self.stacks[player] -= bringin diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index 3f0c51bd..8cf45f02 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -26,7 +26,7 @@ import os import os.path import xml.dom.minidom import codecs -from decimal import Decimal +from decimal_wrapper import Decimal import operator from xml.dom.minidom import Node diff --git a/pyfpdb/OnGameToFpdb.py b/pyfpdb/OnGameToFpdb.py index 889f2d24..a7423c00 100755 --- a/pyfpdb/OnGameToFpdb.py +++ b/pyfpdb/OnGameToFpdb.py @@ -31,7 +31,7 @@ log = logging.getLogger("parser") import Configuration from HandHistoryConverter import * -from decimal import Decimal +from decimal_wrapper import Decimal # OnGame HH Format diff --git a/pyfpdb/PokerStarsSummary.py b/pyfpdb/PokerStarsSummary.py index 01a9223b..4caa7a3f 100644 --- a/pyfpdb/PokerStarsSummary.py +++ b/pyfpdb/PokerStarsSummary.py @@ -20,7 +20,7 @@ import L10n _ = L10n.get_translation() -from decimal import Decimal +from decimal_wrapper import Decimal import datetime from Exceptions import FpdbParseError diff --git a/pyfpdb/PokerStarsToFpdb.py b/pyfpdb/PokerStarsToFpdb.py index 67d8c433..060ad85c 100644 --- a/pyfpdb/PokerStarsToFpdb.py +++ b/pyfpdb/PokerStarsToFpdb.py @@ -25,7 +25,7 @@ _ = L10n.get_translation() import sys from HandHistoryConverter import * -from decimal import Decimal +from decimal_wrapper import Decimal # PokerStars HH Format @@ -131,34 +131,29 @@ class PokerStars(HandHistoryConverter): # revised re including timezone (not currently used): #re_DateTime = re.compile("""(?P[0-9]{4})\/(?P[0-9]{2})\/(?P[0-9]{2})[\- ]+(?P[0-9]+):(?P[0-9]+):(?P[0-9]+) \(?(?P[A-Z0-9]+)""", re.MULTILINE) - def compilePlayerRegexs(self, hand): - players = set([player[1] for player in hand.players]) - if not players <= self.compiledPlayers: # x <= y means 'x is subset of y' - # we need to recompile the player regexs. -# TODO: should probably rename re_HeroCards and corresponding method, -# since they are used to find all cards on lines starting with "Dealt to:" -# They still identify the hero. - self.compiledPlayers = players - player_re = "(?P" + "|".join(map(re.escape, players)) + ")" - subst = {'PLYR': player_re, 'CUR': self.sym[hand.gametype['currency']]} - log.debug("player_re: " + player_re) - self.re_PostSB = re.compile(r"^%(PLYR)s: posts small blind %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) - self.re_PostBB = re.compile(r"^%(PLYR)s: posts big blind %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) - self.re_Antes = re.compile(r"^%(PLYR)s: posts the ante %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) - self.re_BringIn = re.compile(r"^%(PLYR)s: brings[- ]in( low|) for %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) - self.re_PostBoth = re.compile(r"^%(PLYR)s: posts small \& big blinds %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) - self.re_HeroCards = re.compile(r"^Dealt to %(PLYR)s(?: \[(?P.+?)\])?( \[(?P.+?)\])" % subst, re.MULTILINE) - self.re_Action = re.compile(r""" + # These used to be compiled per player, but regression tests say + # we don't have to, and it makes life faster. + short_subst = {'PLYR': r'(?P.+?)', 'CUR': '\$?'} + re_PostSB = re.compile(r"^%(PLYR)s: posts small blind %(CUR)s(?P[.0-9]+)" % short_subst, re.MULTILINE) + re_PostBB = re.compile(r"^%(PLYR)s: posts big blind %(CUR)s(?P[.0-9]+)" % short_subst, re.MULTILINE) + re_Antes = re.compile(r"^%(PLYR)s: posts the ante %(CUR)s(?P[.0-9]+)" % short_subst, re.MULTILINE) + re_BringIn = re.compile(r"^%(PLYR)s: brings[- ]in( low|) for %(CUR)s(?P[.0-9]+)" % short_subst, re.MULTILINE) + re_PostBoth = re.compile(r"^%(PLYR)s: posts small \& big blinds %(CUR)s(?P[.0-9]+)" % short_subst, re.MULTILINE) + re_HeroCards = re.compile(r"^Dealt to %(PLYR)s(?: \[(?P.+?)\])?( \[(?P.+?)\])" % short_subst, re.MULTILINE) + re_Action = re.compile(r""" ^%(PLYR)s:(?P\sbets|\schecks|\sraises|\scalls|\sfolds|\sdiscards|\sstands\spat) (\s(%(CUR)s)?(?P[.\d]+))?(\sto\s%(CUR)s(?P[.\d]+))? # the number discarded goes in \s*(and\sis\sall.in)? (and\shas\sreached\sthe\s[%(CUR)s\d\.]+\scap)? (\scards?(\s\[(?P.+?)\])?)?\s*$""" - % subst, re.MULTILINE|re.VERBOSE) - self.re_ShowdownAction = re.compile(r"^%s: shows \[(?P.*)\]" % player_re, re.MULTILINE) - self.re_CollectPot = re.compile(r"Seat (?P[0-9]+): %(PLYR)s (\(button\) |\(small blind\) |\(big blind\) |\(button\) \(small blind\) |\(button\) \(big blind\) )?(collected|showed \[.*\] and won) \(%(CUR)s(?P[.\d]+)\)(, mucked| with.*|)" % subst, re.MULTILINE) - self.re_sitsOut = re.compile("^%s sits out" % player_re, re.MULTILINE) - self.re_ShownCards = re.compile("^Seat (?P[0-9]+): %s (\(.*\) )?(?Pshowed|mucked) \[(?P.*)\].*" % player_re, re.MULTILINE) + % short_subst, re.MULTILINE|re.VERBOSE) + re_ShowdownAction = re.compile(r"^%s: shows \[(?P.*)\]" % short_subst['PLYR'], re.MULTILINE) + re_sitsOut = re.compile("^%s sits out" % short_subst['PLYR'], re.MULTILINE) + re_ShownCards = re.compile("^Seat (?P[0-9]+): %s (\(.*\) )?(?Pshowed|mucked) \[(?P.*)\].*" % short_subst['PLYR'], re.MULTILINE) + re_CollectPot = re.compile(r"Seat (?P[0-9]+): %(PLYR)s (\(button\) |\(small blind\) |\(big blind\) |\(button\) \(small blind\) |\(button\) \(big blind\) )?(collected|showed \[.*\] and won) \(%(CUR)s(?P[.\d]+)\)(, mucked| with.*|)" % short_subst, re.MULTILINE) + + def compilePlayerRegexs(self, hand): + pass def readSupportedGames(self): return [["ring", "hold", "nl"], diff --git a/pyfpdb/SitenameSummary.py b/pyfpdb/SitenameSummary.py index d06b9831..f3b76700 100644 --- a/pyfpdb/SitenameSummary.py +++ b/pyfpdb/SitenameSummary.py @@ -20,7 +20,7 @@ import L10n _ = L10n.get_translation() -from decimal import Decimal +from decimal_wrapper import Decimal import datetime from Exceptions import FpdbParseError diff --git a/pyfpdb/TableWindow.py b/pyfpdb/TableWindow.py index 4cab43ad..72151d13 100644 --- a/pyfpdb/TableWindow.py +++ b/pyfpdb/TableWindow.py @@ -142,7 +142,7 @@ class Table_Window(object): if self.number is not None: break trys += 1 if trys > 4: - log.error("Can't find table %s" % table_name) + log.error(_("Can't find table %s") % table_name) return None geo = self.get_geometry() diff --git a/pyfpdb/TourneySummary.py b/pyfpdb/TourneySummary.py index d83ac1a8..1def7703 100644 --- a/pyfpdb/TourneySummary.py +++ b/pyfpdb/TourneySummary.py @@ -28,7 +28,7 @@ import traceback import logging import os import os.path -from decimal import Decimal +from decimal_wrapper import Decimal import operator import time,datetime from copy import deepcopy diff --git a/pyfpdb/WinamaxSummary.py b/pyfpdb/WinamaxSummary.py index c3a5bd14..c466fbd2 100644 --- a/pyfpdb/WinamaxSummary.py +++ b/pyfpdb/WinamaxSummary.py @@ -18,7 +18,7 @@ import L10n _ = L10n.get_translation() -from decimal import Decimal +from decimal_wrapper import Decimal import datetime from BeautifulSoup import BeautifulSoup diff --git a/pyfpdb/WinamaxToFpdb.py b/pyfpdb/WinamaxToFpdb.py index 6aa6f51c..d0540ec0 100644 --- a/pyfpdb/WinamaxToFpdb.py +++ b/pyfpdb/WinamaxToFpdb.py @@ -29,7 +29,7 @@ import logging import Configuration from HandHistoryConverter import * -from decimal import Decimal +from decimal_wrapper import Decimal import time # Winamax HH Format diff --git a/pyfpdb/decimal_wrapper.py b/pyfpdb/decimal_wrapper.py new file mode 100644 index 00000000..e5202d92 --- /dev/null +++ b/pyfpdb/decimal_wrapper.py @@ -0,0 +1,4 @@ +try: + from cdecimal import * +except ImportError: + from decimal import * diff --git a/pyfpdb/iPokerToFpdb.py b/pyfpdb/iPokerToFpdb.py index 4766d72e..950a9901 100644 --- a/pyfpdb/iPokerToFpdb.py +++ b/pyfpdb/iPokerToFpdb.py @@ -46,7 +46,7 @@ _ = L10n.get_translation() import sys import logging from HandHistoryConverter import * -from decimal import Decimal +from decimal_wrapper import Decimal class iPoker(HandHistoryConverter): diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index 1661f8f2..49bf53b5 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.905 plus git\n" "POT-Creation-Date: 2011-02-23 16:58+CET\n" -"PO-Revision-Date: 2011-02-20 21:27+0100\n" +"PO-Revision-Date: 2011-02-24 12:08+0100\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -654,7 +654,7 @@ msgstr "Versenyek" #: Filters.py:80 msgid "DEBUG: New packing box created!" -msgstr "" +msgstr "DEBUG: Új csoportosító doboz létrehozva!" #: Filters.py:106 TourneyFilters.py:114 msgid "Either 0 or more than one site matched (%s) - EEK" @@ -714,20 +714,19 @@ msgstr "Nem található játék az adatbázisban" #: Filters.py:827 msgid "Graphing Options:" -msgstr "" +msgstr "Grafikon opciók:" #: Filters.py:839 msgid "Show Graph In:" -msgstr "" +msgstr "Profit:" #: Filters.py:859 msgid "Showdown Winnings" -msgstr "" +msgstr "Nyeremény mutatással" #: Filters.py:867 -#, fuzzy msgid "Non-Showdown Winnings" -msgstr "Mutatás nélkül: $%.2f" +msgstr "Nyeremény mutatás nélkül" #: Filters.py:984 msgid "From:" @@ -842,9 +841,8 @@ msgid " Start _Auto Import " msgstr " _Auto Import indítása " #: GuiAutoImport.py:125 -#, fuzzy msgid "Detect Directories" -msgstr "'%s' könyvtár létrehozva" +msgstr "Könyvtárak felismerése" #: GuiAutoImport.py:144 msgid "Auto Import Ready." @@ -3117,10 +3115,11 @@ msgstr "Nem sikerült az utcák hozzáadása. handtext=%s" #: XTables.py:70 msgid "Could not retrieve XID from table xwininfo. xwininfo is %s" msgstr "" +"Nem sikerült az XID meghatározása az asztal xwininfo-jából. Az xwininfo: %s" #: XTables.py:74 msgid "No match in XTables for table '%s'." -msgstr "" +msgstr "Nincs találat az XTables-ben ehhez az asztalhoz: '%s'" #: fpdb.pyw:38 msgid " - press return to continue\n" 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}}