move sqlite charset fix to Configuration.py from Database.py, make separate not_needed variables in Charset.py in case we want to update them separately
This commit is contained in:
parent
d147187a71
commit
9932025271
|
@ -28,12 +28,12 @@ encoder_to_utf = codecs.lookup('utf-8')
|
|||
encoder_to_sys = codecs.lookup(Configuration.LOCALE_ENCODING)
|
||||
|
||||
# I'm saving a few cycles with this one
|
||||
not_needed = False
|
||||
not_needed1, not_needed2, not_needed3 = False, False, False
|
||||
if Configuration.LOCALE_ENCODING == 'UTF8':
|
||||
not_needed = True
|
||||
not_needed1, not_needed2, not_needed3 = True, True, True
|
||||
|
||||
def to_utf8(s):
|
||||
if not_needed: return s
|
||||
if not_needed1: return s
|
||||
|
||||
try:
|
||||
#(_out, _len) = encoder_to_utf.encode(s)
|
||||
|
@ -44,7 +44,7 @@ def to_utf8(s):
|
|||
raise
|
||||
|
||||
def to_db_utf8(s):
|
||||
if not_needed: return s
|
||||
if not_needed2: return s
|
||||
|
||||
try:
|
||||
(_out, _len) = encoder_to_utf.encode(unicode(s))
|
||||
|
@ -54,7 +54,7 @@ def to_db_utf8(s):
|
|||
raise
|
||||
|
||||
def to_gui(s):
|
||||
if not_needed: return s
|
||||
if not_needed3: return s
|
||||
|
||||
try:
|
||||
(_out, _len) = encoder_to_sys.encode(s)
|
||||
|
|
|
@ -144,6 +144,11 @@ if LOCALE_ENCODING == "US-ASCII":
|
|||
print "Default encoding set to US-ASCII, defaulting to CP1252 instead -- If you're not on a Mac, please report this problem."
|
||||
LOCALE_ENCODING = "cp1252"
|
||||
|
||||
|
||||
# needs LOCALE_ENCODING (above), imported for sqlite setup in Config class below
|
||||
import Charset
|
||||
|
||||
|
||||
########################################################################
|
||||
def string_to_bool(string, default=True):
|
||||
"""converts a string representation of a boolean value to boolean True or False
|
||||
|
@ -648,6 +653,11 @@ class Config:
|
|||
db['db-backend'] = 3
|
||||
elif self.supported_databases[name].db_server== DATABASE_TYPE_SQLITE:
|
||||
db['db-backend'] = 4
|
||||
|
||||
# sqlcoder: this assignment fixes unicode problems for me with sqlite (windows, cp1252)
|
||||
# feel free to remove or improve this if you understand the problems
|
||||
# better than me (not hard!)
|
||||
#Charset.not_needed1, Charset.not_needed2, Charset.not_needed3 = True, True, True
|
||||
else:
|
||||
raise ValueError('Unsupported database backend: %s' % self.supported_databases[name].db_server)
|
||||
return db
|
||||
|
|
|
@ -372,7 +372,6 @@ class Database:
|
|||
print msg
|
||||
raise FpdbError(msg)
|
||||
elif backend == Database.SQLITE:
|
||||
log.info("Connecting to SQLite: %(database)s" % {'database':database})
|
||||
import sqlite3
|
||||
if use_pool:
|
||||
sqlite3 = pool.manage(sqlite3, pool_size=1)
|
||||
|
@ -385,7 +384,8 @@ class Database:
|
|||
log.info("Creating directory: '%s'" % (self.config.dir_databases))
|
||||
os.mkdir(self.config.dir_databases)
|
||||
database = os.path.join(self.config.dir_databases, database)
|
||||
log.info(" sqlite db: " + database)
|
||||
log.info("Connecting to SQLite: %(database)s" % {'database':database})
|
||||
print "Connecting to SQLite: %(database)s" % {'database':database}
|
||||
self.connection = sqlite3.connect(database, detect_types=sqlite3.PARSE_DECLTYPES )
|
||||
sqlite3.register_converter("bool", lambda x: bool(int(x)))
|
||||
sqlite3.register_adapter(bool, lambda x: "1" if x else "0")
|
||||
|
@ -399,13 +399,6 @@ class Database:
|
|||
self.cursor = self.connection.cursor()
|
||||
self.cursor.execute('PRAGMA temp_store=2') # use memory for temp tables/indexes
|
||||
self.cursor.execute('PRAGMA synchronous=0') # don't wait for file writes to finish
|
||||
|
||||
# sqlcoder: this assignment fixes unicode problems for me with sqlite (windows, cp1252)
|
||||
# feel free to remove or improve this if you understand the problems
|
||||
# better than me (not hard!)
|
||||
# I think maybe we need a separate "not_needed" flag for each of the routines
|
||||
# in Charset.py???
|
||||
# Charset.not_needed = True
|
||||
else:
|
||||
raise FpdbError("unrecognised database backend:"+backend)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user