Пример #1
0
def parse(self, in_args):
    params = DefaultUpdate()
    # add default values
    for opt in self.options:
        params.set_default(opt.name, opt.default)
        
        # parse options using getopt
    try:
        opts, args = getopt.gnu_getopt(in_args, self.get_short(),
                                   self.get_long())
    except Exception as error:
        msg = "Error parsing %s: %s (parsing options: %s)"
        raise CmdParseError(msg % (self._type, str(error), in_args))
        
    # update params with values from command line
    for opt, val in opts:
        this, inverse = self.get_option(opt)
        if this.type is bool:
            params[this.name] = not inverse
        elif this.type is list:
            params[this.name].append(val)
        else:
            try:
                params[this.name] = this.type(val)
            except ValueError as exception:
                msg = "Error parsing parameter '%s' %s.\n%s\n"
                raise CmdParseError(msg % (this.name, this.type,
                                           str(exception)))
                
    return params, args
Пример #2
0
    def test(self):
        du = DefaultUpdate()

        du.set_default('a', 0)
        du.set_default('b', 0)

        assert 0 == du['a']
        assert 0 == du['b']

        du['b'] = 1
        du.update_defaults({'a': 2, 'b': 2})
        assert 2 == du['a']
        assert 1 == du['b']
Пример #3
0
    def test(self):
        du = DefaultUpdate()

        du.set_default('a', 0)
        du.set_default('b', 0)

        assert 0 == du['a']
        assert 0 == du['b']

        du['b'] = 1
        du.update_defaults({'a':2, 'b':2})
        assert 2 == du['a']
        assert 1 == du['b']
Пример #4
0
    def test(self):
        du = DefaultUpdate()

        du.set_default('a', 0)
        du.set_default('b', 0)

        assert 0 == du['a']
        assert 0 == du['b']

        # set b with non-default value
        du['b'] = 1
        # only a is update
        du.update_defaults({'a': 2, 'b': 2})
        assert 2 == du['a']
        assert 1 == du['b']

        # default for `a` can be updated again
        du.update_defaults({'a': 3})
        assert 3 == du['a']
Пример #5
0
    def test(self):
        du = DefaultUpdate()

        du.set_default('a', 0)
        du.set_default('b', 0)

        assert 0 == du['a']
        assert 0 == du['b']

        # set b with non-default value
        du['b'] = 1
        # only a is update
        du.update_defaults({'a':2, 'b':2})
        assert 2 == du['a']
        assert 1 == du['b']

        # default for `a` can be updated again
        du.update_defaults({'a':3})
        assert 3 == du['a']
Пример #6
0
 def test_pickle(self):
     du = DefaultUpdate()
     du.set_default('x', 0)
     dump = pickle.dumps(du, 2)
     pickle.loads(dump)
Пример #7
0
 def test_pickle(self):
     du = DefaultUpdate()
     du.set_default('x', 0)
     dump = pickle.dumps(du,2)
     pickle.loads(dump)