1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
import _csv
class Error(Exception):
pass
_dialects = {}
def register_dialect(name, dialect=None, **kwargs):
"""Create a mapping from a string name to a dialect class."""
if not isinstance(name, str):
raise TypeError("dialect name must be a string or unicode")
dialect = _csv.Dialect(dialect, **kwargs)
_dialects[name] = dialect
def unregister_dialect(name):
"""Delete the name/dialect mapping associated with a string name."""
try:
del _dialects[name]
except KeyError:
raise Error("unknown dialect")
def get_dialect(name):
"""Return the dialect instance associated with name."""
try:
return _dialects[name]
except KeyError:
raise Error("unknown dialect")
def list_dialects():
"""Return a list of all know dialect names."""
return list(_dialects)
|