[GRASS-dev] [GRASS GIS] #2659: replace function bug in t.rast.mapcalc.py

GRASS GIS trac at osgeo.org
Mon Apr 20 06:55:23 PDT 2015


#2659: replace function bug in t.rast.mapcalc.py
----------------------------+-----------------------------------------------
 Reporter:  eosduero        |       Owner:  grass-dev@…              
     Type:  defect          |      Status:  new                      
 Priority:  normal          |   Milestone:  7.0.1                    
Component:  Python          |     Version:  7.0.0                    
 Keywords:  t.rast.mapcalc  |    Platform:  Unspecified              
      Cpu:  x86-32          |  
----------------------------+-----------------------------------------------

Comment(by eosduero):

 Other better posibility:

 {{{
 ...............
 from grass.exceptions import CalledModuleError
 import re

 ############################################################################

 def multiple_replace(string, rep_dict):
     pattern = re.compile("|".join([re.escape(k) for k in
 rep_dict.keys()]), re.M)
     return pattern.sub(lambda x: rep_dict[x.group(0)], string)


 ...................

             # Replace all dataset names with their map names of the
             # current time step
             plants = {}

             for j in range(len(map_matrix)):
                 if map_matrix[j][i] is None:
                     valid_maps = False
                     break
                 # Substitute the dataset name with the map name
                 #expr = expr.replace(id_list[j], map_matrix[j][i])
                 plants[id_list[j]] = map_matrix[j][i]
                 #msgr.message()

             expr = multiple_replace(expr, plants)

 }}}

-- 
Ticket URL: <http://trac.osgeo.org/grass/ticket/2659#comment:3>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list