Skip to content

Commit

Permalink
Merge pull request #317 from liampauling/release/2.6.0
Browse files Browse the repository at this point in the history
_response removed from base resource, potential for memory leaks with…
  • Loading branch information
liampauling committed Jul 9, 2020
2 parents 869f0fb + 4e2e407 commit 737e17f
Show file tree
Hide file tree
Showing 16 changed files with 55 additions and 91 deletions.
11 changes: 11 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,17 @@
Release History
---------------

2.6.0 (2020-07-09)
+++++++++++++++++++

**Improvements**

- Response (_response) removed from BaseResources due to potential memory leaks

**Bug Fixes**

- marketType bug fix (politics markets)

2.5.0 (2020-06-22)
+++++++++++++++++++

Expand Down
2 changes: 1 addition & 1 deletion betfairlightweight/__version__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
__title__ = "betfairlightweight"
__description__ = "Lightweight python wrapper for Betfair API-NG"
__url__ = "https://github.com/liampauling/betfair"
__version__ = "2.5.0"
__version__ = "2.6.0"
__author__ = "Liam Pauling"
__license__ = "MIT"
12 changes: 4 additions & 8 deletions betfairlightweight/endpoints/account.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def get_account_funds(
method = "%s%s" % (self.URI, "getAccountFunds")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.AccountFunds, elapsed_time, lightweight
response_json, resources.AccountFunds, elapsed_time, lightweight
)

def get_account_details(
Expand All @@ -53,7 +53,7 @@ def get_account_details(
method = "%s%s" % (self.URI, "getAccountDetails")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.AccountDetails, elapsed_time, lightweight
response_json, resources.AccountDetails, elapsed_time, lightweight
)

def get_account_statement(
Expand Down Expand Up @@ -85,11 +85,7 @@ def get_account_statement(
method = "%s%s" % (self.URI, "getAccountStatement")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response,
response_json,
resources.AccountStatementResult,
elapsed_time,
lightweight,
response_json, resources.AccountStatementResult, elapsed_time, lightweight,
)

def list_currency_rates(
Expand All @@ -111,7 +107,7 @@ def list_currency_rates(
method = "%s%s" % (self.URI, "listCurrencyRates")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.CurrencyRate, elapsed_time, lightweight
response_json, resources.CurrencyRate, elapsed_time, lightweight
)

def transfer_funds(self, session: requests.Session = None) -> None:
Expand Down
8 changes: 2 additions & 6 deletions betfairlightweight/endpoints/baseendpoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ def _error_handler(

def process_response(
self,
response: requests.Response,
response_json: Union[dict, list],
resource: Type[BaseResource],
elapsed_time: float,
Expand All @@ -106,15 +105,12 @@ def process_response(
return result
elif isinstance(result, list):
try:
return [
resource(elapsed_time=elapsed_time, _response=response, **x)
for x in result
]
return [resource(elapsed_time=elapsed_time, **x) for x in result]
except TypeError:
raise InvalidResponse(response=result)
else:
try:
return resource(elapsed_time=elapsed_time, _response=response, **result)
return resource(elapsed_time=elapsed_time, **result)
except TypeError:
raise InvalidResponse(response=result)

Expand Down
57 changes: 16 additions & 41 deletions betfairlightweight/endpoints/betting.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,7 @@ def list_event_types(
method = "%s%s" % (self.URI, "listEventTypes")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response,
response_json,
resources.EventTypeResult,
elapsed_time,
lightweight,
response_json, resources.EventTypeResult, elapsed_time, lightweight,
)

def list_competitions(
Expand All @@ -65,11 +61,7 @@ def list_competitions(
method = "%s%s" % (self.URI, "listCompetitions")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response,
response_json,
resources.CompetitionResult,
elapsed_time,
lightweight,
response_json, resources.CompetitionResult, elapsed_time, lightweight,
)

def list_time_ranges(
Expand All @@ -96,11 +88,7 @@ def list_time_ranges(
method = "%s%s" % (self.URI, "listTimeRanges")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response,
response_json,
resources.TimeRangeResult,
elapsed_time,
lightweight,
response_json, resources.TimeRangeResult, elapsed_time, lightweight,
)

def list_events(
Expand All @@ -125,7 +113,7 @@ def list_events(
method = "%s%s" % (self.URI, "listEvents")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.EventResult, elapsed_time, lightweight
response_json, resources.EventResult, elapsed_time, lightweight
)

def list_market_types(
Expand All @@ -150,11 +138,7 @@ def list_market_types(
method = "%s%s" % (self.URI, "listMarketTypes")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response,
response_json,
resources.MarketTypeResult,
elapsed_time,
lightweight,
response_json, resources.MarketTypeResult, elapsed_time, lightweight,
)

def list_countries(
Expand All @@ -179,7 +163,7 @@ def list_countries(
method = "%s%s" % (self.URI, "listCountries")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.CountryResult, elapsed_time, lightweight
response_json, resources.CountryResult, elapsed_time, lightweight
)

def list_venues(
Expand All @@ -204,7 +188,7 @@ def list_venues(
method = "%s%s" % (self.URI, "listVenues")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.VenueResult, elapsed_time, lightweight
response_json, resources.VenueResult, elapsed_time, lightweight
)

def list_market_catalogue(
Expand Down Expand Up @@ -236,11 +220,7 @@ def list_market_catalogue(
method = "%s%s" % (self.URI, "listMarketCatalogue")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response,
response_json,
resources.MarketCatalogue,
elapsed_time,
lightweight,
response_json, resources.MarketCatalogue, elapsed_time, lightweight,
)

def list_market_book(
Expand Down Expand Up @@ -287,7 +267,7 @@ def list_market_book(
method = "%s%s" % (self.URI, "listMarketBook")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.MarketBook, elapsed_time, lightweight
response_json, resources.MarketBook, elapsed_time, lightweight
)

def list_runner_book(
Expand Down Expand Up @@ -338,7 +318,6 @@ def list_runner_book(
method = "%s%s" % (self.URI, "listRunnerBook")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response,
response_json,
resources.MarketBook,
elapsed_time,
Expand Down Expand Up @@ -385,7 +364,7 @@ def list_current_orders(
method = "%s%s" % (self.URI, "listCurrentOrders")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.CurrentOrders, elapsed_time, lightweight
response_json, resources.CurrentOrders, elapsed_time, lightweight
)

def list_cleared_orders(
Expand Down Expand Up @@ -437,7 +416,7 @@ def list_cleared_orders(
method = "%s%s" % (self.URI, "listClearedOrders")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.ClearedOrders, elapsed_time, lightweight
response_json, resources.ClearedOrders, elapsed_time, lightweight
)

def list_market_profit_and_loss(
Expand Down Expand Up @@ -466,11 +445,7 @@ def list_market_profit_and_loss(
method = "%s%s" % (self.URI, "listMarketProfitAndLoss")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response,
response_json,
resources.MarketProfitLoss,
elapsed_time,
lightweight,
response_json, resources.MarketProfitLoss, elapsed_time, lightweight,
)

def place_orders(
Expand Down Expand Up @@ -506,7 +481,7 @@ def place_orders(
method = "%s%s" % (self.URI, "placeOrders")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.PlaceOrders, elapsed_time, lightweight
response_json, resources.PlaceOrders, elapsed_time, lightweight
)

def cancel_orders(
Expand Down Expand Up @@ -534,7 +509,7 @@ def cancel_orders(
method = "%s%s" % (self.URI, "cancelOrders")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.CancelOrders, elapsed_time, lightweight
response_json, resources.CancelOrders, elapsed_time, lightweight
)

def update_orders(
Expand All @@ -561,7 +536,7 @@ def update_orders(
method = "%s%s" % (self.URI, "updateOrders")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.UpdateOrders, elapsed_time, lightweight
response_json, resources.UpdateOrders, elapsed_time, lightweight
)

def replace_orders(
Expand Down Expand Up @@ -596,5 +571,5 @@ def replace_orders(
method = "%s%s" % (self.URI, "replaceOrders")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.ReplaceOrders, elapsed_time, lightweight
response_json, resources.ReplaceOrders, elapsed_time, lightweight
)
6 changes: 3 additions & 3 deletions betfairlightweight/endpoints/inplayservice.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def get_event_timeline(
params=params, session=session, url=url
)
return self.process_response(
response, response_json, resources.EventTimeline, elapsed_time, lightweight
response_json, resources.EventTimeline, elapsed_time, lightweight
)

def get_event_timelines(
Expand Down Expand Up @@ -67,7 +67,7 @@ def get_event_timelines(
params=params, session=session, url=url
)
return self.process_response(
response, response_json, resources.EventTimeline, elapsed_time, lightweight
response_json, resources.EventTimeline, elapsed_time, lightweight
)

def get_scores(
Expand Down Expand Up @@ -97,7 +97,7 @@ def get_scores(
params=params, session=session, url=url
)
return self.process_response(
response, response_json, resources.Scores, elapsed_time, lightweight
response_json, resources.Scores, elapsed_time, lightweight
)

def request(
Expand Down
2 changes: 1 addition & 1 deletion betfairlightweight/endpoints/keepalive.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def __call__(
(response, response_json, elapsed_time) = self.request(session=session)
self.client.set_session_token(response_json.get("token"))
return self.process_response(
response, response_json, KeepAliveResource, elapsed_time, lightweight
response_json, KeepAliveResource, elapsed_time, lightweight
)

def request(
Expand Down
2 changes: 1 addition & 1 deletion betfairlightweight/endpoints/login.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def __call__(
)
self.client.set_session_token(response_json.get("sessionToken"))
return self.process_response(
response, response_json, LoginResource, elapsed_time, lightweight
response_json, LoginResource, elapsed_time, lightweight
)

def request(
Expand Down
2 changes: 1 addition & 1 deletion betfairlightweight/endpoints/logininteractive.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def __call__(
)
self.client.set_session_token(response_json.get("token"))
return self.process_response(
response, response_json, LoginResource, elapsed_time, lightweight
response_json, LoginResource, elapsed_time, lightweight
)

def request(
Expand Down
2 changes: 1 addition & 1 deletion betfairlightweight/endpoints/logout.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def __call__(
(response, response_json, elapsed_time) = self.request(session=session)
self.client.client_logout()
return self.process_response(
response, response_json, LogoutResource, elapsed_time, lightweight
response_json, LogoutResource, elapsed_time, lightweight
)

def request(
Expand Down
6 changes: 2 additions & 4 deletions betfairlightweight/endpoints/racecard.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def get_race_card(
"raceCard", params=params, session=session
)
return self.process_response(
response, response_json, resources.RaceCard, elapsed_time, lightweight
response_json, resources.RaceCard, elapsed_time, lightweight
)

def get_race_result(
Expand Down Expand Up @@ -94,9 +94,7 @@ def get_race_result(
(response, response_json, elapsed_time) = self.request(
"raceResults", params=params, session=session
)
return self.process_response(
response, response_json, None, elapsed_time, lightweight
)
return self.process_response(response_json, None, elapsed_time, lightweight)

def request(
self, method: str = None, params: dict = None, session: requests.Session = None
Expand Down
8 changes: 4 additions & 4 deletions betfairlightweight/endpoints/scores.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def list_race_details(
method = "%s%s" % (self.URI, "listRaceDetails")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.RaceDetails, elapsed_time, lightweight
response_json, resources.RaceDetails, elapsed_time, lightweight
)

# Following requires app key to be authorised
Expand Down Expand Up @@ -65,7 +65,7 @@ def list_available_events(
method = "%s%s" % (self.URI, "listAvailableEvents")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.AvailableEvent, elapsed_time, lightweight
response_json, resources.AvailableEvent, elapsed_time, lightweight
)

def list_scores(
Expand All @@ -88,7 +88,7 @@ def list_scores(
method = "%s%s" % (self.URI, "listScores")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.Score, elapsed_time, lightweight
response_json, resources.Score, elapsed_time, lightweight
)

def list_incidents(
Expand All @@ -111,7 +111,7 @@ def list_incidents(
method = "%s%s" % (self.URI, "listIncidents")
(response, response_json, elapsed_time) = self.request(method, params, session)
return self.process_response(
response, response_json, resources.Incidents, elapsed_time, lightweight
response_json, resources.Incidents, elapsed_time, lightweight
)

@property
Expand Down
1 change: 0 additions & 1 deletion betfairlightweight/resources/baseresource.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ class BaseResource:

def __init__(self, **kwargs):
self.elapsed_time = kwargs.pop("elapsed_time", None)
self._response = kwargs.pop("_response", None) # requests.Response
now = datetime.datetime.utcnow()
self._datetime_created = now
self._datetime_updated = now
Expand Down

0 comments on commit 737e17f

Please sign in to comment.