From 91eeecf46bbc1b1b1ee7f87c50a15dfdc4d313ae Mon Sep 17 00:00:00 2001 From: Fabian Sinz Date: Tue, 24 Nov 2015 14:25:23 -0600 Subject: [PATCH] fix missing dependencies bug --- datajoint/dependencies.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/datajoint/dependencies.py b/datajoint/dependencies.py index 3ca943a35..abc42c84d 100644 --- a/datajoint/dependencies.py +++ b/datajoint/dependencies.py @@ -1,6 +1,19 @@ from collections import defaultdict import pyparsing as pp from . import DataJointError +from functools import wraps + +def load_dependencies(func): + """ + Decorator that ensures that dependencies are loaded + """ + + @wraps(func) + def f(*args, **kwargs): + args[0].load() + return func(*args, **kwargs) + return f + class Dependencies: @@ -17,20 +30,25 @@ def __init__(self, conn): self._children = defaultdict(list) self._references = defaultdict(list) + @property + @load_dependencies def parents(self): return self._parents @property + @load_dependencies def children(self): return self._children @property + @load_dependencies def references(self): return self._references @property + @load_dependencies def referenced(self): return self._referenced