Mercurial > piecrust2
comparison piecrust/records.py @ 133:9e4c2e68a129
Optimize server for files that already exist.
* Only try to find new assets if no previously existing asset or page
could be used.
* Tidy up a bit the API for passing and returning bake/process records.
* Put the process record in its place.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 18 Nov 2014 21:32:04 -0800 |
parents | 133845647083 |
children | c132a2cba521 |
comparison
equal
deleted
inserted
replaced
132:3834e2ef0cf2 | 133:9e4c2e68a129 |
---|---|
77 | 77 |
78 if not previous_record_valid: | 78 if not previous_record_valid: |
79 self.previous = self._record_class() | 79 self.previous = self._record_class() |
80 return | 80 return |
81 | 81 |
82 for e in self.previous.entries: | 82 self._rebuildTransitions() |
83 key = self.getTransitionKey(e) | 83 |
84 self.transitions[key] = (e, None) | 84 def setPrevious(self, previous_record): |
85 self.previous = previous_record | |
86 self._rebuildTransitions() | |
85 | 87 |
86 def clearPrevious(self): | 88 def clearPrevious(self): |
87 self.previous = self._record_class() | 89 self.setPrevious(self._record_class()) |
88 | 90 |
89 def saveCurrent(self, current_path): | 91 def saveCurrent(self, current_path): |
90 self.current.save(current_path) | 92 self.current.save(current_path) |
93 | |
94 def detach(self): | |
95 res = self.current | |
96 self.current.entry_added -= self._onCurrentEntryAdded | |
97 self.current = None | |
98 self.previous = None | |
99 self.transitions = {} | |
100 return res | |
91 | 101 |
92 def addEntry(self, entry): | 102 def addEntry(self, entry): |
93 self.current.addEntry(entry) | 103 self.current.addEntry(entry) |
94 | 104 |
95 def getTransitionKey(self, entry): | 105 def getTransitionKey(self, entry): |
96 raise NotImplementedError() | 106 raise NotImplementedError() |
107 | |
108 def _rebuildTransitions(self): | |
109 self.transitions = {} | |
110 for e in self.previous.entries: | |
111 key = self.getTransitionKey(e) | |
112 self.transitions[key] = (e, None) | |
97 | 113 |
98 def _onCurrentEntryAdded(self, entry): | 114 def _onCurrentEntryAdded(self, entry): |
99 key = self.getTransitionKey(entry) | 115 key = self.getTransitionKey(entry) |
100 te = self.transitions.get(key) | 116 te = self.transitions.get(key) |
101 if te is None: | 117 if te is None: |