[issue15109] sqlite3.Connection.iterdump() dies with encoding exception

2012-06-19 Thread Ev Kontsevoy

New submission from Ev Kontsevoy :

When calling connection.iterdump() on a database with non-ASCII string values, 
the following exception is raised:


File "/python-2.7.3/lib/python2.7/sqlite3/dump.py", line 56, in _iterdump
yield("{0};".format(row[0]))

UnicodeEncodeError: 'ascii' codec can't encode characters in position 48-51: 
ordinal not in range(128)


The older versions used the following (safer) version in 
/python-2.7.3/lib/python2.7/sqlite3/dump.py:56:

yield("%s;" % row[0])

--
components: Library (Lib)
messages: 163227
nosy: ekontsevoy
priority: normal
severity: normal
status: open
title: sqlite3.Connection.iterdump() dies with encoding exception
versions: Python 2.7

___
Python tracker 
<http://bugs.python.org/issue15109>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15109] sqlite3.Connection.iterdump() dies with encoding exception

2012-06-19 Thread Ev Kontsevoy

Changes by Ev Kontsevoy :


--
type:  -> behavior

___
Python tracker 
<http://bugs.python.org/issue15109>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15109] sqlite3.Connection.iterdump() dies with encoding exception

2012-06-19 Thread Ev Kontsevoy

Ev Kontsevoy  added the comment:

Proposed fix:

maybe 
yield(u"%s;" % row[0]) 

or simply

row[0] + ";"?

--

___
Python tracker 
<http://bugs.python.org/issue15109>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15109] sqlite3.Connection.iterdump() dies with encoding exception

2012-06-19 Thread Ev Kontsevoy

Ev Kontsevoy  added the comment:

If the behavior of string.format() can be fixed to act identically to u"%s" % 
"" that would be simply wonderful!

Currently at work we have a rule in place: to never use string.format() since 
it cannot be used for anything but constants due to encoding exceptions.

--

___
Python tracker 
<http://bugs.python.org/issue15109>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15109] sqlite3.Connection.iterdump() dies with encoding exception

2012-06-19 Thread Ev Kontsevoy

Ev Kontsevoy  added the comment:

I am attaching death.py file which dies on string.format()
The stack trace above is at the full depth. Python doesn't print anything from 
inside of format().

--
Added file: http://bugs.python.org/file26057/death.py

___
Python tracker 
<http://bugs.python.org/issue15109>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com