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