From a0eb881d50f9da040db5ba0506c96f90de9ca4e7 Mon Sep 17 00:00:00 2001 From: Juan Pablo Amoroso Date: Fri, 31 May 2019 16:08:57 -0300 Subject: [PATCH] Added membership check (*in*) to Schema --- backtester/datahandler/schema.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/backtester/datahandler/schema.py b/backtester/datahandler/schema.py index 3df3e23..d1fefbc 100644 --- a/backtester/datahandler/schema.py +++ b/backtester/datahandler/schema.py @@ -21,6 +21,10 @@ class Schema: self._mappings.update(mappings) return self + def __contains__(self, key): + """Returns True if key is in schema""" + return key in self._mappings.keys() + def __getattr__(self, key): """Returns Field object used to build Filters""" return Field(key, self._mappings[key]) @@ -43,6 +47,8 @@ class Schema: class Field: """Encapsulates data fields to build filters used by strategies""" + __slots__ = ("name", "mapping") + def __init__(self, name, mapping): self.name = name self.mapping = mapping @@ -80,6 +86,8 @@ class Field: class Filter: """This class determines entry/exit conditions for strategies""" + __slots__ = ("query") + def __init__(self, query): self.query = query