[GRASS-dev] [GRASS-SVN] r66014 - grass/trunk/lib/python/temporal

Markus Neteler neteler at osgeo.org
Sat Sep 5 09:39:36 PDT 2015


Hi Soeren,

ich habe versucht, den relevanten Teil Deines fixes zu backporten:

https://trac.osgeo.org/grass/changeset/66115

Ich hoffe, dass es richtig ist..

Gruesse
Markus

On Tue, Aug 25, 2015 at 12:13 PM,  <svn_grass at osgeo.org> wrote:
> Author: huhabla
> Date: 2015-08-25 03:13:30 -0700 (Tue, 25 Aug 2015)
> New Revision: 66014
>
> Modified:
>    grass/trunk/lib/python/temporal/c_libraries_interface.py
>    grass/trunk/lib/python/temporal/core.py
>    grass/trunk/lib/python/temporal/space_time_datasets.py
> Log:
> temporal library: Fixed wrong mapset access method
>
>
> Modified: grass/trunk/lib/python/temporal/c_libraries_interface.py
> ===================================================================
> --- grass/trunk/lib/python/temporal/c_libraries_interface.py    2015-08-25 10:03:10 UTC (rev 66013)
> +++ grass/trunk/lib/python/temporal/c_libraries_interface.py    2015-08-25 10:13:30 UTC (rev 66014)
> @@ -151,15 +151,17 @@
>
>         :returns: Names of available mapsets as list of strings
>      """
> -
> +
>      count = 0
>      mapset_list = []
>      try:
> +        # Initilaize the accessable mapset list, this is bad C design!!!
> +        libgis.G_get_mapset_name(0)
>          mapsets = libgis.G_get_available_mapsets()
>          while mapsets[count]:
>              char_list = ""
>              mapset = mapsets[count]
> -            if libgis.G_mapset_permissions(mapset) > 0:
> +            if libgis.G_mapset_permissions(mapset) == 1 and libgis.G_is_mapset_in_search_path(mapset) == 1:
>                  c = 0
>                  while mapset[c] != "\x00":
>                      char_list += mapset[c]
> @@ -758,7 +760,7 @@
>      CALLBACK.argtypes = c_void_p
>
>      cerror_handler = CALLBACK(error_handler)
> -
> +
>      libgis.G_add_error_handler(cerror_handler, None)
>
>      # Crerate the function array
> @@ -914,17 +916,17 @@
>             >>> mapset = ciface.get_mapset()
>             >>> location = ciface.get_location()
>             >>> gisdbase = ciface.get_gisdbase()
> -
> +
>             >>> ciface.fatal_error()
>             Traceback (most recent call last):
>                 raise FatalError(message)
>             FatalError: Fatal error
> -
> +
>             >>> ciface.fatal_error()
>             Traceback (most recent call last):
>                 raise FatalError(message)
>             FatalError: Fatal error
> -
> +
>             >>> ciface.fatal_error()
>             Traceback (most recent call last):
>                 raise FatalError(message)
> @@ -950,7 +952,7 @@
>          self.start_server()
>          self.start_checker_thread()
>          self.stopThread = False
> -
> +
>      def start_checker_thread(self):
>          if self.checkThread is not None and self.checkThread.is_alive():
>              self.stop_checker_thread()
> @@ -959,13 +961,13 @@
>          self.checkThread.daemon = True
>          self.stopThread = False
>          self.checkThread.start()
> -
> +
>      def stop_checker_thread(self):
>          self.threadLock.acquire()
>          self.stopThread = True
>          self.threadLock.release()
>          self.checkThread.join(None)
> -
> +
>      def thread_checker(self):
>          """Check every 200 micro seconds if the server process is alive"""
>          while True:
> @@ -989,7 +991,7 @@
>
>      def check_server(self):
>          self._check_restart_server()
> -
> +
>      def _check_restart_server(self):
>          """Restart the server if it was terminated
>          """
> @@ -1351,7 +1353,7 @@
>
>      def fatal_error(self, mapset=None):
>          """Generate a fatal error in libgis.
> -
> +
>              This function is only for testing purpose.
>          """
>          self.check_server()
> @@ -1360,7 +1362,7 @@
>          return self.safe_receive("Fatal error")
>
>      def safe_receive(self, message):
> -        """Receive the data and throw an FatalError exception in case the server
> +        """Receive the data and throw an FatalError exception in case the server
>             process was killed and the pipe was closed by the checker thread"""
>          try:
>              ret = self.client_conn.recv()
>
> Modified: grass/trunk/lib/python/temporal/core.py
> ===================================================================
> --- grass/trunk/lib/python/temporal/core.py     2015-08-25 10:03:10 UTC (rev 66013)
> +++ grass/trunk/lib/python/temporal/core.py     2015-08-25 10:13:30 UTC (rev 66014)
> @@ -750,7 +750,7 @@
>      stvds_tables_sql = stds_tables_template_sql.replace("STDS", "stvds")
>      str3ds_tables_sql = stds_tables_template_sql.replace("STDS", "str3ds")
>
> -    msgr.message(_("Creating temporal database: %s" % (tgis_database_string)))
> +    msgr.message(_("Creating temporal database: %s" % (str(tgis_database_string))))
>
>      if tgis_backend == "sqlite":
>          # We need to create the sqlite3 database path if it does not exists
> @@ -860,7 +860,7 @@
>              driver,  dbstring = self.tgis_mapsets[mapset]
>
>              if dbstring not in self.unique_connections.keys():
> -                self.unique_connections[dbstring] = DBConnection(backend=driver,
> +                self.unique_connections[dbstring] = DBConnection(backend=driver,
>                                                                   dbstring=dbstring)
>
>              self.connections[mapset] = self.unique_connections[dbstring]
> @@ -1025,7 +1025,7 @@
>
>      def __init__(self, backend=None, dbstring=None):
>          """ Constructor of a database connection
> -
> +
>              param backend:The database backend sqlite or pg
>              param dbstring: The database connection string
>          """
> @@ -1071,7 +1071,7 @@
>          """Connect to the DBMI to execute SQL statements
>
>              Supported backends are sqlite3 and postgresql
> -
> +
>              param dbstring: The database connection string
>          """
>          # Connection in the current mapset
>
> Modified: grass/trunk/lib/python/temporal/space_time_datasets.py
> ===================================================================
> --- grass/trunk/lib/python/temporal/space_time_datasets.py      2015-08-25 10:03:10 UTC (rev 66013)
> +++ grass/trunk/lib/python/temporal/space_time_datasets.py      2015-08-25 10:13:30 UTC (rev 66014)
> @@ -88,7 +88,7 @@
>              >>> rmap.get_temporal_extent_as_tuple()
>              (datetime.datetime(2001, 1, 1, 0, 0), datetime.datetime(2012, 1, 1, 0, 0))
>              >>> rmap.get_name()
> -            'strds_map_test_case'
> +            u'strds_map_test_case'
>              >>> rmap.get_mapset() == mapset
>              True
>              >>> rmap.get_temporal_type()
> @@ -407,7 +407,7 @@
>              >>> r3map.get_temporal_extent_as_tuple()
>              (datetime.datetime(2001, 1, 1, 0, 0), datetime.datetime(2012, 1, 1, 0, 0))
>              >>> r3map.get_name()
> -            'str3ds_map_test_case'
> +            u'str3ds_map_test_case'
>              >>> r3map.get_mapset() == mapset
>              True
>              >>> r3map.get_temporal_type()
> @@ -737,7 +737,7 @@
>              >>> vmap.get_temporal_extent_as_tuple()
>              (datetime.datetime(2001, 1, 1, 0, 0), datetime.datetime(2012, 1, 1, 0, 0))
>              >>> vmap.get_name()
> -            'stvds_map_test_case'
> +            u'stvds_map_test_case'
>              >>> vmap.get_mapset() == mapset
>              True
>              >>> vmap.get_temporal_type()
>
> _______________________________________________
> grass-commit mailing list
> grass-commit at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-commit


More information about the grass-dev mailing list