Mercurial > piecrust2
comparison piecrust/pipelines/records.py @ 855:448710d84121
refactor: Get the taxonomy support back to a functional state.
There's now a taxonomy content source that wraps another normal content source
like a blog posts' source. It works in tandem with a taxonomy content pipeline
that will do the heavy lifting of figuring out what kind of terms exist and
need to be baked.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 06 Jun 2017 00:26:21 -0700 |
parents | 08e02c2a2a1a |
children | 45ad976712ec |
comparison
equal
deleted
inserted
replaced
854:08e02c2a2a1a | 855:448710d84121 |
---|---|
38 self.name = name | 38 self.name = name |
39 self.deleted_out_paths = [] | 39 self.deleted_out_paths = [] |
40 self.success = True | 40 self.success = True |
41 self._entries = {} | 41 self._entries = {} |
42 | 42 |
43 @property | |
44 def entry_count(self): | |
45 return len(self._entries) | |
46 | |
43 def addEntry(self, entry): | 47 def addEntry(self, entry): |
44 if entry.item_spec in self._entries: | 48 if entry.item_spec in self._entries: |
45 raise ValueError("Entry '%s' is already in the record." % | 49 raise ValueError("Entry '%s' is already in the record." % |
46 entry.item_spec) | 50 entry.item_spec) |
47 self._entries[entry.item_spec] = entry | 51 self._entries[entry.item_spec] = entry |
48 | 52 |
49 def getEntries(self): | 53 def getEntries(self): |
50 return self._entries.values() | 54 return self._entries.values() |
51 | 55 |
52 def getEntry(self, item_spec): | 56 def getEntry(self, item_spec): |
53 return self._entries[item_spec] | 57 return self._entries.get(item_spec) |
54 | 58 |
55 | 59 |
56 class MultiRecord: | 60 class MultiRecord: |
57 """ A container that includes multiple `Record` instances -- one for | 61 """ A container that includes multiple `Record` instances -- one for |
58 each content source that was baked. | 62 each content source that was baked. |
72 def getRecord(self, record_name, auto_create=True): | 76 def getRecord(self, record_name, auto_create=True): |
73 for r in self.records: | 77 for r in self.records: |
74 if r.name == record_name: | 78 if r.name == record_name: |
75 return r | 79 return r |
76 if not auto_create: | 80 if not auto_create: |
77 return None | 81 raise Exception("No such record: %s" % record_name) |
78 record = Record(record_name) | 82 record = Record(record_name) |
79 self.records.append(record) | 83 self.records.append(record) |
80 return record | 84 return record |
81 | 85 |
82 def save(self, path): | 86 def save(self, path): |