def clean(self): if self.qgisProjectLayer.layerType in [ Layer.TYPES.gdal, Layer.TYPES.ogr, Layer.TYPES.raster ]: if self.qgisProjectLayer.layerType != Layer.TYPES.gdal or not isXML( self.qgisProjectLayer.datasource): if not os.path.exists( self.qgisProjectLayer.datasource.split('|')[0]): err = ugettext('Missing data file for layer {} '.format( self.qgisProjectLayer.name)) err += ugettext('which should be located at {}'.format( self.qgisProjectLayer.datasource)) raise QgisProjectLayerException(err)
def _getDataOrigname(self): if self.layerType == Layer.TYPES.ogr: name = os.path.splitext(os.path.basename(self.datasource))[0] elif self.layerType == Layer.TYPES.gdal: if isXML(self.datasource): name = self.name else: name = os.path.splitext(os.path.basename(self.datasource))[0] elif self.layerType == Layer.TYPES.postgres or self.layerType == Layer.TYPES.spatialite: dts = datasource2dict(self.datasource) name = dts['table'].split('.')[-1].replace("\"", "") elif self.layerType ==Layer.TYPES.wms: dts = QueryDict(self.datasource) name = dts['layers'] else: name = self.qgisProjectLayerTree.find('layername').text return name
def clean(self): if self.qgisProjectLayer.layerType in [ Layer.TYPES.gdal, Layer.TYPES.ogr, Layer.TYPES.raster] and not isXML(self.qgisProjectLayer.datasource): # tray PostGis raster layer if self.qgisProjectLayer.datasource.startswith("PG:"): # try to open postgis raster with gdal raster = gdal.Open(self.qgisProjectLayer.datasource) if raster is None: err = ugettext('Cannot connect to Postgis raster layer {} '.format( self.qgisProjectLayer.name)) raise QgisProjectLayerException(err) else: if not os.path.exists(self.qgisProjectLayer.datasource.split('|')[0]): err = ugettext('Missing data file for layer {} '.format( self.qgisProjectLayer.name)) err += ugettext('which should be located at {}'.format( self.qgisProjectLayer.datasource)) raise QgisProjectLayerException(err)