Home | Trees | Indices | Help |
|
---|
|
1 # This program is free software: you can redistribute it and/or modify 2 # it under the terms of the GNU General Public License as published by 3 # the Free Software Foundation, either version 3 of the License, or 4 # (at your option) any later version. 5 # 6 # This program is distributed in the hope that it will be useful, 7 # but WITHOUT ANY WARRANTY; without even the implied warranty of 8 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 9 # GNU General Public License for more details. 10 # 11 # You should have received a copy of the GNU General Public License 12 # along with this program. If not, see <http://www.gnu.org/licenses/>. 13 14 from Convert import Converter 15 16 # An example of writing a (rather advanced) converter module. Please see also 17 # the documentation of the converter class if you haven't done so. 18 19 # Every converter class MUST contain:21 """A converter which converts numbers between decimal, hexadecimal and octal 22 bases.""" 23 24 # __name__: the name of the class 25 __name__ = 'BaseConverter' 26 # __title__: a short description to be shown in the menu and Options dialog 27 __title__ = 'Dec / Hex / Oct' 28 # other meta-info - only for those who read the sources :-) 29 # not currently shown anywhere, but this can change in near future 30 __author__ = 'Vasek Potocek' 31 __version__ = '0.1' 32 33 # the number of fields and their captions 34 num_fields = 3 35 field_names = ['Dec', 'Hex', 'Oct'] 36 37 # filter_key function - see ConvertScreenlet.py for details6239 if self.active_field == 0: 40 return key in '0 1 2 3 4 5 6 7 8 9'.split() 41 elif self.active_field == 1: 42 return key in '0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f'.split() 43 elif self.active_field == 2: 44 return key in '0 1 2 3 4 5 6 7'.split()45 46 # convert function - see ConvertScreenlet.py for details48 bases = [10, 16, 8] 49 # read the current value in active field 50 val = int(self.values[self.active_field], bases[self.active_field]) 51 # compute self.values in all fields 52 self.values[0] = str(val) 53 # strip off leading "0x" and make uppercase 54 self.values[1] = hex(val)[2:].upper() 55 self.values[2] = oct(val)[1:] 56 if not self.values[2]: # this can happen in oct 57 self.values[2] = '0' 58 # strip off trailing 'L' if the self.value falls into long 59 for i in range(3): 60 if self.values[i][-1] == 'L': 61 self.values[i] = self.values[i][:-1]
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Wed Jan 4 16:58:27 2012 | http://epydoc.sourceforge.net |