from qgis.core import * from qgis.analysis import QgsNativeAlgorithms class ScrubLayer: def __init__(self, qgis_path, layer_path, layer_name): # Set the path to QGIS installation QgsApplication.setPrefixPath(qgis_path, True) # Initialize QGIS application qgs = QgsApplication([], False) qgs.initQgis() self.layer_path = layer_path self.layer_name = layer_name self.layer = self.load_layer() def load_layer(self): the_layer = QgsVectorLayer(self.layer_path, self.layer_name, 'ogr') if not the_layer.isValid(): raise ValueError(f'Failed to load layer {self.layer_name} from {self.layer_path}') else: QgsProject.instance().addMapLayer(the_layer) return the_layer @staticmethod def cleanup(): QgsApplication.exitQgis() if __name__ == '__main__': app_path = 'C:/Program Files/QGIS 3.34.1/apps/qgis' new_path = 'C:/Users/a_adli/PycharmProjects/hydroquebec_archetype_gispy/' \ 'data/test_data/mtl_north/test_north_mtl.shp' data_layer_name = 'mtl_north' handle_layer = ScrubLayer(app_path, new_path, 'mtl_north') print(handle_layer.layer.featureCount())