def __init__(self, fields=None, **fields_kwargs):
kwargs = utils.make_dict(fields, fields_kwargs)<EOL>if "<STR_LIT>" not in kwargs:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>self.options = {}<EOL>for key, val in kwargs.items():<EOL><INDENT>if hasattr(self, key):<EOL><INDENT>setattr(self, key, val)<EOL><DEDENT>else:<EOL><INDENT>self.options[key] = val<EOL><DEDENT><DEDENT>interface_module, interface_class = utils.get_objects(self.interface_name)<EOL>self.interface_class = interface_class<EOL>interface_class.configure(self)<EOL>
set all the values by passing them into this constructor, any unrecognized kwargs get put into .options

example --
    c = Connection(
        host="127.0.0.1",
        database="dbname",
        port=5000,
        some_random_thing="foo"
    )

    print c.port # 5000
    print c.options # {"some_random_thing": "foo"}