I am writing an order management console. I need to create an import system that is easy to extend. For now, I want to accept an dictionary of values and map them to my data model. The thing is, I need to do things to certain columns:
- I need to filter some of the values (data comes in as YYYY-MM- DDTHH:MM:SS-(TIMEZONE-OFFSET) and it needs to map to Order.date as a YYYY-MM-DD field) - I need to map parts of an input column to more than one model param (for instance if I get a full name for input--like "John Smith"--I need a function to break it apart and map it to Order.shipping_first_name and Order.shipping_last_name) - Sometimes I need to do it the other way too... I need to map multiple input columns to one model param (If I get a shipping fee, a shipping tax, and a shipping discount, I need them added together and mapped to Order.shipping_fee) I have begun this process, but I'm finding it difficult to come up with a good system that is extensible and easy to understand. I won't always be the one writing the importers, so I'd like it to be pretty straight-forward. Any ideas? Oh, I should also mention that many times the data will map to several different models. For instance, the importer I'm writing first would map to 3 different models (Order, OrderItem, and OrderCharge) I am not looking for anybody to write any code for me. I'm simply asking for inspiration. What design patterns would you use here? Why? -- http://mail.python.org/mailman/listinfo/python-list