Coverage for PokerStarsStructures.py: 0%
15 statements
« prev ^ index » next coverage.py v7.6.1, created at 2024-09-27 18:50 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2024-09-27 18:50 +0000
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3#
4# Copyright 2010-2013, Chaz Littlejohn
5#
6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2 of the License, or
9# (at your option) any later version.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with this program; if not, write to the Free Software
18# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20########################################################################
24from datetime import datetime
25import pytz
27class PokerStarsStructures(object):
29 def __init__(self):
30 self.versions = [pytz.utc.localize(datetime.strptime(d, "%Y/%m/%d %H:%M:%S")) for d in ("2011/05/05 00:00:00","2011/05/20 00:00:00")]
31 self.versions.append(datetime.utcnow().replace(tzinfo = pytz.utc))
32 self.SnG_Structures = []
33 self.SnG_Structures.append({(150, 25, 9): 'Turbo', #7-10 handed, under 45 entrants
34 #Not unique (300, 40, 9): 'Turbo', #7-10 handed, under 45 entrants
35 (600, 50, 9): 'Turbo', #7-10 handed, under 45 entrants
36 (1500, 100, 9): 'Turbo', #7-10 handed, under 45 entrants
37 (2500, 200, 9): 'Turbo', #7-10 handed, under 45 entrants
38 (3500, 300, 9): 'Turbo', #7-10 handed, under 45 entrants
39 (5500, 500, 9): 'Turbo', #7-10 handed, under 45 entrants
40 (10492, 908, 9): 'Turbo', #7-10 handed, under 45 entrants
41 (21000, 1500, 9): 'Turbo', #7-10 handed, under 45 entrants
42 (32500, 2000, 9): 'Turbo', #7-10 handed, under 45 entrants
43 (52500, 3000, 9): 'Turbo', #7-10 handed, under 45 entrants
44 (105000, 5000, 9): 'Turbo', #7-10 handed, under 45 entrants
45 (210000, 9000, 9): 'Turbo', #7-10 handed, under 45 entrants
46 (100, 20, 9): 'Normal', #7-10 handed, under 45 entrants
47 (300, 40, 9): 'Normal', #7-10 handed, under 45 entrants #Not unique
48 (545, 55, 9): 'Normal', #7-10 handed, under 45 entrants
49 (1000, 100, 9): 'Normal', #7-10 handed, under 45 entrants
50 (2000, 200, 9): 'Normal', #7-10 handed, under 45 entrants
51 (3000, 300, 9): 'Normal', #7-10 handed, under 45 entrants
52 (5000, 500, 9): 'Normal', #7-10 handed, under 45 entrants
53 (10000, 900, 9): 'Normal', #7-10 handed, under 45 entrants
54 (20000, 1500, 9): 'Normal', #7-10 handed, under 45 entrants
55 (30000, 2000, 9): 'Normal', #7-10 handed, under 45 entrants
56 (50000, 3000, 9): 'Normal', #7-10 handed, under 45 entrants
57 (100000, 5000, 9): 'Normal', #7-10 handed, under 45 entrants
58 (200000, 9000, 9): 'Normal', #7-10 handed, under 45 entrants
59 (300, 25, 6): 'Turbo', #6-handed, Under 30 Entrants
60 #Not unique (600, 60, 6): 'Turbo', #6-handed, Under 30 Entrants
61 #Not unique (1200, 100, 6): 'Turbo', #6-handed, Under 30 Entrants
62 #Not unique (2300, 200, 6): 'Turbo', #6-handed, Under 30 Entrants
63 (3600, 300, 6): 'Turbo', #6-handed, Under 30 Entrants
64 (5500, 500, 6): 'Turbo', #6-handed, Under 30 Entrants
65 (7200, 600, 6): 'Turbo', #6-handed, Under 30 Entrants
66 (11000, 900, 6): 'Turbo', #6-handed, Under 30 Entrants
67 (22000, 1500, 6): 'Turbo', #6-handed, Under 30 Entrants
68 (53500, 3000, 6): 'Turbo', #6-handed, Under 30 Entrants
69 (106000, 5000, 6): 'Turbo', #6-handed, Under 30 Entrants
70 (100, 20, 6): 'Normal', #6-handed, Under 30 Entrants
71 (300, 40, 6): 'Normal', #6-handed, Under 30 Entrants
72 (600, 60, 6): 'Normal', #6-handed, Under 30 Entrants #Not unique
73 (1200, 100, 6): 'Normal', #6-handed, Under 30 Entrants #Not unique
74 (2300, 200, 6): 'Normal', #6-handed, Under 30 Entrants #Not unique
75 (3500, 300, 6): 'Normal', #6-handed, Under 30 Entrants
76 (5060, 440, 6): 'Normal', #6-handed, Under 30 Entrants
77 (7000, 600, 6): 'Normal', #6-handed, Under 30 Entrants
78 (11200, 900, 6): 'Normal', #6-handed, Under 30 Entrants
79 (30500, 2000, 6): 'Normal', #6-handed, Under 30 Entrants
80 (600, 25, 2): 'Turbo', #Heads Up
81 (1100, 50, 2): 'Turbo', #Heads Up
82 (2200, 100, 2): 'Turbo', #Heads Up
83 (3300, 150, 2): 'Turbo', #Heads Up
84 (5500, 250, 2): 'Turbo', #Heads Up
85 (11000, 500, 2): 'Turbo', #Heads Up
86 (22000, 1000, 2): 'Turbo', #Heads Up
87 (33000, 1500, 2): 'Turbo', #Heads Up
88 (55000, 2000, 2): 'Turbo', #Heads Up
89 (110000, 3000, 2): 'Turbo', #Heads Up
90 (220000, 5000, 2): 'Turbo', #Heads Up
91 (550000, 10000, 2): 'Turbo', #Heads Up
92 (200, 20, 2): 'Normal', #Heads Up
93 (500, 25, 2): 'Normal', #Heads Up
94 (1000, 50, 2): 'Normal', #Heads Up
95 (2000, 100, 2): 'Normal', #Heads Up
96 (3000, 150, 2): 'Normal', #Heads Up
97 (5000, 250, 2): 'Normal', #Heads Up
98 (10000, 500, 2): 'Normal', #Heads Up
99 (20000, 1000, 2): 'Normal', #Heads Up
100 (30000, 1500, 2): 'Normal', #Heads Up
101 (50000, 2000, 2): 'Normal', #Heads Up
102 (100000, 3000, 2): 'Normal', #Heads Up
103 (200000, 5000, 2): 'Normal', #Heads Up
104 (500000, 10000, 2): 'Normal', #Heads Up
105 (50, 5, 45): 'Turbo', #45 Entrants
106 (100, 10, 45): 'Turbo', #45 Entrants
107 (300, 25, 45): 'Turbo', #45 Entrants
108 (600, 50, 45): 'Turbo', #45 Entrants
109 (1100, 100, 45): 'Turbo', #45 Entrants
110 (2500, 200, 45): 'Turbo', #45 Entrants
111 (3500, 300, 45): 'Turbo', #45 Entrants
112 (5500, 500, 45): 'Turbo', #45 Entrants
113 (10500, 900, 45): 'Turbo', #45 Entrants
114 (25, 0, 45): 'Normal', #45 Entrants
115 (100, 20, 45): 'Normal', #45 Entrants
116 (500, 50, 45): 'Normal', #45 Entrants
117 (1000, 100, 45): 'Normal', #45 Entrants
118 (2000, 200, 45): 'Normal', #45 Entrants
119 (50, 5, 90): 'Turbo', #90 Entrants
120 (100, 10, 90): 'Turbo', #90 Entrants
121 (300, 25, 90): 'Turbo', #90 Entrants
122 (600, 50, 90): 'Turbo', #90 Entrants
123 (1100, 100, 90): 'Turbo', #90 Entrants
124 (5500, 500, 90): 'Turbo', #90 Entrants
125 (100, 8, 10): 'Turbo', #Fifty50
126 (500, 24, 10): 'Turbo', #Fifty50
127 (1000, 48, 10): 'Turbo', #Fifty50
128 (2000, 96, 10): 'Turbo', #Fifty50
129 (3000, 144, 10): 'Turbo', #Fifty50
130 (5000, 240, 10): 'Turbo', #Fifty50
131 (10000, 430, 10): 'Turbo', #Fifty50
132 (100, 11, 10): 'Normal', #Fifty50
133 (500, 30, 10): 'Normal', #Fifty50
134 (1000, 60, 10): 'Normal', #Fifty50
135 (2000, 120, 10): 'Normal', #Fifty50
136 (3000, 180, 10): 'Normal', #Fifty50
137 (5000, 300, 10): 'Normal', #Fifty50
138 (10000, 540, 10): 'Normal', #Fifty50
139 (25, 0, 90): 'Normal', #90 Entrants
140 (200, 20, 90): 'Normal', #90 Entrants
141 (500, 50, 90): 'Normal', #90 Entrants
142 (800, 80, 90): 'Normal', #90 Entrants
143 (200, 20, 180): 'Turbo', #180 Entrants
144 (700, 70, 180): 'Turbo', #180 Entrants
145 (1100, 100, 180): 'Turbo', #180 Entrants
146 (3300, 300, 180): 'Turbo', #180 Entrants
147 (400, 40, 180): 'Normal', #180 Entrants
148 (1000, 100, 180): 'Normal', #180 Entrants
149 (2000, 200, 180): 'Normal', #180 Entrants
150 (125, 10, 27): 'Normal', #27 Player Knockout
151 (125, 15, 90): 'Normal', #90 Player Knockout
152 (625, 50, 90): 'Normal', #90 Player Knockout
153 (1250, 100, 90): 'Normal', #90 Player Knockout
154 (300, 30, 180): 'Normal', #180 Player Rebuy
155 })
156 self.SnG_Structures.append({
157 (100, 8, 9, 9): 'Hyper', #7-10 handed, under 45 entrants
158 (500, 23, 9, 9): 'Hyper', #7-10 handed, under 45 entrants
159 (500, 21, 6, 6): 'Hyper', #6-handed, Under 45 Entrants
160 (500, 11, 2, 2): 'Hyper', #Heads Up
161 })
162 self.SnG_Structures.append({(132, 18, 9): 'Turbo', #7-10 handed, under 45 entrants
163 (316, 34, 9): 'Turbo', #7-10 handed, under 45 entrants
164 (645, 55, 9): 'Turbo', #7-10 handed, under 45 entrants
165 (1389, 111, 9): 'Turbo', #7-10 handed, under 45 entrants
166 (2778, 222, 9): 'Turbo', #7-10 handed, under 45 entrants
167 (5556, 444, 9): 'Turbo', #7-10 handed, under 45 entrants
168 (9280, 720, 9): 'Turbo', #7-10 handed, under 45 entrants
169 (18780, 1220, 9): 'Turbo', #7-10 handed, under 45 entrants
170 (28300, 1700, 9): 'Turbo', #7-10 handed, under 45 entrants
171 (47400, 2600, 9): 'Turbo', #7-10 handed, under 45 entrants
172 (95700, 4300, 9): 'Turbo', #7-10 handed, under 45 entrants
173 (192300, 7700, 9): 'Turbo', #7-10 handed, under 45 entrants
174 (129, 21, 9): 'Normal', #7-10 handed, under 45 entrants
175 (311, 39, 9): 'Normal', #7-10 handed, under 45 entrants
176 (637, 63, 9): 'Normal', #7-10 handed, under 45 entrants
177 (1370, 130, 9): 'Normal', #7-10 handed, under 45 entrants
178 (2740, 260, 9): 'Normal', #7-10 handed, under 45 entrants
179 (5480, 520, 9): 'Normal', #7-10 handed, under 45 entrants
180 (9215, 785, 9): 'Normal', #7-10 handed, under 45 entrants
181 (18650, 1350, 9): 'Normal', #7-10 handed, under 45 entrants
182 (28100, 1900, 9): 'Normal', #7-10 handed, under 45 entrants
183 (47175, 2825, 9): 'Normal', #7-10 handed, under 45 entrants
184 (132, 18, 6): 'Turbo', #6-handed, Under 30 Entrants
185 (319, 31, 6): 'Turbo', #6-handed, Under 30 Entrants
186 (648, 52, 6): 'Turbo', #6-handed, Under 30 Entrants
187 (1392, 108, 6): 'Turbo', #6-handed, Under 30 Entrants
188 (2784, 216, 6): 'Turbo', #6-handed, Under 30 Entrants
189 (5568, 432, 6): 'Turbo', #6-handed, Under 30 Entrants
190 (9325, 675, 6): 'Turbo', #6-handed, Under 30 Entrants
191 (18820, 1180, 6): 'Turbo', #6-handed, Under 30 Entrants
192 (28370, 1630, 6): 'Turbo', #6-handed, Under 30 Entrants
193 (47500, 2500, 6): 'Turbo', #6-handed, Under 30 Entrants
194 (96000, 4000, 6): 'Turbo', #6-handed, Under 30 Entrants
195 (192800, 7200, 6): 'Turbo', #6-handed, Under 30 Entrants
196 (129, 21, 6): 'Normal', #6-handed, Under 30 Entrants
197 (313, 37, 6): 'Normal', #6-handed, Under 30 Entrants
198 (639, 61, 6): 'Normal', #6-handed, Under 30 Entrants
199 (1379, 121, 6): 'Normal', #6-handed, Under 30 Entrants
200 (2758, 242, 6): 'Normal', #6-handed, Under 30 Entrants
201 (5516, 484, 6): 'Normal', #6-handed, Under 30 Entrants
202 (9260, 740, 6): 'Normal', #6-handed, Under 30 Entrants
203 (18690, 1310, 6): 'Normal', #6-handed, Under 30 Entrants
204 (28170, 1830, 6): 'Normal', #6-handed, Under 30 Entrants
205 (47275, 2725, 6): 'Normal', #6-handed, Under 30 Entrants
206 (140, 10, 2): 'Turbo', #Heads Up
207 (332, 18, 2): 'Turbo', #Heads Up
208 (671, 29, 2): 'Turbo', #Heads Up
209 (1439, 61, 2): 'Turbo', #Heads Up
210 (2878, 122, 2): 'Turbo', #Heads Up
211 (5767, 233, 2): 'Turbo', #Heads Up
212 (9632, 368, 2): 'Turbo', #Heads Up
213 (19385, 615, 2): 'Turbo', #Heads Up
214 (29125, 875, 2): 'Turbo', #Heads Up
215 (48760, 1240, 2): 'Turbo', #Heads Up
216 (97920, 2080, 2): 'Turbo', #Heads Up
217 (196250, 3750, 2): 'Turbo', #Heads Up
218 (493700, 6300, 2): 'Turbo', #Heads Up
219 (138, 12, 2): 'Normal', #Heads Up
220 (329, 21, 2): 'Normal', #Heads Up
221 (667, 33, 2): 'Normal', #Heads Up
222 (1429, 71, 2): 'Normal', #Heads Up
223 (2857, 143, 2): 'Normal', #Heads Up
224 (5728, 272, 2): 'Normal', #Heads Up
225 (9569, 431, 2): 'Normal', #Heads Up
226 (19275, 725, 2): 'Normal', #Heads Up
227 (28985, 1015, 2): 'Normal', #Heads Up
228 (48540, 1460, 2): 'Normal', #Heads Up
229 (97560, 2440, 2): 'Normal', #Heads Up
230 (195600, 4400, 2): 'Normal', #Heads Up
231 (492600, 7400, 2): 'Normal', #Heads Up
232 (45, 5, 45): 'Turbo', #45 Entrants
233 (136, 14, 45): 'Turbo', #45 Entrants
234 (319, 31, 45): 'Turbo', #45 Entrants
235 (918, 82, 45): 'Turbo', #45 Entrants
236 (2765, 235, 45): 'Turbo', #45 Entrants
237 (136, 14, 48): 'Turbo', #48 Entrants
238 (136, 14, 36): 'Turbo', #36 Entrants
239 (23, 2, 45): 'Normal', #45 Entrants
240 (91, 9, 45): 'Normal', #45 Entrants
241 (546, 54, 45): 'Normal', #45 Entrants
242 (45, 5, 90): 'Turbo', #90 Entrants
243 (91, 9, 90): 'Turbo', #90 Entrants
244 (139, 11, 10): 'Turbo', #Fifty50
245 (330, 20, 10): 'Turbo', #Fifty50
246 (668, 32, 10): 'Turbo', #Fifty50
247 (1431, 69, 10): 'Turbo', #Fifty50
248 (2863, 137, 10): 'Turbo', #Fifty50
249 (5725, 275, 10): 'Turbo', #Fifty50
250 (9586, 414, 10): 'Turbo', #Fifty50
251 (19305, 695, 10): 'Turbo', #Fifty50
252 (29160, 840, 10): 'Turbo', #Fifty50
253 (48720, 1280, 10): 'Turbo', #Fifty50
254 (135, 15, 10): 'Normal', #Fifty50
255 (326, 24, 10): 'Normal', #Fifty50
256 (660, 40, 10): 'Normal', #Fifty50
257 (1415, 85, 10): 'Normal', #Fifty50
258 (2830, 170, 10): 'Normal', #Fifty50
259 (5660, 340, 10): 'Normal', #Fifty50
260 (9490, 510, 10): 'Normal', #Fifty50
261 (19135, 865, 10): 'Normal', #Fifty50
262 (23, 2, 90): 'Normal', #90 Entrants
263 (228, 22, 90): 'Normal', #90 Entrants
264 (228, 22, 180): 'Turbo', #180 Entrants
265 (734, 66, 180): 'Turbo', #180 Entrants
266 (1377, 123, 180): 'Turbo', #180 Entrants
267 (3213, 287, 180): 'Turbo', #180 Entrants
268 (410, 40, 180): 'Normal', #180 Entrants
269 (1005, 95, 180): 'Normal', #180 Entrants
270 (9, 1, 240): 'Normal', #240 Entrants
271 (9, 1, 360): 'Turbo', #360 Entrants
272 (45, 5, 360): 'Turbo', #360 Entrants
273 (135, 15, 90): 'Normal', #90 Player Knockout
274 (650, 50, 90): 'Normal', #90 Player Knockout
275 (319, 31, 180): 'Normal', #180 Player Rebuy
276 (139, 11, 9): 'Hyper', #7-10 handed, under 45 entrants
277 (331, 19, 9): 'Hyper', #7-10 handed, under 45 entrants
278 (670, 30, 9): 'Hyper', #7-10 handed, under 45 entrants
279 (1439, 61, 9): 'Hyper', #7-10 handed, under 45 entrants
280 (2877, 123, 9): 'Hyper', #7-10 handed, under 45 entrants
281 (5754, 246, 9): 'Hyper', #7-10 handed, under 45 entrants
282 (9632, 368, 9): 'Hyper', #7-10 handed, under 45 entrants
283 (19318, 682, 9): 'Hyper', #7-10 handed, under 45 entrants
284 (140, 10, 6): 'Hyper', #6-handed, Under 30 Entrants
285 (332, 18, 6): 'Hyper', #6-handed, Under 30 Entrants
286 (671, 29, 6): 'Hyper', #6-handed, Under 30 Entrants
287 (1441, 59, 6): 'Hyper', #6-handed, Under 30 Entrants
288 (2883, 117, 6): 'Hyper', #6-handed, Under 30 Entrants
289 (5766, 234, 6): 'Hyper', #6-handed, Under 30 Entrants
290 (9649, 351, 6): 'Hyper', #6-handed, Under 30 Entrants
291 (19352, 648, 6): 'Hyper', #6-handed, Under 30 Entrants
292 (29140, 860, 6): 'Hyper', #6-handed, Under 30 Entrants
293 (48752, 1248, 6): 'Hyper', #6-handed, Under 30 Entrants
294 (144, 6, 2): 'Hyper', #Heads Up
295 (340, 10, 2): 'Hyper', #Heads Up
296 (685, 15, 2): 'Hyper', #Heads Up
297 (1469, 31, 2): 'Hyper', #Heads Up
298 (2937, 63, 2): 'Hyper', #Heads Up
299 (5874, 126, 2): 'Hyper', #Heads Up
300 (9812, 188, 2): 'Hyper', #Heads Up
301 (19666, 334, 2): 'Hyper', #Heads Up
302 (29551, 449, 2): 'Hyper', #Heads Up
303 (49335, 665, 2): 'Hyper', #Heads Up
304 (98880, 1120, 2): 'Hyper', #Heads Up
305 (91, 9, 180): 'Hyper', #180 Entrants
306 (2, 0, 990): 'Hyper', #990 Entrants
307 })
309 def lookupSnG(self, key, startTime):
310 for i in range(len(self.versions)):
311 if startTime < self.versions[i]:
312 struct = self.SnG_Structures[i].get(key)
313 return struct