On Tue, Oct 26, 2010 at 12:01 PM, David Lindquist
<[email protected]> wrote:
> I was wondering what the prospect was of getting a CSV serializer
> added to Django. It seems like it would be useful for many use cases,
> especially for bulk editing of objects by non-technical users. We have
> this requirement where I work, so I wrote a CSV serializer:
> http://djangosnippets.org/snippets/2240/. It would be nice to get
> something like this in Django. I see that there was some effort a
> while back in ticket #5253 (http://code.djangoproject.com/ticket/
> 5253), but it looks like it has sort of died on the vine. I'd be happy
> to submit my code, but I don't want to step on any toes if something
> is already in progress. Would it be appropriate to open a new ticket?

A new ticket isn't required -- the feature request hasn't
fundamentally changed. I'm also not aware of any work in progress in
this area.

The fundamental issue that hit the last CSV serializer effort was
demonstrating that the serialization format that was being proposed
was actually viable, and suffciently 'common' that it was appropriate
for the core. Formats like JSON, XML, and YAML have a fundamentally
agreed structure for representing complex data, and while Django's
serializer uses a particular set of formatting conventions, the JSON
data is parseable by any JSON compliant parser. CSV has a basic
structure (i.e., comma separated values), but doesn't have a natural
way of representing multiple datatypes, multiple values for a single
field, or differentiating NULL from empty string. Even in-file
metadata (sometimes represented as the first, commented out row of a
CSV file) is the subject of inconsistency.

For a serializer to land in trunk, it needs to be clear that the
proposed serializer would produce output in a format that will be
immediately and obviously useful by other consumers -- e.g., that
Django-genereated CSV output would be useful (and meaningful) as input
to Excel. So far, I haven't seen a proposed format that would meet
this criterion.

Instead of introducing a specific CSV serializer to Django, my
preference would be to improve the serialization framework such that
implementing a CSV serializer could be a relatively simple
configuration exercise, rather than a major engineering effort. This
is obviously a lot more work than just introducing a single new
serializer, but I think it would ultimately yield a lot more useful
outcomes -- not the least of which would be providing a way to get
CSV-serialized output without needing to dictate a single output
format.

Yours,
Russ Magee %-)

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to