Exemplo n.º 1
0
class widget(object):
    def setValue(self, name, value):
        if value is None:
            value = ''
        elif not isinstance(value, str):
            value = str(value)
        try:
            self._hdf.setValue(name, value)
        except AttributeError:
            self._hdf = HDF()
            self._hdf.setValue(name, value)
    def render_cs(self, fileType, fileName = None):
        if fileName is None:
            fileName = type(self).__name__
        path = '{0}/templates/{1}.{2}'.format(
                web.ctx.path, fileName, fileType)
        if not isfile(path):
            return None
        cs = CS(self._hdf)
        cs.parseFile(path)
        return cs.render()
    def render(self, fileName = None):
        self.setValue('Script.Name', web.ctx.script_name)
        js = self.render_cs('js', fileName)
        css = self.render_cs('css', fileName)
        html = self.render_cs('html', fileName)
        return (js, css, html)
Exemplo n.º 2
0
def hdfFromKwargs(hdf=None, **kwargs):
    """If given an instance that has toHDF() method that method is invoked to get that object's HDF representation"""
    if not hdf:
        hdf = HDF()
    for key, value in kwargs.iteritems():
        if isinstance(value, dict):
            #print "dict:",value
            for k,v in value.iteritems():
                dkey = "%s.%s"%(key,k)
                #print "k,v,dkey:",k,v,dkey
                args = {dkey:v}
                hdfFromKwargs(hdf=hdf, **args)
        elif isinstance(value, (list, tuple)):
            #print "list:",value
            for i, item in enumerate(value):
                ikey = "%s.%s"%(key,i)
                #print "i,item:",i,item, ikey
                if isinstance(item, (list, tuple)):
                    args = {ikey:item}
                    hdfFromKwargs(hdf=hdf, **args)
                elif isinstance(item, dict):
                    args = {ikey:item}
                    hdfFromKwargs(hdf=hdf, **args)
                elif getattr(item, "HDF_ATTRIBUTES", False):
                    attrs = {}
                    for attr in item.HDF_ATTRIBUTES:
                        attrs[attr] = getattr(item, attr, "")
                    hdfFromKwargs(hdf=hdf, **{ikey:attrs})
                else:
                    hdf.setValue(ikey, str(item))
        elif getattr(value, "HDF_ATTRIBUTES", False):
            attrs = {}
            for attr in value.HDF_ATTRIBUTES:
                attrs[attr] = getattr(value, attr, "")
            hdfFromKwargs(hdf=hdf, **{key:attrs})
        else:
            hdf.setValue(key, str(value))
    #print "HDF:",hdf.dump()
    return hdf