Package Pyblio :: Package Format :: Module S3
[hide private]
[frames] | no frames]

Source Code for Module Pyblio.Format.S3

 1  # This file is part of pybliographer 
 2  #  
 3  # Copyright (C) 1998-2006 Frederic GOBRY 
 4  # Email : gobry@pybliographer.org 
 5  #           
 6  # This program is free software; you can redistribute it and/or 
 7  # modify it under the terms of the GNU General Public License 
 8  # as published by the Free Software Foundation; either version 2  
 9  # of the License, or (at your option) any later version. 
10  #    
11  # This program is distributed in the hope that it will be useful, 
12  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
13  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
14  # GNU General Public License for more details.  
15  #  
16  # You should have received a copy of the GNU General Public License 
17  # along with this program; if not, write to the Free Software 
18  # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
19  # 
20   
21  """ 
22  (Stage 3 objects, ie abstract representation of the actual layout) 
23  """ 
24   
25 -class Tag(object):
26
27 - def __init__ (self, tag, children, attributes):
28 29 self.tag = tag 30 self.children = children 31 self.attributes = attributes
32
33 - def __repr__(self):
34 rstr = '' 35 if self.attributes: 36 rstr += ', attributes=%r' % self.attributes 37 if self.children: 38 rstr += ', children=%s' % repr(self.children) 39 40 return "Tags.Tag(%r%s)" % (self.tag, rstr)
41
42 - def __call__(self, arg):
43 """ When called, with either a db or a record, return a copy 44 of self with mapped children. This makes the markup tags valid 45 for stages 2 and 3.""" 46 47 children = [child(arg) for child in self.children] 48 kwargs = {} 49 for k, v in self.attributes.items(): 50 kwargs[k] = v(arg) 51 52 return Tag(self.tag, children, kwargs)
53