%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 - 1.0.4-1 - Package Spec generated