/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/Model/range.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/Model/range.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 901 by jonathan, Wed May 14 11:15:55 2003 UTC revision 962 by jonathan, Wed May 21 17:23:39 2003 UTC
# Line 16  __version__ = "$Revision$" Line 16  __version__ = "$Revision$"
16  # $Id$  # $Id$
17    
18  import re  import re
19    import types
20    
21  _inf = float('1e1000')   # FIXME: hack for infinity  _inf = float('1e1000')   # FIXME: hack for infinite
22    
23  class Range:  class Range:
24    
# Line 35  class Range: Line 36  class Range:
36              self.SetRange(str(range))              self.SetRange(str(range))
37          elif range in [None, '']:          elif range in [None, '']:
38              self.SetRange(']-oo;oo[')              self.SetRange(']-oo;oo[')
39            elif type(range) == types.TupleType:
40                if (len(range) == 4 and range[0] in ['[', ']']
41                    and range[3] in ['[', ']']):
42                    self._left = range[0]
43                    self._begin = self.float(range[1])
44                    self._end = self.float(range[2])
45                    self._right = range[3]
46                    if (self._begin > self._end or
47                        (self._begin == self._end and
48                         (self._left != '[' or self._right != ']'))):
49                        raise ValueError("illegal range: %s" % (range,))
50                else:
51                    raise ValueError("can't parse range: %r" % (range,))
52          else:          else:
53              self._range = range              self._range = range
54              match = self.parse_range.match(self._range)              match = self.parse_range.match(self._range)
55              if match:              if match:
56                  self._left = match.group('left')                  self.SetRange((match.group('left'),
57                  self._begin = self.float(match.group('begin'))                                match.group('begin'),
58                  self._end = self.float(match.group('end'))                                match.group('end'),
59                  self._right = match.group('right')                                match.group('right')))
60              else:              else:
61                  raise ValueError("can't parse range: %s" % range)                  raise ValueError("can't parse range: %s" % (range,))
             if (self._begin > self._end or  
                 (self._begin == self._end and  
                  (self._left != '[' or self._right != ']'))):  
                 raise ValueError("illegal range: %s" % range)  
62    
63      def GetRange(self):      def GetRange(self):
64          """return internal representation of range          """return internal representation of range
# Line 78  class Range: Line 88  class Range:
88          elif value == -_inf:          elif value == -_inf:
89              return '-oo'              return '-oo'
90          else:          else:
91              return "%g" % value              return "%g" % (value,)
92    
93      def string(self, range):      def string(self, range):
94          """convert internal representation to string"""          """convert internal representation to string"""

Legend:
Removed from v.901  
changed lines
  Added in v.962

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26