Metadata-Version: 2.4
Name: k3zkutil
Version: 0.1.10
Summary: Helper functions for ZooKeeper with kazoo
Author-email: Zhang Yanpo <drdr.xp@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/pykit3/k3zkutil
Project-URL: Documentation, https://k3zkutil.readthedocs.io
Keywords: zookeeper,kazoo,distributed,lock,coordination
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: kazoo>=2.8.0
Requires-Dist: k3utfjson
Requires-Dist: k3net
Requires-Dist: k3txutil
Requires-Dist: k3confloader
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: k3ut; extra == "dev"
Requires-Dist: k3utdocker; extra == "dev"
Requires-Dist: k3thread; extra == "dev"
Provides-Extra: publish
Requires-Dist: build; extra == "publish"
Requires-Dist: twine; extra == "publish"
Requires-Dist: pk3; extra == "publish"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.5; extra == "docs"
Requires-Dist: mkdocs-material>=9.0; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.24; extra == "docs"
Dynamic: license-file

# k3zkutil

[![Action-CI](https://github.com/pykit3/k3zkutil/actions/workflows/python-package.yml/badge.svg)](https://github.com/pykit3/k3zkutil/actions/workflows/python-package.yml)
[![Documentation Status](https://readthedocs.org/projects/k3zkutil/badge/?version=stable)](https://k3zkutil.readthedocs.io/en/stable/?badge=stable)
[![Package](https://img.shields.io/pypi/pyversions/k3zkutil)](https://pypi.org/project/k3zkutil)

Some helper function to make life easier with zookeeper.

k3zkutil is a component of [pykit3] project: a python3 toolkit set.


Some helper function to make life easier with zookeeper.




# Install

```
pip install k3zkutil
```

# Synopsis

```python
import k3zkutil

"""
config.zk_acl      # (('xp', '123', 'cdrwa'), ('foo', 'bar', 'rw'))
config.zk_auth     # ('digest', 'xp', '123')
config.zk_hosts    # '127.0.0.1:2181'
config.zk_node_id  # 'web-01'
config.zk_lock_dir # 'lock/'
"""
with k3zkutil.ZKLock(
    "foo_lock",
    zkconf={
        "hosts": "127.0.0.1:2181",
        "acl": (("xp", "123", "cdrwa"),),
        "auth": ("digest", "xp", "123"),
        "node_id": "web-3",
        "lock_dir": "my_locks/",
    },
):
    print("do something")
lock = k3zkutil.ZKLock("foo")
try:
    for holder, ver in lock.acquire_loop(timeout=3):
        print("lock is currently held by:", holder, ver)

    print("lock is acquired")
except k3zkutil.LockTimeout:
    print('timeout to acquire "foo"')
```

#   Author

Zhang Yanpo (张炎泼) <drdr.xp@gmail.com>

#   Copyright and License

The MIT License (MIT)

Copyright (c) 2015 Zhang Yanpo (张炎泼) <drdr.xp@gmail.com>


[pykit3]: https://github.com/pykit3
