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
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']
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']
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']
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']
def test_pickle(self): du = DefaultUpdate() du.set_default('x', 0) dump = pickle.dumps(du, 2) pickle.loads(dump)
def test_pickle(self): du = DefaultUpdate() du.set_default('x', 0) dump = pickle.dumps(du,2) pickle.loads(dump)