[Checkins] SVN: five.grok/trunk/src/five/grok/directive.py Added
the directive file for the require directive.
Lennart Regebro
regebro at gmail.com
Sat Apr 26 06:25:32 EDT 2008
Log message for revision 85756:
Added the directive file for the require directive.
Changed:
A five.grok/trunk/src/five/grok/directive.py
-=-
Added: five.grok/trunk/src/five/grok/directive.py
===================================================================
--- five.grok/trunk/src/five/grok/directive.py (rev 0)
+++ five.grok/trunk/src/five/grok/directive.py 2008-04-26 10:25:26 UTC (rev 85756)
@@ -0,0 +1,29 @@
+from martian.directive import (OnceDirective,
+ MultipleTimesDirective, BaseTextDirective,
+ SingleValue, SingleTextDirective,
+ MultipleTextDirective,
+ MarkerDirective,
+ InterfaceDirective,
+ InterfaceOrClassDirective,
+ ModuleDirectiveContext,
+ OptionalValueDirective,
+ ClassDirectiveContext,
+ ClassOrModuleDirectiveContext)
+
+class RequireDirective(BaseTextDirective, SingleValue, MultipleTimesDirective):
+
+ def store(self, frame, value):
+ super(RequireDirective, self).store(frame, value)
+ values = frame.f_locals.get(self.local_name, [])
+
+ # grok.require can be used both as a class-level directive and
+ # as a decorator for methods. Therefore we return a decorator
+ # here, which may be used for methods, or simply ignored when
+ # used as a directive.
+ def decorator(func):
+ permission = values.pop()
+ func.__grok_require__ = permission
+ return func
+ return decorator
+
+require = RequireDirective('grok.require', ClassDirectiveContext())
\ No newline at end of file
Property changes on: five.grok/trunk/src/five/grok/directive.py
___________________________________________________________________
Name: svn:keywords
+ Id
More information about the Checkins
mailing list