summaryrefslogtreecommitdiff
path: root/python-fastrlock.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-fastrlock.spec')
-rw-r--r--python-fastrlock.spec125
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