G
gracedb-client
Forked from
IGWN Computing and Software / GraceDB / GraceDB Client
287 commits behind the upstream repository.
![Leo Singer's avatar](/uploads/-/system/user/avatar/26/Singer__Leo_661_copy.jpg?width=64)
Leo P. Singer
authored
According to the [Celery manual]: > A rarely known Python fact is that exceptions must conform to > some simple rules to support being serialized by the pickle > module. > > Tasks that raise exceptions that aren’t pickleable won’t work > properly when Pickle is used as the serializer. > > To make sure that your exceptions are pickleable the exception > MUST provide the original arguments it was instantiated with in > its .args attribute. The simplest way to ensure this is to have > the exception call Exception.__init__. The class `ligo.gracedb.exceptions.HTTPError` does not follow these rules, so it is not pickleable. Here is a demonstration of that: >>> import pickle >>> from ligo.gracedb.exceptions import HTTPError >>> pickle.loads(pickle.dumps(HTTPError(404, 'foo', 'bar'))) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: __init__() missing 2 required positional arguments: 'reason' and 'message' This patch makes `HTTPError` pickleable so that it can be properly represented in Celery task stack traces. [Celery manual]: http://docs.celeryproject.org/en/latest/userguide/tasks.html#creating-pickleable-exceptions
Name | Last commit | Last update |
---|---|---|
debian | ||
doc | ||
etc | ||
ligo | ||
.gitignore | ||
.gitlab-ci.yml | ||
MANIFEST.in | ||
README.md | ||
ligo-gracedb.spec | ||
setup.cfg | ||
setup.py |