invenia / invenia/Arbiter

Provide a way to return traceback information for failed tasks.

Open
#2 3 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
13
Forks
6
PR merge metrics
No merged PRs in 30d

Description

Presently, tracebacks are unavailable for failed tasks (under python2, under python3 I think exceptions have a `traceback` attribute). Provide a method to receive tracebacks.

The current return value for arbiter is of the type: `namedtuple('Result', ['success', 'value'])`
Options for adding this are:
- Have value be `namedtuple('Failure', ['exception', 'traceback'])` in the case of `success=False`
- Have value be a custom exception that contains traceback info and the original exception
- mimicking however Python3 does it
- Change the return value to `namedtuple('Result', ['success', 'value', 'traceback'])`

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the arbiter entry point and the current Result namedtuple, then trace how failed tasks produce their return value. Compare the proposed failure representations and Python 2 exception behavior; done means callers can reliably receive the original exception and its traceback for failed tasks.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
devtools
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.