Source code for dagster._utils.forked_pdb

import pdb
import sys


# From https://stackoverflow.com/questions/4716533/how-to-attach-debugger-to-a-python-subproccess
[docs]class ForkedPdb(pdb.Pdb): """A pdb subclass that may be used from a forked multiprocessing child **Examples**: .. code-block:: python from dagster._utils.forked_pdb import ForkedPdb @solid def complex_solid(_): # some complicated stuff ForkedPdb().set_trace() # some other complicated stuff You can initiate pipeline execution via dagit and use the pdb debugger to examine/step through execution at the breakpoint. """ def interaction(self, frame, traceback): _stdin = sys.stdin try: sys.stdin = open("/dev/stdin", encoding="utf8") pdb.Pdb.interaction(self, frame, traceback) finally: sys.stdin = _stdin