On Thu, Aug 11, 2016 at 10:57 AM Malcolm Greene <pyt...@bdurham.com> wrote:
> Background: I'm building a rules engine for transforming rows of data > being returned by csv DictReader, eg. each row of data is a dict of column > name to value mappings. My rules are a list of rule objects whose > attributes get referenced by rule specific methods. Each rule has an > associated method which gets called based on rule name. > Could you share the API you've designed for this tool? An example of usage will clarify what you intend. One technique for applying a transformation function to each record returned by a csv DictReader: import csv import math from io import StringIO f = StringIO('''\ a,b,c 1,2,3 4,5,6 ''') def pass_(value): return value transforms = { 'a': lambda v: math.sin(int(v)), 'b': lambda v: math.cos(int(v)), } for row in csv.DictReader(f): print({k: transforms.get(k, pass_)(v) for k, v in row.items()}) Using __missing__ for your transform dict might be more elegant than .get with a pass_ as default. -- https://mail.python.org/mailman/listinfo/python-list