Mercurial > piecrust2
comparison piecrust/sources/interfaces.py @ 576:0c74a6c4533d
sources: Add code to support "interactive" metadata acquisition.
| author | Ludovic Chabant <ludovic@chabant.com> |
|---|---|
| date | Sat, 19 Dec 2015 18:07:21 -0800 |
| parents | f130365568ff |
| children | 4850f8c21b6e |
comparison
equal
deleted
inserted
replaced
| 575:657384f08ca3 | 576:0c74a6c4533d |
|---|---|
| 21 | 21 |
| 22 def getSettingAccessor(self): | 22 def getSettingAccessor(self): |
| 23 raise NotImplementedError() | 23 raise NotImplementedError() |
| 24 | 24 |
| 25 | 25 |
| 26 class IListableSource: | 26 class IListableSource(object): |
| 27 """ Defines the interface for a source that can be iterated on in a | 27 """ Defines the interface for a source that can be iterated on in a |
| 28 hierarchical manner, for use with the `family` data endpoint. | 28 hierarchical manner, for use with the `family` data endpoint. |
| 29 """ | 29 """ |
| 30 def listPath(self, rel_path): | 30 def listPath(self, rel_path): |
| 31 raise NotImplementedError() | 31 raise NotImplementedError() |
| 35 | 35 |
| 36 def getBasename(self, rel_path): | 36 def getBasename(self, rel_path): |
| 37 raise NotImplementedError() | 37 raise NotImplementedError() |
| 38 | 38 |
| 39 | 39 |
| 40 class IPreparingSource: | 40 class IPreparingSource(object): |
| 41 """ Defines the interface for a source whose pages can be created by the | 41 """ Defines the interface for a source whose pages can be created by the |
| 42 `chef prepare` command. | 42 `chef prepare` command. |
| 43 """ | 43 """ |
| 44 def setupPrepareParser(self, parser, app): | 44 def setupPrepareParser(self, parser, app): |
| 45 raise NotImplementedError() | 45 raise NotImplementedError() |
| 46 | 46 |
| 47 def buildMetadata(self, args): | 47 def buildMetadata(self, args): |
| 48 raise NotImplementedError() | 48 raise NotImplementedError() |
| 49 | 49 |
| 50 | 50 |
| 51 class InteractiveField(object): | |
| 52 TYPE_STRING = 0 | |
| 53 TYPE_INT = 1 | |
| 54 | |
| 55 def __init__(self, name, field_type, default_value): | |
| 56 self.name = name | |
| 57 self.field_type = field_type | |
| 58 self.default_value = default_value | |
| 59 | |
| 60 | |
| 61 class IInteractiveSource(object): | |
| 62 def getInteractiveFields(self): | |
| 63 raise NotImplementedError() | |
| 64 |
