diff options
Diffstat (limited to 'python-plone-synchronize.spec')
-rw-r--r-- | python-plone-synchronize.spec | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/python-plone-synchronize.spec b/python-plone-synchronize.spec new file mode 100644 index 0000000..26fde1f --- /dev/null +++ b/python-plone-synchronize.spec @@ -0,0 +1,127 @@ +%global _empty_manifest_terminate_build 0 +Name: python-plone.synchronize +Version: 1.0.4 +Release: 1 +Summary: Simple decorators to support synchronized methods +License: BSD +URL: https://pypi.org/project/plone.synchronize +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2c/2c/1dabf7078e57c6ba63822a2497004515c03581a0ad485be63056f1943c10/plone.synchronize-1.0.4.tar.gz +BuildArch: noarch + +Requires: python3-setuptools + +%description +This package provides a simple decorator to help synchronize methods across +threads, to avoid problems of concurrent access. +It can be used like this:: + from threading import Lock + from plone.synchronize import synchronized + class StupidStack(object): + _elements = [] # not thread safe + _lock = Lock() + @synchronized(_lock) + def push(self, item): + self._elements.append(item) + @synchronized(_lock) + def pop(self): + last = self._elements[-1] + del self._elements[-1] + return last +The decorator takes care of calling lock.acquire() just before the method +is executed, and lock.release() just after. If an exception is raised in the +method, the lock will still be released. + +%package -n python3-plone.synchronize +Summary: Simple decorators to support synchronized methods +Provides: python-plone.synchronize +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-plone.synchronize +This package provides a simple decorator to help synchronize methods across +threads, to avoid problems of concurrent access. +It can be used like this:: + from threading import Lock + from plone.synchronize import synchronized + class StupidStack(object): + _elements = [] # not thread safe + _lock = Lock() + @synchronized(_lock) + def push(self, item): + self._elements.append(item) + @synchronized(_lock) + def pop(self): + last = self._elements[-1] + del self._elements[-1] + return last +The decorator takes care of calling lock.acquire() just before the method +is executed, and lock.release() just after. If an exception is raised in the +method, the lock will still be released. + +%package help +Summary: Development documents and examples for plone.synchronize +Provides: python3-plone.synchronize-doc +%description help +This package provides a simple decorator to help synchronize methods across +threads, to avoid problems of concurrent access. +It can be used like this:: + from threading import Lock + from plone.synchronize import synchronized + class StupidStack(object): + _elements = [] # not thread safe + _lock = Lock() + @synchronized(_lock) + def push(self, item): + self._elements.append(item) + @synchronized(_lock) + def pop(self): + last = self._elements[-1] + del self._elements[-1] + return last +The decorator takes care of calling lock.acquire() just before the method +is executed, and lock.release() just after. If an exception is raised in the +method, the lock will still be released. + +%prep +%autosetup -n plone.synchronize-1.0.4 + +%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-plone.synchronize -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.4-1 +- Package Spec generated |