Skip to content

🔨 handle OSError cases where traceback frames occur from built…#13964

Merged
Carreau merged 3 commits into
ipython:mainfrom
hunhoon21:enhancement/cover-cases-where-frame-is-built-object
Mar 30, 2023
Merged

🔨 handle OSError cases where traceback frames occur from built…#13964
Carreau merged 3 commits into
ipython:mainfrom
hunhoon21:enhancement/cover-cases-where-frame-is-built-object

Conversation

@hunhoon21
Copy link
Copy Markdown
Contributor

@hunhoon21 hunhoon21 commented Mar 7, 2023

workerB
… files

Hello. I'm not very familiar with open source contributions, so please bear with me if I'm a bit inexperienced.

Introduction

First of all, let me explain the background. I've been using the _render_traceback_ method of the traceback object, provided by the IPython.core.interactiveshell.InteractiveShell object that you created, in the showtraceback method. Thanks to this, I was able to create better error messages. I appreciate it. The following issue is related to the use of this method.

                    try:
                        # Exception classes can customise their traceback - we
                        # use this in IPython.parallel for exceptions occurring
                        # in the engines. This should return a list of strings.
                        if hasattr(value, "_render_traceback_"):
                            stb = value._render_traceback_()
                        else:
                            stb = self.InteractiveTB.structured_traceback(
                                etype, value, tb, tb_offset=tb_offset
                            )

Description

I noticed that in the recent 8.11 version, code was added to generate a traceback when the source code is too long. In this case, if the etb.tb_frame object is a built file or something similar, the inspect.getsourcelines(etb.tb_frame) method may raise an error. So I implemented a change to set the max_len to the minimum value and avoid the following condition when an OSError occurs. I think this approach can handle cases where errors occur while using the inspect.getsourcelines() method.

If there is anything I have done wrong or any procedures I should follow, please let me know. I would greatly appreciate it if you could leave a comment and I will make the necessary changes immediately. Thank you.

@Carreau Carreau added this to the 8.12 milestone Mar 30, 2023
@Carreau Carreau merged commit 9202708 into ipython:main Mar 30, 2023
@hunhoon21 hunhoon21 deleted the enhancement/cover-cases-where-frame-is-built-object branch March 30, 2023 08:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants