Skip to content

Commit

Permalink
Merge pull request #3353 from nyalldawson/processing
Browse files Browse the repository at this point in the history
[Processing] QGIS alg cleanups
  • Loading branch information
alexbruy committed Aug 5, 2016
2 parents 4c39bd1 + c1649eb commit 45c8a09
Show file tree
Hide file tree
Showing 72 changed files with 136 additions and 169 deletions.
5 changes: 2 additions & 3 deletions python/plugins/processing/algs/qgis/AddTableField.py
Expand Up @@ -78,11 +78,10 @@ def processAlgorithm(self, progress):
layer = dataobjects.getObjectFromUri(
self.getParameterValue(self.INPUT_LAYER))

provider = layer.dataProvider()
fields = provider.fields()
fields = layer.fields()
fields.append(QgsField(fieldName, self.TYPES[fieldType], '',
fieldLength, fieldPrecision))
writer = output.getVectorWriter(fields, provider.wkbType(),
writer = output.getVectorWriter(fields, layer.wkbType(),
layer.crs())
outFeat = QgsFeature()
features = vector.features(layer)
Expand Down
5 changes: 2 additions & 3 deletions python/plugins/processing/algs/qgis/AutoincrementalField.py
Expand Up @@ -49,10 +49,9 @@ def processAlgorithm(self, progress):
output = self.getOutputFromName(self.OUTPUT)
vlayer = \
dataobjects.getObjectFromUri(self.getParameterValue(self.INPUT))
vprovider = vlayer.dataProvider()
fields = vprovider.fields()
fields = vlayer.fields()
fields.append(QgsField('AUTO', QVariant.Int))
writer = output.getVectorWriter(fields, vprovider.wkbType(),
writer = output.getVectorWriter(fields, vlayer.wkbType(),
vlayer.crs())
outFeat = QgsFeature()
features = vector.features(vlayer)
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/Centroids.py
Expand Up @@ -63,7 +63,7 @@ def processAlgorithm(self, progress):

writer = self.getOutputFromName(
self.OUTPUT_LAYER).getVectorWriter(
layer.pendingFields().toList(),
layer.fields(),
QgsWkbTypes.Point,
layer.crs())

Expand Down
9 changes: 4 additions & 5 deletions python/plugins/processing/algs/qgis/CheckValidity.py
Expand Up @@ -97,27 +97,26 @@ def processAlgorithm(self, progress):
def doCheck(self, progress):
layer = dataobjects.getObjectFromUri(
self.getParameterValue(self.INPUT_LAYER))
provider = layer.dataProvider()

settings = QSettings()
method = int(settings.value(settings_method_key, 1))

valid_ouput = self.getOutputFromName(self.VALID_OUTPUT)
valid_fields = layer.pendingFields().toList()
valid_fields = layer.fields()
valid_writer = valid_ouput.getVectorWriter(
valid_fields,
provider.wkbType(),
layer.wkbType(),
layer.crs())
valid_count = 0

invalid_ouput = self.getOutputFromName(self.INVALID_OUTPUT)
invalid_fields = layer.pendingFields().toList() + [
invalid_fields = layer.fields().toList() + [
QgsField(name='_errors',
type=QVariant.String,
len=255)]
invalid_writer = invalid_ouput.getVectorWriter(
invalid_fields,
provider.wkbType(),
layer.wkbType(),
layer.crs())
invalid_count = 0

Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/ConcaveHull.py
Expand Up @@ -111,7 +111,7 @@ def processAlgorithm(self, progress):
feat = QgsFeature()
dissolved_layer.getFeatures(QgsFeatureRequest().setFilterFid(0)).nextFeature(feat)
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
layer.pendingFields().toList(), QgsWkbTypes.Polygon, layer.crs())
layer.fields().toList(), QgsWkbTypes.Polygon, layer.crs())
geom = feat.geometry()
if no_multigeom and geom.isMultipart():
# Only singlepart geometries are allowed
Expand Down
4 changes: 2 additions & 2 deletions python/plugins/processing/algs/qgis/ConvexHull.py
Expand Up @@ -78,7 +78,7 @@ def processAlgorithm(self, progress):
f = QgsField('value', QVariant.String, '', 255)
if useField:
index = layer.fieldNameIndex(fieldName)
fType = layer.pendingFields()[index].type()
fType = layer.fields()[index].type()
if fType in [QVariant.Int, QVariant.UInt, QVariant.LongLong, QVariant.ULongLong]:
f.setType(fType)
f.setLength(20)
Expand All @@ -97,7 +97,7 @@ def processAlgorithm(self, progress):
]

writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
fields, QgsWkbTypes.Polygon, layer.dataProvider().crs())
fields, QgsWkbTypes.Polygon, layer.crs())

outFeat = QgsFeature()
inGeom = QgsGeometry()
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/DeleteColumn.py
Expand Up @@ -54,7 +54,7 @@ def processAlgorithm(self, progress):
self.getParameterValue(self.INPUT))
idx = layer.fieldNameIndex(self.getParameterValue(self.COLUMN))

fields = layer.pendingFields()
fields = layer.fields()
fields.remove(idx)

writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
Expand Down
Expand Up @@ -49,7 +49,7 @@ def processAlgorithm(self, progress):
layer = dataobjects.getObjectFromUri(
self.getParameterValue(self.INPUT))

fields = layer.pendingFields()
fields = layer.fields()

writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
layer.wkbType(), layer.crs())
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/DeleteHoles.py
Expand Up @@ -49,7 +49,7 @@ def processAlgorithm(self, progress):
self.getParameterValue(self.INPUT))

writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
layer.pendingFields(),
layer.fields(),
layer.wkbType(),
layer.crs())

Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/DensifyGeometries.py
Expand Up @@ -65,7 +65,7 @@ def processAlgorithm(self, progress):
isPolygon = layer.geometryType() == QgsWkbTypes.PolygonGeometry

writer = self.getOutputFromName(
self.OUTPUT).getVectorWriter(layer.pendingFields().toList(),
self.OUTPUT).getVectorWriter(layer.fields().toList(),
layer.wkbType(), layer.crs())

features = vector.features(layer)
Expand Down
Expand Up @@ -62,7 +62,7 @@ def processAlgorithm(self, progress):
isPolygon = layer.geometryType() == QgsWkbTypes.PolygonGeometry

writer = self.getOutputFromName(
self.OUTPUT).getVectorWriter(layer.pendingFields().toList(),
self.OUTPUT).getVectorWriter(layer.fields().toList(),
layer.wkbType(), layer.crs())

features = vector.features(layer)
Expand Down
6 changes: 3 additions & 3 deletions python/plugins/processing/algs/qgis/Difference.py
Expand Up @@ -68,11 +68,11 @@ def processAlgorithm(self, progress):
self.getParameterValue(Difference.OVERLAY))
ignoreInvalid = self.getParameterValue(Difference.IGNORE_INVALID)

geomType = layerA.dataProvider().wkbType()
geomType = layerA.wkbType()
writer = self.getOutputFromName(
Difference.OUTPUT).getVectorWriter(layerA.pendingFields(),
Difference.OUTPUT).getVectorWriter(layerA.fields(),
geomType,
layerA.dataProvider().crs())
layerA.crs())

outFeat = QgsFeature()
index = vector.spatialindex(layerB)
Expand Down
3 changes: 1 addition & 2 deletions python/plugins/processing/algs/qgis/Dissolve.py
Expand Up @@ -71,12 +71,11 @@ def processAlgorithm(self, progress):
field_names = self.getParameterValue(Dissolve.FIELD)
vlayerA = dataobjects.getObjectFromUri(
self.getParameterValue(Dissolve.INPUT))
vproviderA = vlayerA.dataProvider()

writer = self.getOutputFromName(
Dissolve.OUTPUT).getVectorWriter(
vlayerA.fields().toList(),
vproviderA.wkbType(),
vlayerA.wkbType(),
vlayerA.crs())

outFeat = QgsFeature()
Expand Down
5 changes: 2 additions & 3 deletions python/plugins/processing/algs/qgis/Eliminate.py
Expand Up @@ -315,10 +315,9 @@ def processAlgorithm(self, progress):
# End while

# Create output
provider = processLayer.dataProvider()
output = self.getOutputFromName(self.OUTPUT)
writer = output.getVectorWriter(provider.fields(),
provider.wkbType(), processLayer.crs())
writer = output.getVectorWriter(processLayer.fields(),
processLayer.wkbType(), processLayer.crs())

# Write all features that are left over to output layer
iterator = processLayer.getFeatures()
Expand Down
5 changes: 2 additions & 3 deletions python/plugins/processing/algs/qgis/EquivalentNumField.py
Expand Up @@ -54,11 +54,10 @@ def processAlgorithm(self, progress):
output = self.getOutputFromName(self.OUTPUT)
vlayer = dataobjects.getObjectFromUri(
self.getParameterValue(self.INPUT))
vprovider = vlayer.dataProvider()
fieldindex = vlayer.fieldNameIndex(fieldname)
fields = vprovider.fields()
fields = vlayer.fields()
fields.append(QgsField('NUM_FIELD', QVariant.Int))
writer = output.getVectorWriter(fields, vprovider.wkbType(),
writer = output.getVectorWriter(fields, vlayer.wkbType(),
vlayer.crs())
outFeat = QgsFeature()
classes = {}
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/ExecuteSQL.py
Expand Up @@ -131,7 +131,7 @@ def processAlgorithm(self, progress):
raise GeoAlgorithmExecutionException(vLayer.dataProvider().error().message())

writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(
vLayer.pendingFields().toList(),
vLayer.fields().toList(),
# Create a point layer (without any points) if 'no geometry' is chosen
vLayer.wkbType() if geometry_type != 1 else 1,
vLayer.crs())
Expand Down
3 changes: 1 addition & 2 deletions python/plugins/processing/algs/qgis/Explode.py
Expand Up @@ -48,8 +48,7 @@ def processAlgorithm(self, progress):
vlayer = dataobjects.getObjectFromUri(
self.getParameterValue(self.INPUT))
output = self.getOutputFromName(self.OUTPUT)
vprovider = vlayer.dataProvider()
fields = vprovider.fields()
fields = vlayer.fields()
writer = output.getVectorWriter(fields, QgsWkbTypes.LineString,
vlayer.crs())
outFeat = QgsFeature()
Expand Down
4 changes: 2 additions & 2 deletions python/plugins/processing/algs/qgis/ExportGeometryInfo.py
Expand Up @@ -72,7 +72,7 @@ def processAlgorithm(self, progress):
method = self.getParameterValue(self.METHOD)

geometryType = layer.geometryType()
fields = layer.pendingFields()
fields = layer.fields()

if geometryType == QgsWkbTypes.PolygonGeometry:
areaName = vector.createUniqueFieldName('area', fields)
Expand All @@ -89,7 +89,7 @@ def processAlgorithm(self, progress):
fields.append(QgsField(yName, QVariant.Double))

writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
fields.toList(), layer.dataProvider().wkbType(), layer.crs())
fields.toList(), layer.wkbType(), layer.crs())

ellips = None
crs = None
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/ExtractByAttribute.py
Expand Up @@ -83,7 +83,7 @@ def processAlgorithm(self, progress):
operator = self.OPERATORS[self.getParameterValue(self.OPERATOR)]
value = self.getParameterValue(self.VALUE)

fields = layer.pendingFields()
fields = layer.fields()
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
layer.wkbType(), layer.crs())

Expand Down
4 changes: 2 additions & 2 deletions python/plugins/processing/algs/qgis/ExtractByLocation.py
Expand Up @@ -70,8 +70,8 @@ def processAlgorithm(self, progress):
index = vector.spatialindex(layer)

output = self.getOutputFromName(self.OUTPUT)
writer = output.getVectorWriter(layer.pendingFields(),
layer.dataProvider().wkbType(), layer.crs())
writer = output.getVectorWriter(layer.fields(),
layer.wkbType(), layer.crs())

if 'disjoint' in predicates:
disjoinSet = []
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/ExtractNodes.py
Expand Up @@ -62,7 +62,7 @@ def processAlgorithm(self, progress):
self.getParameterValue(self.INPUT))

writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
layer.pendingFields().toList(), QgsWkbTypes.Point, layer.crs())
layer.fields().toList(), QgsWkbTypes.Point, layer.crs())

outFeat = QgsFeature()
inGeom = QgsGeometry()
Expand Down
7 changes: 3 additions & 4 deletions python/plugins/processing/algs/qgis/FieldPyculator.py
Expand Up @@ -88,11 +88,10 @@ def processAlgorithm(self, progress):

layer = dataobjects.getObjectFromUri(
self.getParameterValue(self.INPUT_LAYER))
provider = layer.dataProvider()
fields = provider.fields()
fields = layer.fields()
fields.append(QgsField(fieldName, self.TYPES[fieldType], '',
fieldLength, fieldPrecision))
writer = output.getVectorWriter(fields, provider.wkbType(),
writer = output.getVectorWriter(fields, layer.wkbType(),
layer.crs())
outFeat = QgsFeature()
new_ns = {}
Expand All @@ -107,7 +106,7 @@ def processAlgorithm(self, progress):
self.tr("FieldPyculator code execute error.Global code block can't be executed!\n%s\n%s") % (unicode(sys.exc_info()[0].__name__), unicode(sys.exc_info()[1])))

# Replace all fields tags
fields = provider.fields()
fields = layer.fields()
num = 0
for field in fields:
field_name = unicode(field.name())
Expand Down
5 changes: 2 additions & 3 deletions python/plugins/processing/algs/qgis/FieldsCalculator.py
Expand Up @@ -94,12 +94,11 @@ def processAlgorithm(self, progress):
output.value = system.getTempFilenameInTempFolder(
output.name + '.' + ext)

provider = layer.dataProvider()
fields = layer.pendingFields()
fields = layer.fields()
if newField:
fields.append(QgsField(fieldName, fieldType, '', width, precision))

writer = output.getVectorWriter(fields, provider.wkbType(),
writer = output.getVectorWriter(fields, layer.wkbType(),
layer.crs())

exp = QgsExpression(formula)
Expand Down
3 changes: 1 addition & 2 deletions python/plugins/processing/algs/qgis/FieldsMapper.py
Expand Up @@ -68,7 +68,6 @@ def processAlgorithm(self, progress):
output = self.getOutputFromName(self.OUTPUT_LAYER)

layer = dataobjects.getObjectFromUri(layer)
provider = layer.dataProvider()
fields = []
expressions = []

Expand Down Expand Up @@ -109,7 +108,7 @@ def processAlgorithm(self, progress):
expressions.append(expression)

writer = output.getVectorWriter(fields,
provider.wkbType(),
layer.wkbType(),
layer.crs())

# Create output vector layer with new attributes
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/FixedDistanceBuffer.py
Expand Up @@ -75,7 +75,7 @@ def processAlgorithm(self, progress):
segments = int(self.getParameterValue(self.SEGMENTS))

writer = self.getOutputFromName(
self.OUTPUT).getVectorWriter(layer.pendingFields().toList(),
self.OUTPUT).getVectorWriter(layer.fields().toList(),
QgsWkbTypes.Polygon, layer.crs())

buff.buffering(progress, writer, distance, None, False, layer,
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/GeometryConvert.py
Expand Up @@ -78,7 +78,7 @@ def processAlgorithm(self, progress):
newType = QgsWkbTypes.Point

writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
layer.pendingFields(), newType, layer.crs())
layer.fields(), newType, layer.crs())

features = vector.features(layer)
total = 100.0 / len(features)
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/Gridify.py
Expand Up @@ -65,7 +65,7 @@ def processAlgorithm(self, progress):
self.tr('Invalid grid spacing: %s/%s' % (hSpacing, vSpacing)))

writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
layer.pendingFields(), layer.wkbType(), layer.crs())
layer.fields(), layer.wkbType(), layer.crs())

features = vector.features(layer)
total = 100.0 / len(features)
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/HubDistance.py
Expand Up @@ -99,7 +99,7 @@ def processAlgorithm(self, progress):
if addLines:
geomType = QgsWkbTypes.LineString

fields = layerPoints.pendingFields()
fields = layerPoints.fields()
fields.append(QgsField('HubName', QVariant.String))
fields.append(QgsField('HubDist', QVariant.Double))

Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/qgis/HubLines.py
Expand Up @@ -71,7 +71,7 @@ def processAlgorithm(self, progress):
self.tr('Same layer given for both hubs and spokes'))

writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
layerSpoke.pendingFields(), QgsWkbTypes.LineString, layerSpoke.crs())
layerSpoke.fields(), QgsWkbTypes.LineString, layerSpoke.crs())

spokes = vector.features(layerSpoke)
hubs = vector.features(layerHub)
Expand Down
5 changes: 2 additions & 3 deletions python/plugins/processing/algs/qgis/Intersection.py
Expand Up @@ -73,12 +73,11 @@ def processAlgorithm(self, progress):
self.getParameterValue(self.INPUT))
vlayerB = dataobjects.getObjectFromUri(
self.getParameterValue(self.INPUT2))
vproviderA = vlayerA.dataProvider()

geomType = vproviderA.wkbType()
geomType = vlayerA.wkbType()
fields = vector.combineVectorFields(vlayerA, vlayerB)
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
geomType, vproviderA.crs())
geomType, vlayerA.crs())
outFeat = QgsFeature()
index = vector.spatialindex(vlayerB)
selectionA = vector.features(vlayerA)
Expand Down
3 changes: 1 addition & 2 deletions python/plugins/processing/algs/qgis/JoinAttributes.py
Expand Up @@ -69,14 +69,13 @@ def processAlgorithm(self, progress):
field2 = self.getParameterValue(self.TABLE_FIELD_2)

layer = dataobjects.getObjectFromUri(input)
provider = layer.dataProvider()
joinField1Index = layer.fieldNameIndex(field)

layer2 = dataobjects.getObjectFromUri(input2)
joinField2Index = layer2.fieldNameIndex(field2)

outFields = vector.combineVectorFields(layer, layer2)
writer = output.getVectorWriter(outFields, provider.wkbType(),
writer = output.getVectorWriter(outFields, layer.wkbType(),
layer.crs())

# Cache attributes of Layer 2
Expand Down

0 comments on commit 45c8a09

Please sign in to comment.