Inserter section¶
An inserter pipeline section lets you define a key and value
to insert into pipeline items. The inserter section
blueprint name is
collective.transmogrifier.sections.inserter
.
A inserter section takes a
key
and a
value
TALES expression. These expressions are evaluated to
generate the actual key-value pair that gets inserted. You
can also specify an optional
condition
option; if given, the key only gets inserted when the
condition, which is also a TALES is true.
Because the inserter
value
expression has access to the original item, it could even be
used to change existing item values. Just target an existing
key, pull out the original value in the value expression and
return a modified version.
>>> inserter = """
... [transmogrifier]
... pipeline =
... source
... simple-insertion
... expression-insertion
... transform-id
... logger
...
... [source]
... blueprint = collective.transmogrifier.sections.tests.rangesource
... size = 3
...
... [simple-insertion]
... blueprint = collective.transmogrifier.sections.inserter
... key = string:foo
... value = string:bar (inserted into "${item/id}" by the "$name" section)
...
... [expression-insertion]
... blueprint = collective.transmogrifier.sections.inserter
... key = python:'foo-%s' % item['id'][-2:]
... value = python:int(item['id'][-2:]) * 15
... condition = python:int(item['id'][-2:])
...
... [transform-id]
... blueprint = collective.transmogrifier.sections.inserter
... key = string:id
... value = string:foo-${item/id}
...
... [logger]
... blueprint = collective.transmogrifier.sections.logger
... name = logger
... level = INFO
... """
>>> registerConfig(u'collective.transmogrifier.sections.tests.inserter',
... inserter)
>>> transmogrifier(u'collective.transmogrifier.sections.tests.inserter')
>>> print handler
logger INFO
{'foo': 'bar (inserted into "item-00" by the "simple-insertion" section)',
'id': 'foo-item-00'}
logger INFO
{'foo': 'bar (inserted into "item-01" by the "simple-insertion" section)',
'foo-01': 15,
'id': 'foo-item-01'}
logger INFO
{'foo': 'bar (inserted into "item-02" by the "simple-insertion" section)',
'foo-02': 30,
'id': 'foo-item-02'}
The
key
,
value
and
condition
expressions have access to the following:
item
|
the current pipeline item |
transmogrifier
|
the transmogrifier |
name
|
the name of the inserter section |
options
|
the inserter options |
modules
|
sys.modules |
key
|
(only for the value and condition expressions) the key being inserted |