Пример #1
0
 def test_parse(self):
     self.assertEqual(Size.parse('', ''), None)
     self.assertEqual(Size.parse('', 'FULL'), None)
     self.assertEqual(Size.parse('HALF', ''), None)
     self.assertEqual(Size.parse('HALF', 'FULL'), self.HALF_FULL)
     self.assertEqual(Size.parse('HALF', '1'), self.HALF_FULL)
     self.assertEqual(Size.parse('HALF', '1.0'), self.HALF_FULL)
     self.assertEqual(Size.parse('HALF', 'HALF*2'), self.HALF_FULL)
     self.assertEqual(Size.parse('HALF', 'QUARTER*2+HALF'), self.HALF_FULL)
     self.assertEqual(Size.parse('1.0/2', '0.1*6-0.1+HALF'), self.HALF_FULL)
     self.assertEqual(Size.parse('HALF, FULL', '1'), Size([0.5, 1], 1))
     self.assertRaises(ValueError, Size.parse, 'tttgf', '0')
Пример #2
0
    def __init__(self, config, section, key):
        self.key = key
        """Section key or key modifier."""
        data = dict(config._config.items(section))
        self.ignored_actions = set()
        """List of ignored actions."""
        if 'ignore_actions' in data:
            ignored_actions = data.get('ignore_actions', '').split(', ')
            self.ignored_actions.update(ignored_actions)
        self.ignored_actions.update(config.ignored_actions)
        if 'grid' in self.ignored_actions:
            self.ignored_actions.update(['grid_width', 'grid_height'])

        self.gravity = Gravity.parse(data.get('gravity', ''))
        """Gravity."""
        self.direction = Gravity.parse(data.get('direction', ''))
        """Direction of window movement."""
        if not self.direction:
            self.direction = self.gravity
        self.position  = Gravity.parse(data.get('position', ''))
        """Position position on :ref:`workarea`."""
        if not self.position:
            self.position = self.gravity
        elif self.position and not self.gravity:
            self.gravity = self.position
        self.size = Size.parse(data.get('widths', ''), 
                               data.get('heights', ''))
        """Window size(s)."""
Пример #3
0
 def test_area(self):
     self.assertEqual(Size.parse('HALF', 'FULL').area, 0.5)
     self.assertEqual(Size.parse('HALF', '1').area, 0.5)
     self.assertEqual(Size.parse('HALF', '1.0').area, 0.5)
     self.assertEqual(Size.parse('HALF', 'HALF*2').area, 0.5)
     self.assertEqual(Size.parse('HALF', 'QUARTER*2+HALF').area, 0.5)
     self.assertEqual(Size.parse('1.0/2', '0.1*6-0.1+HALF').area, 0.5)
     self.assertEqual(Size(10, 10).area, 100)
     try:  # assertRaises doesn't work with properties
         Size.parse('HALF, FULL', '1').area
     except ValueError:  # "Size.area doesn't support multiple dimensions"
         pass
     else:
         raise AssertionError
Пример #4
0
def size_callback(option, opt_str, value, parser):
    """Parse width, height, size options to Size."""
    largs_callback(option, opt_str, value, parser)
    # TODO: allow relative size, and absolute size
    try:
        if option.dest == 'width':
            width = Size.parse_value(value)
            size = Size(width, 0)
        elif option.dest == 'height':
            height = Size.parse_value(value)
            size = Size(0, height)
        elif option.dest == 'size':
            size = Size.parse(*value)
    except (ValueError, TypeError):
        msg = 'option %s: error parsing Size value: %s' % (opt_str, value)
        raise optparse.OptionValueError(msg)
    setattr(parser.values, option.dest, size)
Пример #5
0
    def __init__(self, config, section, key):
        self.key = key
        data = dict(config._config.items(section))
        self.ignored = set()
        if 'ignore_actions' in data:
            self.ignored.update(data.get('ignore_actions', '').split(', '))
        self.ignored.update(config.ignored)
        if 'grid' in self.ignored:
            self.ignored.update(['grid_width', 'grid_height'])

        self.gravity = Gravity.parse(data.get('gravity', ''))
        self.direction = Gravity.parse(data.get('direction', ''))
        if not self.direction:
            self.direction = self.gravity
        self.position = Gravity.parse(data.get('position', ''))
        if not self.position:
            self.position = self.gravity
        elif self.position and not self.gravity:
            self.gravity = self.position
        self.size = Size.parse(data.get('widths', ''), data.get('heights', ''))
Пример #6
0
    def __init__(self, config, section, key):
        self.key = key
        data = dict(config._config.items(section))
        self.ignored = set()
        if 'ignore_actions' in data:
            self.ignored.update(data.get('ignore_actions', '').split(', '))
        self.ignored.update(config.ignored)
        if 'grid' in self.ignored:
            self.ignored.update(['grid_width', 'grid_height'])

        self.gravity = Gravity.parse(data.get('gravity', ''))
        self.direction = Gravity.parse(data.get('direction', ''))
        if not self.direction:
            self.direction = self.gravity
        self.position  = Gravity.parse(data.get('position', ''))
        if not self.position:
            self.position = self.gravity
        elif self.position and not self.gravity:
            self.gravity = self.position
        self.size = Size.parse(data.get('widths', ''), 
                               data.get('heights', ''))