diff options
Diffstat (limited to 'python-fastrlock.spec')
-rw-r--r-- | python-fastrlock.spec | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/python-fastrlock.spec b/python-fastrlock.spec new file mode 100644 index 0000000..14d676c --- /dev/null +++ b/python-fastrlock.spec @@ -0,0 +1,125 @@ +%global _empty_manifest_terminate_build 0 +Name: python-fastrlock +Version: 0.8.1 +Release: 1 +Summary: Fast, re-entrant optimistic lock implemented in Cython +License: MIT style +URL: https://github.com/scoder/fastrlock +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/84/64/7d4f96734aba053194877f0b342a3a57402d2b2215aaae39b0cd619a326d/fastrlock-0.8.1.tar.gz + + +%description +This is a C-level implementation of a fast, re-entrant, optimistic lock for CPython. +It is a drop-in replacement for +`threading.RLock <https://docs.python.org/3/library/threading.html#threading.RLock>`_. +FastRLock is implemented in `Cython <http://cython.org>`_ and also provides a C-API +for direct use from Cython code via ``from fastrlock cimport rlock``. +Under normal conditions, it is about 10x faster than threading.RLock in Python 2.7 +because it avoids all locking unless two or more threads try to acquire it at the +same time. Under congestion, it is still about 10% faster than RLock due to being +implemented in Cython. +This is mostly equivalent to the revised RLock implementation in Python 3.2, +but still faster due to being implemented in Cython. However, in Python 3.4 and +later, the ``threading.RLock`` implementation in the stdlib tends to be as fast +or even faster than the lock provided by this package, when called through the +Python API. ``FastRLock`` is still faster also on these systems when called +through its Cython API from other Cython modules. +It was initially published as a code recipe here: +https://code.activestate.com/recipes/577336-fast-re-entrant-optimistic-lock-implemented-in-cyt/ +FastRLock has been used and tested in `Lupa <https://github.com/scoder/lupa>`_ for several years. + +%package -n python3-fastrlock +Summary: Fast, re-entrant optimistic lock implemented in Cython +Provides: python-fastrlock +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-cffi +BuildRequires: gcc +BuildRequires: gdb +%description -n python3-fastrlock +This is a C-level implementation of a fast, re-entrant, optimistic lock for CPython. +It is a drop-in replacement for +`threading.RLock <https://docs.python.org/3/library/threading.html#threading.RLock>`_. +FastRLock is implemented in `Cython <http://cython.org>`_ and also provides a C-API +for direct use from Cython code via ``from fastrlock cimport rlock``. +Under normal conditions, it is about 10x faster than threading.RLock in Python 2.7 +because it avoids all locking unless two or more threads try to acquire it at the +same time. Under congestion, it is still about 10% faster than RLock due to being +implemented in Cython. +This is mostly equivalent to the revised RLock implementation in Python 3.2, +but still faster due to being implemented in Cython. However, in Python 3.4 and +later, the ``threading.RLock`` implementation in the stdlib tends to be as fast +or even faster than the lock provided by this package, when called through the +Python API. ``FastRLock`` is still faster also on these systems when called +through its Cython API from other Cython modules. +It was initially published as a code recipe here: +https://code.activestate.com/recipes/577336-fast-re-entrant-optimistic-lock-implemented-in-cyt/ +FastRLock has been used and tested in `Lupa <https://github.com/scoder/lupa>`_ for several years. + +%package help +Summary: Development documents and examples for fastrlock +Provides: python3-fastrlock-doc +%description help +This is a C-level implementation of a fast, re-entrant, optimistic lock for CPython. +It is a drop-in replacement for +`threading.RLock <https://docs.python.org/3/library/threading.html#threading.RLock>`_. +FastRLock is implemented in `Cython <http://cython.org>`_ and also provides a C-API +for direct use from Cython code via ``from fastrlock cimport rlock``. +Under normal conditions, it is about 10x faster than threading.RLock in Python 2.7 +because it avoids all locking unless two or more threads try to acquire it at the +same time. Under congestion, it is still about 10% faster than RLock due to being +implemented in Cython. +This is mostly equivalent to the revised RLock implementation in Python 3.2, +but still faster due to being implemented in Cython. However, in Python 3.4 and +later, the ``threading.RLock`` implementation in the stdlib tends to be as fast +or even faster than the lock provided by this package, when called through the +Python API. ``FastRLock`` is still faster also on these systems when called +through its Cython API from other Cython modules. +It was initially published as a code recipe here: +https://code.activestate.com/recipes/577336-fast-re-entrant-optimistic-lock-implemented-in-cyt/ +FastRLock has been used and tested in `Lupa <https://github.com/scoder/lupa>`_ for several years. + +%prep +%autosetup -n fastrlock-0.8.1 + +%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-fastrlock -f filelist.lst +%dir %{python3_sitearch}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.8.1-1 +- Package Spec generated |