Add verb to put_dict so it can use CAS to only create the keys in the mapping if they do not exist yet.
In [2]: d = {'k1': 'v1', 'kv2': 'v2'} In [3]: c = Connection() In [4]: c.put_dict(d, verb='cas') In [5]: c.put_dict(d, verb='cas') HTTPError: HTTP Error 409: Conflict
This makes it more sensible to use conn.get_meta. otherwise you'd have to manually specify the kv-less default endpoint and pass 'kv/' to all kv items you'd want to interact with. See [20](https://github.com/vdloo/consul-kv/pull/20)
The transaction default endpoint is now `http://localhost:8500/v1/txn`. Note that there is no trailing slash for this endpoint.