diff flys-backend/contrib/shpimporter/importer.py @ 3655:8654e4480fc6

Shape importer: added command line option dry_run to supress database transactions. flys-backend/trunk@5235 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 22 Aug 2012 13:04:05 +0000
parents 59ca5dab2782
children c37effda3655
line wrap: on
line diff
--- a/flys-backend/contrib/shpimporter/importer.py	Wed Aug 22 11:55:55 2012 +0000
+++ b/flys-backend/contrib/shpimporter/importer.py	Wed Aug 22 13:04:05 2012 +0000
@@ -1,4 +1,5 @@
 import ogr, osr
+import shpimporter
 
 class Importer:
 
@@ -47,22 +48,21 @@
 
 
     def walkOverShapes(self, shape):
-        print "---"
         (name, path) = shape
         if not self.isShapeRelevant(name, path):
-            print "Skip shapefile '%s'" % name
+            shpimporter.INFO("Skip shapefile '%s'" % path)
             return
 
         shp = ogr.Open(shape[1])
         if shp is None:
-            print "Shapefile '%s' could not be opened!" % path
+            shpimporter.ERROR("Shapefile '%s' could not be opened!" % path)
             return
 
-        print "Opened shapefile '%s'" % path
+        shpimporter.INFO("Processing shapefile '%s'" % path)
         srcLayer = shp.GetLayerByName(name)
 
         if srcLayer is None:
-            print "Layer '%s' was not found!" % name
+            shpimporter.ERROR("Layer '%s' was not found!" % name)
             return
 
         return self.shape2Database(srcLayer, name, path)
@@ -73,7 +73,7 @@
         src_srs  = geometry.GetSpatialReference()
 
         if src_srs is None:
-            print "Error: No source SRS given! No transformation possible!"
+            shpimporter.Error("No source SRS given! No transformation possible!")
             return feat
 
         transformer = osr.CoordinateTransformation(src_srs, self.dest_srs)
@@ -87,15 +87,15 @@
         destLayer = table.GetLayerByName(self.getTablename())
 
         if srcLayer is None:
-            print "Shapefile is None!"
+            shpimporter.ERROR("Shapefile is None!")
             return -1
 
         if destLayer is None:
-            print "No destination layer given!"
+            shpimporter.ERROR("No destination layer given!")
             return -1
 
         count = srcLayer.GetFeatureCount()
-        print "Try to add %i features to database." % count
+        shpimporter.DEBUG("Try to add %i features to database." % count)
 
         srcLayer.ResetReading()
 
@@ -123,7 +123,7 @@
                     newFeat = self.transform(newFeat)
                     res = destLayer.CreateFeature(newFeat)
                     if res is None or res > 0:
-                        print "Error while inserting feature: %r" % res
+                        shpimporter.Error("Unable to insert feature: %r" % res)
                     else:
                         success = success + 1
                 else:
@@ -131,14 +131,16 @@
             else:
                 unsupported = unsupported + 1
 
-        print "Inserted %i features" % success
-        print "Failed to create %i features" % creationFailed
-        print "Found %i unsupported features" % unsupported
+        shpimporter.INFO("Inserted %i features" % success)
+        shpimporter.INFO("Failed to create %i features" % creationFailed)
+        shpimporter.INFO("Found %i unsupported features" % unsupported)
 
         try:
+            if self.config.dry_run > 0:
+                return geomType
             destLayer.CommitTransaction()
         except e:
-            print "Exception while committing transaction."
+            shpimporter.ERROR("Exception while committing transaction.")
 
         return geomType
 

http://dive4elements.wald.intevation.org