## Python Lock library for ETCD 2.0
Since ETCD 0.4, all [the built in modules were removed](https://groups.google.com/d/msg/etcd-dev/ubcPWuL8wSg/7GeaxSHhIb0J), including the locking module. The API still provides an atomic compare-and-swap method to implement locking, thus providing the core functionality to create semaphores and mutexes. This library is built on top of that, matching the API that was in [python-etcd](https://github.com/jplana/python-etcd) before it was removed as much as possible.
[](https://circleci.com/gh/appuri/python-etcd-lock)
#### Simple Usage
```python
import etcd
from etcdlock import Lock
lock = Lock(etcd.Client(), 'path/to/my/key')
while lock
# lock is acquired
# lock will renew itself by default until released
# do work
request = ....
# check if we still have the lock
if lock.is_locked() is False:
return
```
#### Explicit Usage
```python
import etcd
from etcdlock import Lock
client = client = etcd.Client(host='api.example.com', protocol='https', port=443, version_prefix='/etcd')
lock = Lock(client, 'path/to/my/key', ttl=30, renewSecondsPrior=)
if lock.acquire(timeout=20):
t = Thread(target=someheavywork)
t.run()
t.wait()
lock.renew()
# some other work
lock.release() # not recommended, use a context manager
else
# failed to acquire the lock in 20 seconds
pass
```
Please see [the tests](https://github.com/appuri/python-etcd-lock/blob/master/tests/lock_tests.py) while the documentation is lacking, thanks.
Since ETCD 0.4, all [the built in modules were removed](https://groups.google.com/d/msg/etcd-dev/ubcPWuL8wSg/7GeaxSHhIb0J), including the locking module. The API still provides an atomic compare-and-swap method to implement locking, thus providing the core functionality to create semaphores and mutexes. This library is built on top of that, matching the API that was in [python-etcd](https://github.com/jplana/python-etcd) before it was removed as much as possible.
[](https://circleci.com/gh/appuri/python-etcd-lock)
#### Simple Usage
```python
import etcd
from etcdlock import Lock
lock = Lock(etcd.Client(), 'path/to/my/key')
while lock
# lock is acquired
# lock will renew itself by default until released
# do work
request = ....
# check if we still have the lock
if lock.is_locked() is False:
return
```
#### Explicit Usage
```python
import etcd
from etcdlock import Lock
client = client = etcd.Client(host='api.example.com', protocol='https', port=443, version_prefix='/etcd')
lock = Lock(client, 'path/to/my/key', ttl=30, renewSecondsPrior=)
if lock.acquire(timeout=20):
t = Thread(target=someheavywork)
t.run()
t.wait()
lock.renew()
# some other work
lock.release() # not recommended, use a context manager
else
# failed to acquire the lock in 20 seconds
pass
```
Please see [the tests](https://github.com/appuri/python-etcd-lock/blob/master/tests/lock_tests.py) while the documentation is lacking, thanks.
Metadata
Release files for python-etcd-lock 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| python-etcd-lock-0.0.4.tar.gz | 3.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| python_etcd_lock-0.0.4-py2.7.egg | Legacy Egg format | - | - | Details |
Total release size: 9.9 kB
Release files / python-etcd-lock-0.0.4.tar.gz
| Download URL | python-etcd-lock-0.0.4.tar.gz |
|---|---|
| Size | 3.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
99df4deb2b0d54b907b631292b65aa0d81b928af4f458be6fafcc4a3d5d91c8b
|
|
BLAKE2b-256 checksum How to use checksums |
26c4798459d31bb41c3bc39e70f6f6cb3b676fc5e96b18552f9471ae57b4ad3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_etcd_lock-0.0.4-py2.7.egg
| Download URL | python_etcd_lock-0.0.4-py2.7.egg |
|---|---|
| Size | 6.2 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
7daf5a633a9c56c9181eefc908fb8e3a0e025edaa7f80130d5e6df35c9508d28
|
|
BLAKE2b-256 checksum How to use checksums |
d426457c958a899a4c831f12e9fcd70e62e34dbbe425efb5c1ca15b06a2ee087
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |