%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 `_. 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 `_. 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 `_. 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 * Tue May 30 2023 Python_Bot - 0.27.0-1 - Package Spec generated