X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=engine%2Fprelude.py;h=20beb7db4f49b189ed2e37d6a3a62f6035f5b4d6;hb=c01a656b95a478b4450c3ae2c1eb2fe6d73a0c04;hp=b98355846c85ad6d6d7cdcc090843aef9859eff3;hpb=0bfd116596c1dc91f739b53cf3f469c94e8994a7;p=unfold.git diff --git a/engine/prelude.py b/engine/prelude.py index b9835584..20beb7db 100644 --- a/engine/prelude.py +++ b/engine/prelude.py @@ -2,12 +2,14 @@ from types import StringTypes, ListType from django.template.loader import render_to_string +debug=True + class Prelude: """A class for collecting dependencies on js/css files or fragments""" keys=[ 'js_files','css_files','js_chunks', 'css_chunks' ] - def __init__ (self, js_files=[], css_files=[], js_chunks=[], css_chunks=[]): + def __init__ (self, js_files=None, css_files=None, js_chunks=None, css_chunks=None): # it's tempting to use sets but sets are not ordered.. self.js_files = Prelude._normalize(js_files) self.css_files = Prelude._normalize(css_files) @@ -16,7 +18,8 @@ class Prelude: @staticmethod def _normalize (input): - if isinstance (input, ListType): return input + if not input: return [] + elif isinstance (input, ListType): return input elif isinstance (input, StringTypes): return [ input ] else: return list (input) @@ -31,6 +34,13 @@ class Prelude: def add_css_chunks (self, x): self.css_chunks += Prelude._normalize (x) + def inspect_string (self,msg): + result = 'Prelude.inspect %s (%s) with '%(msg,self) + result += ",".join( [ "%s->%s"%(k,len(getattr(self,k))) for k in ['js_files','js_chunks','css_files','css_chunks'] ] ) + return result + def inspect (self,msg): + print self.inspect_string(msg) + # first attempt was to use a simple dict like this # env={} # env['js_files']= self.js_files @@ -45,12 +55,15 @@ class Prelude: # probably insert_above is not powerful enough to handle that # # so a much simpler and safer approach is for use to compute the html header directly - def render_env (self): + def template_env (self): env={} env['js_files']= self.js_files env['css_files']= self.css_files env['js_chunks']= self.js_chunks env['css_chunks']=self.css_chunks + if debug: + print "prelude has %d js_files, %d css files, %d js chunks and %d css_chunks"%\ + (len(self.js_files),len(self.css_files),len(self.js_chunks),len(self.css_chunks),) # not sure how this should be done more cleanly from myslice.settings import STATIC_URL env ['STATIC_URL'] = STATIC_URL