Changeset 772
- Timestamp:
- 08/31/05 09:23:29 (3 years ago)
- Files:
-
- nbdoc/trunk/notabene/notebook.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
nbdoc/trunk/notabene/notebook.py
r769 r772 63 63 #to check from logid & number if already exists 64 64 65 def __init__(self, parent, number ):65 def __init__(self, parent, number, element=None): 66 66 #note: parent is a Log object, which has the 'root' as .element 67 self.element = ET.SubElement(parent.element, 'cell') 68 self.number = number #sets the xml too via the property 67 if element is None: 68 self.element = ET.SubElement(parent.element, 'cell') 69 self.number = number #sets the xml too via the property 70 else: 71 self.element = element 72 assert self.number == number 69 73 70 74 input = property(SubelemGetter('input'), SubelemSetter('input')) … … 99 103 #one on the nbshell side there's IPythonLog 100 104 #and we've talked about moving (parts of it) here 101 def __init__(self, parent, logid ):105 def __init__(self, parent, logid, element=None): 102 106 #note: parent is a Notebook object, which has the 'root' as .root 103 107 self.id = logid 104 self.element = ET.SubElement(parent.root, 'ipython-log', id=logid)105 108 self._cells = [] #it is not safe to manipulate this from outside 106 #'cause of removals, thismay end up sparse - might make sense to use109 #'cause of removals, may end up sparse - might make sense to use 107 110 #something like http://inamidst.com/code/listdict.py 108 109 def add(self, number): 111 if element is None: 112 self.element = ET.SubElement(parent.root, 'ipython-log', id=logid) 113 114 else: 115 self.element = element 116 for cellelem in self.element: 117 self.add(int(cellelem.get('number')), cellelem) 118 119 120 def add(self, number, element=None): 110 121 if number == len(self._cells): #is to be put at the end 111 cell = Cell(self, number )122 cell = Cell(self, number, element) 112 123 self._cells.append(cell) #always adds to end 113 124 #self.element.append(cell.element) #already became a subelement … … 199 210 self.head = ET.SubElement(self.root, 'head') 200 211 self.add_log() 201 else: 212 else: #reconstruct object structure from given xml 202 213 self.root = root 203 214 self.head = root.find('head') 215 logelem = root.find('ipython-log') 216 #dbg 217 print logelem, logelem.get('id', 'noid?-o') 218 logid = logelem.get('id') 219 self.logs[logid] = Log(self, logid, logelem) 220 for cellelem in logelem: 221 #dbg 222 print cellelem, ET.tostring(cellelem) 204 223 205 224 def __eq__(self, other): … … 218 237 return not self.__eq__(other) 219 238 239 #XXX 220 240 #how do the from* methods actually behave w.r.t to Cells and self.logs? 221 241 #perhaps some initial processing is needed now, when
