Bugs item #1744580, was opened at 2007-06-28 13:36 Message generated for change (Comment added) made by andrewmcnamara You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1744580&group_id=5470
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Python Library Group: Python 2.5 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Christian Kristukat (ckkart) Assigned to: Andrew McNamara (andrewmcnamara) Summary: cvs.get_dialect() return a class object Initial Comment: With python2.5 (and 2.6) cvs.get_dialect('excel') returns a Dialect class object in contrast to python 2.4 where an instance of csv.excel is returned, the former having only read only attributes. % python2.4 Python 2.4.1 (#3, Jul 28 2005, 22:08:40) [GCC 3.3 20030304 (Apple Computer, Inc. build 1671)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import csv >>> d = csv.get_dialect("excel") >>> d <csv.excel instance at 0x3ae058> % python Python 2.6a0 (trunk:54264M, Mar 10 2007, 15:19:48) [GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import csv >>> d = csv.get_dialect("excel") >>> d <_csv.Dialect object at 0x137fac0> ---------------------------------------------------------------------- >Comment By: Andrew McNamara (andrewmcnamara) Date: 2007-06-28 21:41 Message: Logged In: YES user_id=698599 Originator: NO I should also mention that if you simply wanted a reader of a variant of the "excel" dialect, the simplest way to achieve that is: r=csv.reader(f, dialect='excel', delimiter='\t') ---------------------------------------------------------------------- Comment By: Andrew McNamara (andrewmcnamara) Date: 2007-06-28 21:35 Message: Logged In: YES user_id=698599 Originator: NO Dialects were made immutable, because they can potentially represent the configuration of a running state machine (the reader), and the dialects are potentially shared. If you want to change a registered dialect, I suggest you do something like: csv.register_dialect('excel', csv.get_dialect('excel'), delimiter='\t') This changes the dialect for new users, but doesn't disrupt the state of already running readers. ---------------------------------------------------------------------- Comment By: Skip Montanaro (montanaro) Date: 2007-06-28 20:56 Message: Logged In: YES user_id=44345 Originator: NO I took a brief look at the code. get_dialect is imported from the underlying _csv.c extension module and didn't change between 2.4 and 2.5. There is a new static function, _call_dialect, though. It is called from several places, most notably from csv_register_dialect. The code in 2.4 that it replaces seems much different to me than the code in the body of _call_dialect. I suspect there was some sort of regression there. Assigning to Andrew since he's the primary author of the code as well as the author of this particular change. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1744580&group_id=5470 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com