Skip to content

Commit

Permalink
Merge pull request #99 from NeZanyat/dash
Browse files Browse the repository at this point in the history
Simpler instance less capability checking
  • Loading branch information
rgerkin committed Apr 24, 2019
2 parents 2b046a4 + 967ae94 commit 74fa34c
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions sciunit/models/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ def __init__(self, name=None, **params):
self.params = params
if params is None:
params = {}
self.extra_capability_checks = {}
super(Model, self).__init__()
self.check_params()

Expand All @@ -39,16 +38,20 @@ def __init__(self, name=None, **params):
extra_capability_checks = None
"""Optional extra checks of capabilities on a per-instance basis."""

@property
def capabilities(self):
@classmethod
def get_capabilities(cls):
"""List the model's capabilities."""
capabilities = []
for cls in self.__class__.mro():
if issubclass(cls, Capability) and cls is not Capability \
and not issubclass(cls, Model):
capabilities.append(cls)
for _cls in cls.mro():
if issubclass(_cls, Capability) and _cls is not Capability \
and not issubclass(_cls, Model):
capabilities.append(_cls)
return capabilities

@property
def capabilities(self):
return self.__class__.get_capabilities()

@property
def failed_extra_capabilities(self):
"""Check to see if instance passes its `extra_capability_checks`."""
Expand Down

0 comments on commit 74fa34c

Please sign in to comment.