Home | Trees | Index | Help |
---|
|
1 ############################################################################## 2 # 3 # Zope Public License (ZPL) Version 1.0 4 # ------------------------------------- 5 # 6 # Copyright (c) Digital Creations. All rights reserved. 7 # 8 # This license has been certified as Open Source(tm). 9 # 10 # Redistribution and use in source and binary forms, with or without 11 # modification, are permitted provided that the following conditions are 12 # met: 13 # 14 # 1. Redistributions in source code must retain the above copyright 15 # notice, this list of conditions, and the following disclaimer. 16 # 17 # 2. Redistributions in binary form must reproduce the above copyright 18 # notice, this list of conditions, and the following disclaimer in 19 # the documentation and/or other materials provided with the 20 # distribution. 21 # 22 # 3. Digital Creations requests that attribution be given to Zope 23 # in any manner possible. Zope includes a "Powered by Zope" 24 # button that is installed by default. While it is not a license 25 # violation to remove this button, it is requested that the 26 # attribution remain. A significant investment has been put 27 # into Zope, and this effort will continue if the Zope community 28 # continues to grow. This is one way to assure that growth. 29 # 30 # 4. All advertising materials and documentation mentioning 31 # features derived from or use of this software must display 32 # the following acknowledgement: 33 # 34 # "This product includes software developed by Digital Creations 35 # for use in the Z Object Publishing Environment 36 # (http://www.zope.org/)." 37 # 38 # In the event that the product being advertised includes an 39 # intact Zope distribution (with copyright and license included) 40 # then this clause is waived. 41 # 42 # 5. Names associated with Zope or Digital Creations must not be used to 43 # endorse or promote products derived from this software without 44 # prior written permission from Digital Creations. 45 # 46 # 6. Modified redistributions of any form whatsoever must retain 47 # the following acknowledgment: 48 # 49 # "This product includes software developed by Digital Creations 50 # for use in the Z Object Publishing Environment 51 # (http://www.zope.org/)." 52 # 53 # Intact (re-)distributions of any official Zope release do not 54 # require an external acknowledgement. 55 # 56 # 7. Modifications are encouraged but must be packaged separately as 57 # patches to official Zope releases. Distributions that do not 58 # clearly separate the patches from the original work must be clearly 59 # labeled as unofficial distributions. Modifications which do not 60 # carry the name Zope may be packaged in any form, as long as they 61 # conform to all of the clauses above. 62 # 63 # 64 # Disclaimer 65 # 66 # THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY 67 # EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 68 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 69 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS 70 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 71 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 72 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 73 # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 74 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 75 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 76 # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 77 # SUCH DAMAGE. 78 # 79 # 80 # This software consists of contributions made by Digital Creations and 81 # many individuals on behalf of Digital Creations. Specific 82 # attributions are listed in the accompanying credits file. 83 # 84 ############################################################################## 85 '''Nested namespace access 86 87 The 'with' tag is used to introduce nested namespaces. 88 89 The text enclosed in the with tag is rendered using information 90 from the given variable or expression. 91 92 For example, if the variable 'person' is bound to an object that 93 has attributes 'name' and 'age', then a 'with' tag like the 94 following can be used to access these attributes:: 95 96 <!--#with person--> 97 <!--#var name-->, 98 <!--#var age--> 99 <!--#/with--> 100 101 Eather a 'name' or an 'expr' attribute may be used to specify data. 102 A 'mapping' attribute may be used to indicate that the given data 103 should be treated as mapping object, rather than as an object with 104 named attributes. 105 106 ''' 107 108 __rcs_id__='$Id: DT_With.py 694 2003-04-16 02:53:50Z sc $' 109 __version__='$Revision: 694 $'[11:-2] 110 111 from DT_Util import parse_params, name_param, InstanceDict, render_blocks, str 112 from DT_Util import TemplateDict114 blockContinuations=() 115 name='with' 116 mapping=None 117 only=0 118150120 tname, args, section = blocks[0] 121 args=parse_params(args, name='', expr='', mapping=1, only=1) 122 name,expr=name_param(args,'with',1) 123 if expr is None: expr=name 124 else: expr=expr.eval 125 self.__name__, self.expr = name, expr 126 self.section=section.blocks 127 if args.has_key('mapping') and args['mapping']: self.mapping=1 128 if args.has_key('only') and args['only']: self.only=1129131 expr=self.expr 132 if type(expr) is type(''): v=md[expr] 133 else: v=expr(md) 134 135 if not self.mapping: 136 if type(v) is type(()) and len(v)==1: v=v[0] 137 v=InstanceDict(v,md) 138 139 if self.only: 140 _md=md 141 md=TemplateDict() 142 if hasattr(_md, 'validate'): 143 md.validate=_md.validate 144 145 md._push(v) 146 try: return render_blocks(self.section, md) 147 finally: md._pop(1)148 149 __call__=render
Home | Trees | Index | Help |
---|
Generated by Epydoc 3.0alpha2 on Fri Sep 28 01:00:49 2007 | http://epydoc.sf.net |