source: cows/trunk/cows/service/imps/data_reader_geoplot_backend/slab_options_parser.py @ 6102

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/cows/trunk/cows/service/imps/data_reader_geoplot_backend/slab_options_parser.py@6102
Revision 6102, 2.2 KB checked in by pnorton, 11 years ago (diff)

Removed the old modis data reader class. Also modified COWS to pass the style parameter to the GetLegendImage? methods on the layer objects.

Line 
1import logging
2import mock
3
4from matplotlib import cm
5from cows.service.imps.csmlbackend.config import config
6
7log = logging.getLogger(__name__)
8
9class SlabOptionsParser(object):
10   
11    def __init__(self, slabOptions, renderOptions):
12       
13        self._slabOptionsLookup = {}
14        for option in slabOptions:
15            self._slabOptionsLookup[option.name.lower()] = option
16       
17       
18       
19        self._renderOptions = {}
20        for k, v in renderOptions.items():
21            self._renderOptions[k.lower()] = v
22       
23    def getOption(self, optionName):
24        return self._getOption(optionName)
25   
26    def _getOption(self, optionName):
27       
28        name = optionName.lower()
29
30        if name not in self._slabOptionsLookup:
31            log.warning("Unknown option %s received, returning None" % (name,))
32            return None
33       
34        value = None;
35        if name in self._renderOptions:
36            value = self._getOptionFromDict(name)
37       
38        if value == None:
39            value = self._getDefaultForOption(name)
40       
41        return value
42   
43    def _getOptionFromDict(self, optionName):
44       
45        value = None
46       
47        try:
48            stringValue = self._renderOptions[optionName]
49            type = self._slabOptionsLookup[optionName].type
50            log.debug("optionName = %s, stringValue = %s" % (optionName, stringValue,))
51           
52             
53           
54            if type == bool :
55                value = stringValue.lower() == 'true'
56            else:
57                value = type(stringValue)
58               
59            renderOpt = self._slabOptionsLookup[optionName]
60           
61            if not renderOpt.options is None:
62                if value not in renderOpt.options:
63                    log.debug("value %s not in options %s" % (value, renderOpt.options,))
64                    value = None
65
66        except:
67            log.exception("Error getting option %s from renderOptions=%s" % (optionName, self._renderOptions))
68            value = None
69           
70        return value
71
72    def _getDefaultForOption(self, optionName):
73        return self._slabOptionsLookup[optionName].default
74       
Note: See TracBrowser for help on using the repository browser.