[processing] replace str() with unicode() to avoid possible issues with

non-ASCII characters (work in progress)
This commit is contained in:
Alexander Bruy 2014-07-30 19:27:23 +03:00
parent 3480ef2e47
commit 2d835fbae0
3 changed files with 22 additions and 22 deletions

View File

@ -54,15 +54,15 @@ class OgrAlgorithm(GdalAlgorithm):
if provider == 'spatialite':
# dbname='/geodata/osm_ch.sqlite' table="places" (Geometry) sql=
regex = re.compile("dbname='(.+)'")
r = regex.search(str(layer.source()))
r = regex.search(unicode(layer.source()))
ogrstr = r.groups()[0]
elif provider == 'postgres':
# dbname='ktryjh_iuuqef' host=spacialdb.com port=9999
# user='ktryjh_iuuqef' password='xyqwer' sslmode=disable
# key='gid' estimatedmetadata=true srid=4326 type=MULTIPOLYGON
# table="t4" (geom) sql=
s = re.sub(''' sslmode=.+''', '', str(layer.source()))
s = re.sub(''' sslmode=.+''', '', unicode(layer.source()))
ogrstr = 'PG:%s' % s
else:
ogrstr = str(layer.source())
ogrstr = unicode(layer.source())
return ogrstr

View File

@ -53,7 +53,7 @@ class Output(object):
# in a vector layer). In the case of layers, hidden outputs are
# not loaded into QGIS after the algorithm is executed. Other
# outputs not representing layers or tables should always be hidden.
self.hidden = str(hidden).lower() == str(True).lower()
self.hidden = unicode(hidden).lower() == unicode(True).lower()
# This value indicates whether the output has to be opened
# after being produced by the algorithm or not
@ -64,12 +64,12 @@ class Output(object):
def getValueAsCommandLineParameter(self):
if self.value is None:
return str(None)
return unicode(None)
else:
if not isWindows():
return '"' + str(self.value) + '"'
return '"' + unicode(self.value) + '"'
else:
return '"' + str(self.value).replace('\\', '\\\\') + '"'
return '"' + unicode(self.value).replace('\\', '\\\\') + '"'
def setValue(self, value):
try:
@ -99,7 +99,7 @@ class OutputExtent(Output):
if value is not None and isinstance(value, basestring):
value = value.strip()
else:
self.value = ','.join([str(v) for v in value])
self.value = ','.join([unicode(v) for v in value])
return True
except:
return False
@ -292,4 +292,4 @@ class OutputVector(Output):
w = VectorWriter(self.value, self.encoding, fields, geomType,
crs, options)
self.memoryLayer = w.memLayer
return w
return w

View File

@ -39,9 +39,9 @@ def getParameterFromString(s):
return clazz(*params)
def parseBool(s):
if s == str(None):
if s == unicode(None):
return None
return str(s).lower() == str(True).lower()
return unicode(s).lower() == unicode(True).lower()
class Parameter:
@ -69,7 +69,7 @@ class Parameter:
Returns true if the value passed is correct for the type
of parameter.
"""
self.value = str(obj)
self.value = unicode(obj)
return True
def __str__(self):
@ -81,7 +81,7 @@ class Parameter:
entered in the console if calling an algorithm using the
Processing.runalg() method.
"""
return str(self.value)
return unicode(self.value)
def parameterName(self):
return self.__module__.split('.')[-1]
@ -102,7 +102,7 @@ class ParameterBoolean(Parameter):
self.value = self.default
return True
if isinstance(value, basestring):
self.value = str(value).lower() == str(True).lower()
self.value = unicode(value).lower() == unicode(True).lower()
else:
self.value = bool(value)
return True
@ -122,18 +122,18 @@ class ParameterCrs(Parameter):
return True
# TODO: check it is a valid authid
self.value = str(value)
self.value = unicode(value)
return True
def getValueAsCommandLineParameter(self):
return '"' + str(self.value) + '"'
return '"' + unicode(self.value) + '"'
class ParameterDataObject(Parameter):
def getValueAsCommandLineParameter(self):
if self.value is None:
return str(None)
return unicode(None)
else:
if not isWindows():
return '"' + unicode(self.value) + '"'
@ -168,7 +168,7 @@ class ParameterExtent(Parameter):
return False
def getValueAsCommandLineParameter(self):
return '"' + str(self.value) + '"'
return '"' + unicode(self.value) + '"'
class ParameterFile(Parameter):
@ -214,7 +214,7 @@ class ParameterFixedTable(Parameter):
return True
def getValueAsCommandLineParameter(self):
return '"' + str(self.value) + '"'
return '"' + unicode(self.value) + '"'
@staticmethod
def tableToString(table):
@ -362,7 +362,7 @@ class ParameterNumber(Parameter):
default=0.0):
Parameter.__init__(self, name, description)
try:
self.default = int(str(default))
self.default = int(unicode(default))
self.isInteger = True
except:
self.default = float(default)
@ -415,7 +415,7 @@ class ParameterRange(Parameter):
return False
def getValueAsCommandLineParameter(self):
return '"' + str(self.value) + '"'
return '"' + unicode(self.value) + '"'
class ParameterRaster(ParameterDataObject):
@ -709,4 +709,4 @@ class ParameterVector(ParameterDataObject):
exts = dataobjects.getSupportedOutputVectorLayerExtensions()
for i in range(len(exts)):
exts[i] = exts[i].upper() + ' files(*.' + exts[i].lower() + ')'
return ';;'.join(exts)
return ';;'.join(exts)