nteract/papermill

Cells not running after an exception caught with ipython custom exception handler

オープン

#518 opened on 2020/06/25

 (8 件のコメント) (0 件のリアクション) (0 人の担当者)Python (402 件のフォーク)batch import
bughelp wanted

Repository metrics

Stars
 (5,381 個のスター)
PR merge metrics
 (30d に merged PR はありません)

説明

When configuring a custom exception handler in iPython with: ip.set_custom_exc inside a notebook there is a strange and buggy behaviour in papermill.

The notebook runs until the cell the raises an exception (that is handled by the custom handler), and then the notebook return with the cells after the current cell marked as "Pending". No exception is raised and the next cells are not executed.

Example:

Cell 1 (running ok):

x = 5
print(x)

Cell 2 (custom exception):

class MyException(BaseException):
    pass

ip = get_ipython()
def general_exception_handler(self, etype, exc, tb, tb_offset=None):
    print("special handle")

ip.set_custom_exc((MyException,), general_exception_handler)
raise MyException('ads')

Cell 3:

# This does not raise an exception because it is not running, cell status is "pending"
1 / 0

コントリビューターガイド