qgis / QGIS

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
https://qgis.org
GNU General Public License v2.0
10.36k stars 2.98k forks source link

[Processing] Various algorithms: "DeprecationWarning: QgsField constructor is deprecated" #57920

Closed agiudiceandrea closed 2 days ago

agiudiceandrea commented 2 months ago

What is the bug or the crash?

The following warning are printed in the "Python warning" tab of the Log Messages panel when the "Check validity" (qgis:checkvalidity) processing algorithm (and probably many other ones) is executed:

2024-06-28T08:49:49     WARNING    warning:C:\OSF9FA~1/apps/qgis/./python/plugins\processing\algs\qgis\CheckValidity.py:137: DeprecationWarning: QgsField constructor is deprecated
              invalid_fields.append(QgsField('_errors', QVariant.String, 'string', 255))

             traceback: File "C:\OSF9FA~1/apps/qgis/./python/plugins\processing\algs\qgis\CheckValidity.py", line 122, in processAlgorithm
              return self.doCheck(
              File "C:\OSF9FA~1/apps/qgis/./python/plugins\processing\algs\qgis\CheckValidity.py", line 137, in doCheck
              invalid_fields.append(QgsField('_errors', QVariant.String, 'string', 255))

2024-06-28T08:49:49     WARNING    warning:C:\OSF9FA~1/apps/qgis/./python/plugins\processing\algs\qgis\CheckValidity.py:143: DeprecationWarning: QgsField constructor is deprecated
              error_fields.append(QgsField('message', QVariant.String, 'string', 255))

             traceback: File "C:\OSF9FA~1/apps/qgis/./python/plugins\processing\algs\qgis\CheckValidity.py", line 122, in processAlgorithm
              return self.doCheck(
              File "C:\OSF9FA~1/apps/qgis/./python/plugins\processing\algs\qgis\CheckValidity.py", line 143, in doCheck
              error_fields.append(QgsField('message', QVariant.String, 'string', 255))

Steps to reproduce the issue

  1. execute the "Check validity" processing algorithm

Versions

QGIS version 3.38.0-Grenoble QGIS code revision 37aa6188bc Qt version 5.15.13 Python version 3.12.4 GDAL/OGR version 3.9.0 PROJ version 9.4.0 EPSG Registry database version v11.004 (2024-02-24) GEOS version 3.12.2-CAPI-1.18.2 SQLite version 3.45.1 PDAL version 2.6.3 PostgreSQL client version 16.2 SpatiaLite version 5.1.0 QWT version 6.2.0 QScintilla2 version 2.14.1 OS version Windows 10 Version 1903

Active Python plugins db_manager 0.1.20 grassprovider 2.12.99 MetaSearch 0.3.6 processing 2.12.99

Supported QGIS version

New profile

Additional context

Related to https://github.com/qgis/QGIS/pull/57272.

mbukowski commented 1 month ago

I experienced very similar behaviour for instance when running qgis:exportaddgeometrycolumns algorithm file: ./python/plugins\processing\algs\qgis\ExportGeometryInfo.py:106 file: ./python/plugins\processing\algs\qgis\ExportGeometryInfo.py:107

This piece of code is still using old QGSField constructor