Source code for exporters.transform.pythonmap
import six
from exporters.transform.base_transform import BaseTransform
from exporters.python_interpreter import Interpreter, create_context
[docs]class PythonMapTransform(BaseTransform):
"""Transform implementation that maps items using Python expressions
"""
supported_options = {
"map": {'type': six.string_types},
}
def __init__(self, *args, **kwargs):
super(PythonMapTransform, self).__init__(*args, **kwargs)
self.map_expression = self.read_option('map')
self.interpreter = Interpreter()
self.interpreter.check(self.map_expression)
def _map_item(self, it):
context = create_context(item=it)
return self.interpreter.eval(expression=self.map_expression, context=context)