BooleanConfigurator.py 2.8 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#MDANSE : Molecular Dynamics Analysis for Neutron Scattering Experiments
#------------------------------------------------------------------------------------------
#Copyright (C)
#2015- Eric C. Pellegrini Institut Laue-Langevin
#BP 156
#6, rue Jules Horowitz
#38042 Grenoble Cedex 9
#France
#pellegrini[at]ill.fr
#goret[at]ill.fr
#aoun[at]ill.fr
#
#This library is free software; you can redistribute it and/or
#modify it under the terms of the GNU Lesser General Public
#License as published by the Free Software Foundation; either
#version 2.1 of the License, or (at your option) any later version.
#
#This library is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#Lesser General Public License for more details.
#
#You should have received a copy of the GNU Lesser General Public
#License along with this library; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

''' 
Created on Mar 30, 2015

30
:author: Eric C. Pellegrini
31
32
33
34
35
36
37
'''

from MDANSE.Framework.Configurators.IConfigurator import IConfigurator, ConfiguratorError
    
class BooleanConfigurator(IConfigurator):
    """
    This Configurator allows to input a Boolean Value (True or False).
38
39
40
    
    The input value can be directly provided as a Python boolean or by the using the following (standard)
     representation of a boolean: 'true'/'false', 'yes'/'no', 'y'/'n', '1'/'0', 1/0
41
42
43
44
45
46
    """

    type = 'boolean'
    
    _default = False
    
47
48
    _shortCuts = {True  : True, "true"  : True , "yes" : True, "y" : True, "1" : True, 1 : True,
                  False : False, "false" : False, "no"  : False, "n" : False, "0" : False, 0 : False}
49
    
50
    def configure(self, value):
51
52
53
54
55
56
57
58
59
60
        '''
        Configure an input value. 
        
        The value must be one of True/False, 'true'/'false', 'yes'/'no', 'y'/'n', '1'/'0', 1/0.
        
        :param configuration: the current configuration
        :type configuration: a MDANSE.Framework.Configurable.Configurable object
        :param value: the input value
        :type value: one of True/False, 'true'/'false', 'yes'/'no', 'y'/'n', '1'/'0', 1/0
        '''
61

62
63
        if not self._shortCuts.has_key(value):
            raise ConfiguratorError('the input value can not be interpreted as a boolean', self)
64
                        
65
66
        self["value"] = self._shortCuts[value]
                                                
67
    def get_information(self):
68
69
70
71
72
73
        '''
        Returns some informations about this configurator.
        
        :return: the information about this configurator
        :rtype: str
        '''
74
75
        
        return "Value: %r" % self['value']