diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-15 07:30:56 +0000 | 
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 07:30:56 +0000 | 
| commit | df5f3223d0abae9bfc03c4c3572d0f40c64b0f86 (patch) | |
| tree | dc09734557f1c8c11dc4bb0eee750e330ef1e8f6 | |
| parent | 1c9b7b25e74884785265fddfd8f4bd73de6b3ba4 (diff) | |
automatic import of python-django-cache-lock
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-django-cache-lock.spec | 317 | ||||
| -rw-r--r-- | sources | 1 | 
3 files changed, 319 insertions, 0 deletions
| @@ -0,0 +1 @@ +/django-cache-lock-0.2.5.tar.gz diff --git a/python-django-cache-lock.spec b/python-django-cache-lock.spec new file mode 100644 index 0000000..234eadd --- /dev/null +++ b/python-django-cache-lock.spec @@ -0,0 +1,317 @@ +%global _empty_manifest_terminate_build 0 +Name:		python-django-cache-lock +Version:	0.2.5 +Release:	1 +Summary:	A simple lock extension for django's cache. +License:	MIT License +URL:		https://github.com/Xavier-Lam/django-cache-lock +Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/02/63/966ed2b3180e7f5c3401682cd1be615bf8c8c0db21602128dc0eeca22b87/django-cache-lock-0.2.5.tar.gz +BuildArch:	noarch + +Requires:	python3-Django +Requires:	python3-six + +%description +# django-cache-lock + +[](https://pypi.org/project/django-cache-lock) +[](https://travis-ci.org/Xavier-Lam/django-cache-lock) +[](https://en.cryptobadges.io/donate/1BdJG31zinrMFWxRt2utGBU2jdpv8xSgju) + +A simple lock extension for django's cache to prevent concurrent editing. + +## Installation +Install django-cache-lock by using pip + +    pip install django-cache-lock + +## Quick Start +You can work with django-cache-lock by using with-statement or decorator. + +    from django_lock import lock + +    with lock("global"): +        pass + +    @lock("global") +    def foo(): +        pass + +A shortcut to lock model instance + +    from django.db import models +    from django_lock import model_lock + +    class Foo(models.Model): +        bar = models.CharField(max_length=8) + +        @lock_model +        def lock_pk(self): +            pass + +        @lock_model("bar", blocking=False) +        def lock_bar(self): +            pass + +        def nolock(self): +            pass + +    foo = Foo() +    with lock_model(foo, blocking=False): +        nolock() + +## Configurations +| key | default | desc | +| --- | --- | --- | +| DJANGOLOCK_PREFIX | "lock:" | lock's key prefix stored in cache | +| DJANGOLOCK_SLEEP | 0.1 | default interval time to acquire a lock if a lock is holded by others | +| DJANGOLOCK_RELEASEONDEL | True | release lock when `__del__` is called if True | + +## Advanced usage +For more usages, please read the [code](django_lock.py). + +## Supported backends +* django.core.cache.backends.db +* django.core.cache.backends.file +* django.core.cache.backends.locmem +* django.core.cache.backends.memcached +* [django-redis](https://github.com/niwinz/django-redis) +* [django-redis-cache](https://github.com/sebleier/django-redis-cache) + +## ATTENTIONS +### locmem backend +* DO NOT USE locmem backend in a product environment. + +### memcached backend +* Memcached does not support milliseconds expire time, and its' expire time is not very exact. So memcached lock's timeout time is not as exact as other backends. + +### redis backend +* We didn't test distributed redis lock. + +## TODOS: +* use memcached's cas to release lock +* reacquire and extend lock +* database backend cache support + + + +%package -n python3-django-cache-lock +Summary:	A simple lock extension for django's cache. +Provides:	python-django-cache-lock +BuildRequires:	python3-devel +BuildRequires:	python3-setuptools +BuildRequires:	python3-pip +%description -n python3-django-cache-lock +# django-cache-lock + +[](https://pypi.org/project/django-cache-lock) +[](https://travis-ci.org/Xavier-Lam/django-cache-lock) +[](https://en.cryptobadges.io/donate/1BdJG31zinrMFWxRt2utGBU2jdpv8xSgju) + +A simple lock extension for django's cache to prevent concurrent editing. + +## Installation +Install django-cache-lock by using pip + +    pip install django-cache-lock + +## Quick Start +You can work with django-cache-lock by using with-statement or decorator. + +    from django_lock import lock + +    with lock("global"): +        pass + +    @lock("global") +    def foo(): +        pass + +A shortcut to lock model instance + +    from django.db import models +    from django_lock import model_lock + +    class Foo(models.Model): +        bar = models.CharField(max_length=8) + +        @lock_model +        def lock_pk(self): +            pass + +        @lock_model("bar", blocking=False) +        def lock_bar(self): +            pass + +        def nolock(self): +            pass + +    foo = Foo() +    with lock_model(foo, blocking=False): +        nolock() + +## Configurations +| key | default | desc | +| --- | --- | --- | +| DJANGOLOCK_PREFIX | "lock:" | lock's key prefix stored in cache | +| DJANGOLOCK_SLEEP | 0.1 | default interval time to acquire a lock if a lock is holded by others | +| DJANGOLOCK_RELEASEONDEL | True | release lock when `__del__` is called if True | + +## Advanced usage +For more usages, please read the [code](django_lock.py). + +## Supported backends +* django.core.cache.backends.db +* django.core.cache.backends.file +* django.core.cache.backends.locmem +* django.core.cache.backends.memcached +* [django-redis](https://github.com/niwinz/django-redis) +* [django-redis-cache](https://github.com/sebleier/django-redis-cache) + +## ATTENTIONS +### locmem backend +* DO NOT USE locmem backend in a product environment. + +### memcached backend +* Memcached does not support milliseconds expire time, and its' expire time is not very exact. So memcached lock's timeout time is not as exact as other backends. + +### redis backend +* We didn't test distributed redis lock. + +## TODOS: +* use memcached's cas to release lock +* reacquire and extend lock +* database backend cache support + + + +%package help +Summary:	Development documents and examples for django-cache-lock +Provides:	python3-django-cache-lock-doc +%description help +# django-cache-lock + +[](https://pypi.org/project/django-cache-lock) +[](https://travis-ci.org/Xavier-Lam/django-cache-lock) +[](https://en.cryptobadges.io/donate/1BdJG31zinrMFWxRt2utGBU2jdpv8xSgju) + +A simple lock extension for django's cache to prevent concurrent editing. + +## Installation +Install django-cache-lock by using pip + +    pip install django-cache-lock + +## Quick Start +You can work with django-cache-lock by using with-statement or decorator. + +    from django_lock import lock + +    with lock("global"): +        pass + +    @lock("global") +    def foo(): +        pass + +A shortcut to lock model instance + +    from django.db import models +    from django_lock import model_lock + +    class Foo(models.Model): +        bar = models.CharField(max_length=8) + +        @lock_model +        def lock_pk(self): +            pass + +        @lock_model("bar", blocking=False) +        def lock_bar(self): +            pass + +        def nolock(self): +            pass + +    foo = Foo() +    with lock_model(foo, blocking=False): +        nolock() + +## Configurations +| key | default | desc | +| --- | --- | --- | +| DJANGOLOCK_PREFIX | "lock:" | lock's key prefix stored in cache | +| DJANGOLOCK_SLEEP | 0.1 | default interval time to acquire a lock if a lock is holded by others | +| DJANGOLOCK_RELEASEONDEL | True | release lock when `__del__` is called if True | + +## Advanced usage +For more usages, please read the [code](django_lock.py). + +## Supported backends +* django.core.cache.backends.db +* django.core.cache.backends.file +* django.core.cache.backends.locmem +* django.core.cache.backends.memcached +* [django-redis](https://github.com/niwinz/django-redis) +* [django-redis-cache](https://github.com/sebleier/django-redis-cache) + +## ATTENTIONS +### locmem backend +* DO NOT USE locmem backend in a product environment. + +### memcached backend +* Memcached does not support milliseconds expire time, and its' expire time is not very exact. So memcached lock's timeout time is not as exact as other backends. + +### redis backend +* We didn't test distributed redis lock. + +## TODOS: +* use memcached's cas to release lock +* reacquire and extend lock +* database backend cache support + + + +%prep +%autosetup -n django-cache-lock-0.2.5 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then +	find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then +	find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then +	find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then +	find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then +	find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-django-cache-lock -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.5-1 +- Package Spec generated @@ -0,0 +1 @@ +b770560a038ec6a341a4a73e75d4828a  django-cache-lock-0.2.5.tar.gz | 
