diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-15 05:10:57 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 05:10:57 +0000 |
| commit | 518e84f08b9f4ecd91d5bca94e6249c297606bcc (patch) | |
| tree | 6887df36b463a0f678f0d6787435352f6d0f0304 | |
| parent | 27829e539a987e8963733dde3b5770160e370d5d (diff) | |
automatic import of python-procrastinate
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-procrastinate.spec | 239 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 241 insertions, 0 deletions
@@ -0,0 +1 @@ +/procrastinate-0.27.0.tar.gz diff --git a/python-procrastinate.spec b/python-procrastinate.spec new file mode 100644 index 0000000..bc3ea8d --- /dev/null +++ b/python-procrastinate.spec @@ -0,0 +1,239 @@ +%global _empty_manifest_terminate_build 0 +Name: python-procrastinate +Version: 0.27.0 +Release: 1 +Summary: Postgres-based distributed task processing library +License: MIT +URL: https://procrastinate.readthedocs.io/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/db/86/0065d484901942249ce41b2069bf22dbccc14d8bfc16e8d999941f72dc49/procrastinate-0.27.0.tar.gz +BuildArch: noarch + +Requires: python3-aiopg +Requires: python3-attrs +Requires: python3-click +Requires: python3-croniter +Requires: python3-django +Requires: python3-importlib-metadata +Requires: python3-importlib-resources +Requires: python3-psycopg2-binary +Requires: python3-dateutil +Requires: python3-sqlalchemy +Requires: python3-typing-extensions + +%description +Procrastinate is an open-source Python 3.7+ distributed task processing +library, leveraging PostgreSQL to store task definitions, manage locks and +dispatch tasks. It can be used within both sync and async code. +In other words, from your main code, you call specific functions (tasks) in a +special way and instead of being run on the spot, they're scheduled to +be run elsewhere, now or in the future. +Here's an example: + # mycode.py + import procrastinate + # Make an app in your code + app = procrastinate.App(connector=procrastinate.AiopgConnector()) + # Then define tasks + @app.task(queue="sums") + def sum(a, b): + with open("myfile", "w") as f: + f.write(str(a + b)) + with app.open(): + # Launch a job + sum.defer(a=3, b=5) + # Somewhere in your program, run a worker (actually, it's often a + # different program than the one deferring jobs for execution) + app.run_worker(queues=["sums"]) +The worker will run the job, which will create a text file +named ``myfile`` with the result of the sum ``3 + 5`` (that's ``8``). +Similarly, from the command line: + export PROCRASTINATE_APP="mycode.app" + # Launch a job + procrastinate defer mycode.sum '{"a": 3, "b": 5}' + # Run a worker + procrastinate worker -q sums +Lastly, you can use Procrastinate asynchronously too: + import asyncio + import procrastinate + # Make an app in your code + app = procrastinate.App(connector=procrastinate.AiopgConnector()) + # Define tasks using coroutine functions + @app.task(queue="sums") + async def sum(a, b): + await asyncio.sleep(a + b) + async with app.open_async(): + # Launch a job + await sum.defer_async(a=3, b=5) + # Somewhere in your program, run a worker (actually, it's often a + # different program than the one deferring jobs for execution) + await app.run_worker_async(queues=["sums"]) +There are quite a few interesting features that Procrastinate adds to the mix. +You can head to the Quickstart section for a general tour or +to the How-To sections for specific features. The Discussion +section should hopefully answer your questions. Otherwise, +feel free to open an `issue <https://github.com/procrastinate-org/procrastinate/issues>`_. +The project is still quite early-stage and will probably evolve. +*Note to my future self: add a quick note here on why this project is named* +"Procrastinate_". + +%package -n python3-procrastinate +Summary: Postgres-based distributed task processing library +Provides: python-procrastinate +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-procrastinate +Procrastinate is an open-source Python 3.7+ distributed task processing +library, leveraging PostgreSQL to store task definitions, manage locks and +dispatch tasks. It can be used within both sync and async code. +In other words, from your main code, you call specific functions (tasks) in a +special way and instead of being run on the spot, they're scheduled to +be run elsewhere, now or in the future. +Here's an example: + # mycode.py + import procrastinate + # Make an app in your code + app = procrastinate.App(connector=procrastinate.AiopgConnector()) + # Then define tasks + @app.task(queue="sums") + def sum(a, b): + with open("myfile", "w") as f: + f.write(str(a + b)) + with app.open(): + # Launch a job + sum.defer(a=3, b=5) + # Somewhere in your program, run a worker (actually, it's often a + # different program than the one deferring jobs for execution) + app.run_worker(queues=["sums"]) +The worker will run the job, which will create a text file +named ``myfile`` with the result of the sum ``3 + 5`` (that's ``8``). +Similarly, from the command line: + export PROCRASTINATE_APP="mycode.app" + # Launch a job + procrastinate defer mycode.sum '{"a": 3, "b": 5}' + # Run a worker + procrastinate worker -q sums +Lastly, you can use Procrastinate asynchronously too: + import asyncio + import procrastinate + # Make an app in your code + app = procrastinate.App(connector=procrastinate.AiopgConnector()) + # Define tasks using coroutine functions + @app.task(queue="sums") + async def sum(a, b): + await asyncio.sleep(a + b) + async with app.open_async(): + # Launch a job + await sum.defer_async(a=3, b=5) + # Somewhere in your program, run a worker (actually, it's often a + # different program than the one deferring jobs for execution) + await app.run_worker_async(queues=["sums"]) +There are quite a few interesting features that Procrastinate adds to the mix. +You can head to the Quickstart section for a general tour or +to the How-To sections for specific features. The Discussion +section should hopefully answer your questions. Otherwise, +feel free to open an `issue <https://github.com/procrastinate-org/procrastinate/issues>`_. +The project is still quite early-stage and will probably evolve. +*Note to my future self: add a quick note here on why this project is named* +"Procrastinate_". + +%package help +Summary: Development documents and examples for procrastinate +Provides: python3-procrastinate-doc +%description help +Procrastinate is an open-source Python 3.7+ distributed task processing +library, leveraging PostgreSQL to store task definitions, manage locks and +dispatch tasks. It can be used within both sync and async code. +In other words, from your main code, you call specific functions (tasks) in a +special way and instead of being run on the spot, they're scheduled to +be run elsewhere, now or in the future. +Here's an example: + # mycode.py + import procrastinate + # Make an app in your code + app = procrastinate.App(connector=procrastinate.AiopgConnector()) + # Then define tasks + @app.task(queue="sums") + def sum(a, b): + with open("myfile", "w") as f: + f.write(str(a + b)) + with app.open(): + # Launch a job + sum.defer(a=3, b=5) + # Somewhere in your program, run a worker (actually, it's often a + # different program than the one deferring jobs for execution) + app.run_worker(queues=["sums"]) +The worker will run the job, which will create a text file +named ``myfile`` with the result of the sum ``3 + 5`` (that's ``8``). +Similarly, from the command line: + export PROCRASTINATE_APP="mycode.app" + # Launch a job + procrastinate defer mycode.sum '{"a": 3, "b": 5}' + # Run a worker + procrastinate worker -q sums +Lastly, you can use Procrastinate asynchronously too: + import asyncio + import procrastinate + # Make an app in your code + app = procrastinate.App(connector=procrastinate.AiopgConnector()) + # Define tasks using coroutine functions + @app.task(queue="sums") + async def sum(a, b): + await asyncio.sleep(a + b) + async with app.open_async(): + # Launch a job + await sum.defer_async(a=3, b=5) + # Somewhere in your program, run a worker (actually, it's often a + # different program than the one deferring jobs for execution) + await app.run_worker_async(queues=["sums"]) +There are quite a few interesting features that Procrastinate adds to the mix. +You can head to the Quickstart section for a general tour or +to the How-To sections for specific features. The Discussion +section should hopefully answer your questions. Otherwise, +feel free to open an `issue <https://github.com/procrastinate-org/procrastinate/issues>`_. +The project is still quite early-stage and will probably evolve. +*Note to my future self: add a quick note here on why this project is named* +"Procrastinate_". + +%prep +%autosetup -n procrastinate-0.27.0 + +%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-procrastinate -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.27.0-1 +- Package Spec generated @@ -0,0 +1 @@ +48cd93e89f0a3dcabc1d34379f5e2a1b procrastinate-0.27.0.tar.gz |
