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):