summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-procrastinate.spec239
-rw-r--r--sources1
3 files changed, 241 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..d49da97 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/sources b/sources
new file mode 100644
index 0000000..d438a18
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+48cd93e89f0a3dcabc1d34379f5e2a1b procrastinate-0.27.0.tar.gz