[Python-checkins] python/nondist/sandbox/csv csv.py,1.18,1.19
montanaro@users.sourceforge.net
montanaro@users.sourceforge.net
Mon, 03 Feb 2003 12:25:22 -0800
Update of /cvsroot/python/python/nondist/sandbox/csv
In directory sc8-pr-cvs1:/tmp/cvs-serv18989
Modified Files:
csv.py
Log Message:
Rearrange the dialect code a bit. Add a _name attribute to the Dialect
class and set it in register_dialect. Add an unregister_dialect function.
Index: csv.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/csv/csv.py,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** csv.py 3 Feb 2003 06:44:13 -0000 1.18
--- csv.py 3 Feb 2003 20:25:19 -0000 1.19
***************
*** 4,12 ****
__all__ = [ "QUOTE_MINIMAL", "QUOTE_ALL", "QUOTE_NONNUMERIC", "QUOTE_NONE",
"Error", "Dialect", "excel", "excel_tab", "reader", "writer",
! "register_dialect", "get_dialect", "list_dialects"]
QUOTE_MINIMAL, QUOTE_ALL, QUOTE_NONNUMERIC, QUOTE_NONE = range(4)
class Dialect:
delimiter = ','
quotechar = '"'
--- 4,31 ----
__all__ = [ "QUOTE_MINIMAL", "QUOTE_ALL", "QUOTE_NONNUMERIC", "QUOTE_NONE",
"Error", "Dialect", "excel", "excel_tab", "reader", "writer",
! "register_dialect", "get_dialect", "list_dialects",
! "unregister_dialect" ]
QUOTE_MINIMAL, QUOTE_ALL, QUOTE_NONNUMERIC, QUOTE_NONE = range(4)
+ _dialects = {}
+
+ def register_dialect(name, dialect):
+ if not issubclass(dialect, Dialect):
+ raise TypeError, "dialect not a subclass of Dialect"
+ dialect._name = name
+ _dialects[name] = dialect()
+
+ def get_dialect(name):
+ return _dialects[name]
+
+ def list_dialects():
+ return _dialects.keys()
+
+ def unregister_dialect(name):
+ del _dialects[name]
+
class Dialect:
+ _name = ""
delimiter = ','
quotechar = '"'
***************
*** 19,30 ****
class excel(Dialect):
pass
class excel_tab(excel):
delimiter = '\t'
!
! _dialects = {
! 'excel': excel(),
! 'excel-tab': excel_tab(),
! }
class _OCcsv:
--- 38,46 ----
class excel(Dialect):
pass
+ register_dialect("excel", excel)
class excel_tab(excel):
delimiter = '\t'
! register_dialect("excel-tab", excel_tab)
class _OCcsv:
***************
*** 81,95 ****
for fields in lines:
self.writerow(fields)
-
- def register_dialect(name, dialect):
- if not issubclass(dialect, Dialect):
- raise TypeError, "dialect not a subclass of Dialect"
- _dialects[name] = dialect()
-
- def get_dialect(name):
- return _dialects[name]
-
- def list_dialects():
- return _dialects.keys()
# An alternate way of populating the dialects dictionary...
--- 97,100 ----