From 20d45677b6935d64701fb4b219ead92c60b73aa5 Mon Sep 17 00:00:00 2001 From: Juan Pablo Amoroso Date: Fri, 31 May 2019 11:20:05 -0300 Subject: [PATCH] Now using attribute notation to build filters and brackets to get schema mappings --- backtester/datahandler/schema.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/backtester/datahandler/schema.py b/backtester/datahandler/schema.py index b1503db..3df3e23 100644 --- a/backtester/datahandler/schema.py +++ b/backtester/datahandler/schema.py @@ -17,13 +17,20 @@ class Schema: self._mappings = mappings def update(self, mappings): + """Update schema according to given `mappings`""" self._mappings.update(mappings) + return self + + def __getattr__(self, key): + """Returns Field object used to build Filters""" + return Field(key, self._mappings[key]) def __setitem__(self, key, value): self._mappings[key] = value def __getitem__(self, key): - return Field(key, self._mappings[key]) + """Returns mapping of given `key`""" + return self._mappings[key] def __iter__(self): return iter(self._mappings.items()) @@ -93,8 +100,8 @@ class Filter: return Filter("!({})".format(self.query)) def __call__(self, data): - """Returns filtered dataframe""" - return data.query(self.query) + """Returns dataframe of filtered data""" + return data.filter(self) def __repr__(self): return "Filter(query='{}')".format(self.query)