Commit e22a206f by Piotr Mitros

Improved comments, removed debug code

parent 84b69a87
...@@ -22,6 +22,14 @@ from django.conf import settings ...@@ -22,6 +22,14 @@ from django.conf import settings
import re import re
def auth(f): def auth(f):
''' Authentication decorator. It will allow all access, unless
django settings defines a DJA_AUTH parameter. Such a parameter can
specify a decorator which will handle authentication/authorization.
DJA_AUTH is a dictionary mapping regexps to appropriate decorators
(so it is possible to e.g. use one for views, and a different one
for queries)
'''
try: try:
dja = settings.DJA_AUTH dja = settings.DJA_AUTH
except AttributeError: except AttributeError:
......
...@@ -170,6 +170,11 @@ def cron(period, params=None): ...@@ -170,6 +170,11 @@ def cron(period, params=None):
return factory return factory
def event_property(name=None, description=None): def event_property(name=None, description=None):
''' This is used to add properties to events.
E.g. a module could add the tincan properties such that other
analytics modules could access event properties generically.
'''
def register(f): def register(f):
registry.register_event_property(f, name, description) registry.register_event_property(f, name, description)
return f return f
......
...@@ -57,7 +57,7 @@ class multi_embed(): ...@@ -57,7 +57,7 @@ class multi_embed():
def __init__(self, embeds): def __init__(self, embeds):
self._embeds = embeds self._embeds = embeds
def __getattr__(self, attr): def __getattr__(self, attr):
print ">>>>>>>>>>>>> Getting", attr # print ">>>>>>>>>>>>> Getting", attr
for x in self._embeds: for x in self._embeds:
f = None f = None
try: try:
...@@ -65,11 +65,11 @@ class multi_embed(): ...@@ -65,11 +65,11 @@ class multi_embed():
except AttributeError: except AttributeError:
pass pass
if f: if f:
print # print
print ">>>>>>>>>>>>>>>>>>>", f # print ">>>>>>>>>>>>>>>>>>>", f
print # print
return f return f
print "Not found" print "Not found", attr
raise AttributeError(attr) raise AttributeError(attr)
def _refresh_schema(self): def _refresh_schema(self):
...@@ -77,7 +77,7 @@ class multi_embed(): ...@@ -77,7 +77,7 @@ class multi_embed():
x._refresh_schema x._refresh_schema
def __dir__(self): def __dir__(self):
child_dirs = [x.__dir__() for x in self._embeds] child_dirs = [x.__dir__() for x in self._embeds]
print child_dirs # print child_dirs
return sorted(list(set(sum(child_dirs, [])))) return sorted(list(set(sum(child_dirs, []))))
def __repr__(self): def __repr__(self):
return "/".join(map(lambda x:repr(x), self._embeds)) return "/".join(map(lambda x:repr(x), self._embeds))
...@@ -252,7 +252,7 @@ def get_embed(t, config = None): ...@@ -252,7 +252,7 @@ def get_embed(t, config = None):
if config: if config:
embeds = [] embeds = []
for embed_spec in config: for embed_spec in config:
print embed_spec # print embed_spec
embeds.append(single_embed(t, **embed_spec)) embeds.append(single_embed(t, **embed_spec))
return multi_embed(embeds) return multi_embed(embeds)
return single_embed(t) return single_embed(t)
...@@ -267,7 +267,7 @@ if __name__ == "__main__": ...@@ -267,7 +267,7 @@ if __name__ == "__main__":
if True: # Internal test -- from djanalytics if True: # Internal test -- from djanalytics
print djo.query.djt_event_count() print djo.query.djt_event_count()
print djo.query.djt_user_event_count(user = "bob") print djo.query.djt_user_event_count(user = "bob")
print djo.query.__dir__() print dir(djo.query)
if False: # External test -- from edxanalytics if False: # External test -- from edxanalytics
transform_policy = {'name': 'test', transform_policy = {'name': 'test',
...@@ -282,6 +282,6 @@ if __name__ == "__main__": ...@@ -282,6 +282,6 @@ if __name__ == "__main__":
'course' : '6.002x' } 'course' : '6.002x' }
secure_view = transform_embed(transform_policy, context, djo.view) secure_view = transform_embed(transform_policy, context, djo.view)
print secure_view.__dir__() print dir(secure_view)
print secure_view.page_count(course = '6.002x') print secure_view.page_count(course = '6.002x')
print inspect.getargspec(secure_view.page_count) print inspect.getargspec(secure_view.page_count)
...@@ -91,6 +91,8 @@ def register_event_property(f, name, description): ...@@ -91,6 +91,8 @@ def register_event_property(f, name, description):
event_property_registry[name] = {'function': f, 'name': name, 'doc': description} event_property_registry[name] = {'function': f, 'name': name, 'doc': description}
def schema_helper(): def schema_helper():
''' Return all endpoints (returned in a format identical to schema view)
'''
endpoints = [] endpoints = []
for cls in request_handlers: for cls in request_handlers:
for name in request_handlers[cls]: for name in request_handlers[cls]:
......
...@@ -58,6 +58,10 @@ lookups = {} ...@@ -58,6 +58,10 @@ lookups = {}
def lookup(directory): def lookup(directory):
''' Return the mako TemplateLookup for a directory.
Will cache lookups if we created one before.
'''
if directory in lookups: if directory in lookups:
return lookups[directory] return lookups[directory]
else: else:
......
...@@ -8,6 +8,7 @@ from djanalytics.core.decorators import query, event_handler, view, event_proper ...@@ -8,6 +8,7 @@ from djanalytics.core.decorators import query, event_handler, view, event_proper
@view() @view()
def djt_hello_template(): def djt_hello_template():
''' Example of how to use mako templates in a view '''
from djanalytics.core.render import render from djanalytics.core.render import render
return render("hello.html", {}) return render("hello.html", {})
...@@ -123,11 +124,13 @@ def djt_readfile(fs, filename): ...@@ -123,11 +124,13 @@ def djt_readfile(fs, filename):
@query() @query()
def djt_cache_get(cache, key): def djt_cache_get(cache, key):
''' Used in test case for cache '''
result = cache.get(key) result = cache.get(key)
return result return result
@event_handler() @event_handler()
def djt_cache_set(cache, events): def djt_cache_set(cache, events):
''' Used in test case for cache '''
for evt in events: for evt in events:
if 'event' in evt and evt['event'] == 'cachetest': if 'event' in evt and evt['event'] == 'cachetest':
cache.set(evt['key'], evt['value'], evt['timeout']) cache.set(evt['key'], evt['value'], evt['timeout'])
...@@ -145,12 +148,14 @@ def djt_agent(event): ...@@ -145,12 +148,14 @@ def djt_agent(event):
@event_handler() @event_handler()
def djt_event_property_check(cache, events): def djt_event_property_check(cache, events):
''' Used in test case for event handler '''
for evt in events: for evt in events:
if "event_property_check" in evt: if "event_property_check" in evt:
cache.set("last_seen_user", evt.djt_agent, 30) cache.set("last_seen_user", evt.djt_agent, 30)
@query() @query()
def djt_fake_user_count(): def djt_fake_user_count():
''' Used as test case for query objects '''
return 2 return 2
@view() @view()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment