Ejemplo n.º 1
0
    def read_project(self,
                     uri: str,
                     strict: Optional[bool] = None) -> QgsProject:
        """ Read project from path

            May be used by protocol-handlers to instanciate project
            from uri.
        """
        LOGGER.debug("Reading Qgis project %s", uri)
        project = self._create_project()

        readflags = QgsProject.ReadFlags()
        if self._trust_layer_metadata:
            readflags |= QgsProject.FlagTrustLayerMetadata
        if self._disable_getprint:
            readflags |= QgsProject.FlagDontLoadLayouts
        badlayerh = BadLayerHandler()
        project.setBadLayerHandler(badlayerh)
        if not project.read(uri, readflags):
            raise RuntimeError(f"Failed to read Qgis project {uri}")

        strict = self._strict_check if strict is None else strict
        if strict and not badlayerh.validateLayers(project):
            raise StrictCheckingError

        self.prepare_project(project)
        return project
Ejemplo n.º 2
0
    def read_project(self, path: str) -> QgsProject:
        """ Read project from path

            May be used by protocol-handlers to instanciate project
            from path.
        """
        LOGGER.debug("Reading Qgis project %s", path)
        project = self._create_project()

        readflags = QgsProject.ReadFlags()
        if self._trust_layer_metadata:
            readflags |= QgsProject.FlagTrustLayerMetadata
        if self._disable_getprint:
            readflags |= QgsProject.FlagDontLoadLayouts 

        badlayerh = BadLayerHandler()
        project.setBadLayerHandler(badlayerh)
        project.read(path,  readflags)
        if self._strict_check and not badlayerh.validatLayers(project):
            raise StrictCheckingError
        return project