[processing] more cleanups (follow up 06c4b07222)

This commit is contained in:
Alexander Bruy 2016-08-05 15:05:36 +03:00
parent 45c8a09439
commit acdde31b3d
7 changed files with 19 additions and 23 deletions

View File

@ -96,10 +96,11 @@ class ExampleAlgorithm(GeoAlgorithm):
# directly # directly
settings = QSettings() settings = QSettings()
systemEncoding = settings.value('/UI/encoding', 'System') systemEncoding = settings.value('/UI/encoding', 'System')
provider = vectorLayer.dataProvider() writer = QgsVectorFileWriter(output,
writer = QgsVectorFileWriter(output, systemEncoding, systemEncoding,
provider.fields(), vectorLayer.fields(),
provider.wkbType(), provider.crs()) vectorLayer.wkbType(),
vectorLayer.crs())
# Now we take the features from input layer and add them to the # Now we take the features from input layer and add them to the
# output. Method features() returns an iterator, considering the # output. Method features() returns an iterator, considering the

View File

@ -9,10 +9,9 @@ from qgis.core import QgsFeature, QgsField
from processing.tools.vector import VectorWriter from processing.tools.vector import VectorWriter
layer = processing.getObject(input) layer = processing.getObject(input)
provider = layer.dataProvider() fields = layer.fields()
fields = provider.fields()
fields.append(QgsField('UNIQ_COUNT', QVariant.Int)) fields.append(QgsField('UNIQ_COUNT', QVariant.Int))
writer = VectorWriter(N_unique_values, None, fields, provider.wkbType(), writer = VectorWriter(N_unique_values, None, fields, layer.wkbType(),
layer.crs()) layer.crs())
class_field_index = layer.fieldNameIndex(class_field) class_field_index = layer.fieldNameIndex(class_field)

View File

@ -273,10 +273,9 @@ class GeoAlgorithm:
# For the case of memory layer, if the # For the case of memory layer, if the
# getCompatible method has been called # getCompatible method has been called
continue continue
provider = layer.dataProvider()
writer = out.getVectorWriter( writer = out.getVectorWriter(
provider.fields(), layer.fields(),
provider.wkbType(), layer.crs() layer.wkbType(), layer.crs()
) )
features = vector.features(layer) features = vector.features(layer)
for feature in features: for feature in features:
@ -312,8 +311,7 @@ class GeoAlgorithm:
elif isinstance(out, OutputTable): elif isinstance(out, OutputTable):
if out.compatible is not None: if out.compatible is not None:
layer = dataobjects.getObjectFromUri(out.compatible) layer = dataobjects.getObjectFromUri(out.compatible)
provider = layer.dataProvider() writer = out.getTableWriter(layer.fields())
writer = out.getTableWriter(provider.fields())
features = vector.features(layer) features = vector.features(layer)
for feature in features: for feature in features:
writer.addRecord(feature) writer.addRecord(feature)

View File

@ -64,13 +64,12 @@ def runalgIterating(alg, paramToIter, progress):
feat = QgsFeature() feat = QgsFeature()
filelist = [] filelist = []
outputs = {} outputs = {}
provider = layer.dataProvider()
features = vector.features(layer) features = vector.features(layer)
for feat in features: for feat in features:
output = getTempFilename('shp') output = getTempFilename('shp')
filelist.append(output) filelist.append(output)
writer = QgsVectorFileWriter(output, systemEncoding, writer = QgsVectorFileWriter(output, systemEncoding,
provider.fields(), provider.wkbType(), layer.crs()) layer.fields(), layer.wkbType(), layer.crs())
writer.addFeature(feat) writer.addFeature(feat)
del writer del writer

View File

@ -471,7 +471,7 @@ class ParametersPanel(BASE, WIDGET):
QVariant.UInt, QVariant.ULongLong] QVariant.UInt, QVariant.ULongLong]
fieldNames = set() fieldNames = set()
for field in layer.pendingFields(): for field in layer.fields():
if not fieldTypes or field.type() in fieldTypes: if not fieldTypes or field.type() in fieldTypes:
fieldNames.add(unicode(field.name())) fieldNames.add(unicode(field.name()))
return sorted(list(fieldNames), cmp=locale.strcoll) return sorted(list(fieldNames), cmp=locale.strcoll)

View File

@ -294,8 +294,8 @@ def exportVectorLayer(layer, supported=None):
useSelection = ProcessingConfig.getSetting(ProcessingConfig.USE_SELECTED) useSelection = ProcessingConfig.getSetting(ProcessingConfig.USE_SELECTED)
if useSelection and layer.selectedFeatureCount() != 0: if useSelection and layer.selectedFeatureCount() != 0:
writer = QgsVectorFileWriter(output, systemEncoding, writer = QgsVectorFileWriter(output, systemEncoding,
layer.pendingFields(), layer.fields(),
provider.wkbType(), layer.crs()) layer.wkbType(), layer.crs())
selection = layer.selectedFeatures() selection = layer.selectedFeatures()
for feat in selection: for feat in selection:
writer.addFeature(feat) writer.addFeature(feat)
@ -310,7 +310,7 @@ def exportVectorLayer(layer, supported=None):
if not os.path.splitext(layer.source())[1].lower() in supported or not isASCII: if not os.path.splitext(layer.source())[1].lower() in supported or not isASCII:
writer = QgsVectorFileWriter( writer = QgsVectorFileWriter(
output, systemEncoding, output, systemEncoding,
layer.pendingFields(), provider.wkbType(), layer.fields(), layer.wkbType(),
layer.crs() layer.crs()
) )
for feat in layer.getFeatures(): for feat in layer.getFeatures():
@ -354,7 +354,6 @@ def exportTable(table):
settings = QSettings() settings = QSettings()
systemEncoding = settings.value('/UI/encoding', 'System') systemEncoding = settings.value('/UI/encoding', 'System')
output = getTempFilename() output = getTempFilename()
provider = table.dataProvider()
isASCII = True isASCII = True
try: try:
unicode(table.source()).decode('ascii') unicode(table.source()).decode('ascii')
@ -364,7 +363,7 @@ def exportTable(table):
or unicode(table.source()).endswith('shp') or unicode(table.source()).endswith('shp')
if not isDbf or not isASCII: if not isDbf or not isASCII:
writer = QgsVectorFileWriter(output, systemEncoding, writer = QgsVectorFileWriter(output, systemEncoding,
provider.fields(), QgsWkbTypes.NullGeometry, layer.fields(), QgsWkbTypes.NullGeometry,
QgsCoordinateReferenceSystem('4326')) QgsCoordinateReferenceSystem('4326'))
for feat in table.getFeatures(): for feat in table.getFeatures():
writer.addFeature(feat) writer.addFeature(feat)

View File

@ -316,10 +316,10 @@ def combineVectorFields(layerA, layerB):
"""Create single field map from two input field maps. """Create single field map from two input field maps.
""" """
fields = [] fields = []
fieldsA = layerA.pendingFields() fieldsA = layerA.fields()
fields.extend(fieldsA) fields.extend(fieldsA)
namesA = [unicode(f.name()).lower() for f in fieldsA] namesA = [unicode(f.name()).lower() for f in fieldsA]
fieldsB = layerB.pendingFields() fieldsB = layerB.fields()
for field in fieldsB: for field in fieldsB:
name = unicode(field.name()).lower() name = unicode(field.name()).lower()
if name in namesA: if name in namesA:
@ -366,7 +366,7 @@ def duplicateInMemory(layer, newName='', addToRegistry=False):
memProvider = memLayer.dataProvider() memProvider = memLayer.dataProvider()
provider = layer.dataProvider() provider = layer.dataProvider()
fields = provider.fields().toList() fields = layer.fields().toList()
memProvider.addAttributes(fields) memProvider.addAttributes(fields)
memLayer.updateFields() memLayer.updateFields()