Skip to content
This repository was archived by the owner on May 19, 2019. It is now read-only.

Commit 91732fd

Browse files
Raashikorovkinand
Raashi
authored and
korovkinand
committed
Fixed removal from PartSurebets in exclude_posit and _decrease_marks (#81)
* Fixed removal from PartSurebets in exclude_posit and _decrease_marks * reverse_enum func added as a common solution for such bugs * Refactorings after git
1 parent b695fd7 commit 91732fd

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

surebet/__init__.py

+5
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,8 @@ def find_in_iter(iterable, el):
1919
return iterable[iterable.index(el)]
2020
except ValueError:
2121
return None
22+
23+
24+
def reverse_enum(iterable):
25+
for idx in range(len(iterable) - 1, -1, -1):
26+
yield idx, iterable[idx]

surebet/bookmakers.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from time import sleep
22
from requests import Session
33

4+
from surebet import reverse_enum
45
from surebet.handling.surebets import *
56
from surebet.loading import try_load
67
from surebet.parsing import try_parse
@@ -79,11 +80,11 @@ def _decrease_marks(self):
7980
for sport in book.attrs_dict().values():
8081
for event in sport:
8182
for part in event.parts:
82-
for surebet in part.surebets:
83+
for idx, surebet in reverse_enum(part.surebets):
8384
surebet.dec_mark()
8485

8586
if surebet.is_mark_empty():
86-
part.surebets.remove(surebet)
87+
del part.surebets[idx]
8788

8889
def _merge_surebets(self, new_surebets) -> int: # returns amount of newly added surebets
8990
new_added = 0

surebet/handling/excluding.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
from surebet import find_in_iter
1+
from surebet import find_in_iter, reverse_enum
22
from surebet.handling.surebets import Surebets, Surebet
33

44

55
def _del_equal(found_obj, posit_obj) -> None:
66
for attr, found_iter in found_obj.__dict__.items():
77
if isinstance(found_iter, list):
88
posit_iter = getattr(posit_obj, attr)
9-
for found_el in list(found_iter):
9+
for idx, found_el in reverse_enum(found_iter):
1010
posit_el = find_in_iter(posit_iter, found_el)
1111
if posit_el:
1212
if isinstance(found_el, Surebet):
13-
found_iter.remove(found_el)
13+
del found_iter[idx]
1414
# object can contain lists that should not be handled by algorithm
1515
# e.g. teams is list of strings, srt is primitive type without __dict__ method
1616
elif hasattr(found_el, '__dict__'):

0 commit comments

Comments
 (0)