From e410df743a63d2a22de94679cef98286c0c4565b Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Mon, 25 Feb 2013 18:18:48 -0800 Subject: [PATCH] Simpler implementation of depends_on. --- lib/spack/spack/Package.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/spack/spack/Package.py b/lib/spack/spack/Package.py index 5ed842c2ee..f8256b9add 100644 --- a/lib/spack/spack/Package.py +++ b/lib/spack/spack/Package.py @@ -1,3 +1,4 @@ +import sys import inspect import os import re @@ -39,13 +40,11 @@ def depends_on(*args, **kwargs): """Adds a depends_on local variable in the locals of the calling class, based on args. """ - stack = inspect.stack() - try: - locals = stack[1][0].f_locals - finally: - del stack + # This gets the calling frame so we can pop variables into it + locals = sys._getframe(1).f_locals - dependencies = locals.setdefault("dependencies", []) + # Put deps into the dependencies variable + dependencies = locals.setdefault("dependencies", []) for name in args: dependencies.append(Dependency(name))