QGIS API compatibility layer