Restoring the Executability of Jupyter Notebooks by Automatic Upgrade of Deprecated APIs
Data scientists typically practice exploratory programming using computational notebooks, to comprehend new data and extract insights. To do this they iteratively refine their code, actively trying to re-use and re-purpose solutions created by other data scientists, in real time. However, recent studies have shown that a vast majority of publicly available notebooks cannot be executed out of the box. One of the prominent reasons is the deprecation of data science APIs used in such notebooks, due to the rapid evolution of data science libraries. In this work we propose RELANCER, an automatic technique that restores the executability of broken Jupyter Notebooks, in near real time, by upgrading deprecated APIs. RELANCER employs an iterative runtime error driven approach to identify and fix one API issue at a time. This is supported by a machine-learned model which uses the runtime error message to predict the kind of API repair needed - an update in API or package name, a parameter, or a parameter value. Then RELANCER creates a search space of candidate repairs by combining knowledge from API migration examples on GitHub as well as the API documentation and employs a second machine learned model to rank this space of candidate mappings. An evaluation of RELANCER on a curated dataset of 255 un-executable Jupyter Notebooks from Kaggle shows that RELANCER can successfully restore the executability of 56% of the subjects, while baselines relying on just GitHub examples and just API documentation can only fix 37% and 36% of the subjects respectively. Further, pursuant to its real-time use case, RELANCER can restore execution to 49% of subjects, within a 5 minute time limit, while a baseline lacking its machine learning models can only fix 24%.
Tue 16 NovDisplayed time zone: Hobart change
23:00 - 00:00 | Artefacts Plenary (Any Day Band 2)Artifact Evaluation at Kangaroo Chair(s): Aldeida Aleti Monash University, Tim Menzies North Carolina State University | ||
23:00 5mDay opening | Opening Artifact Evaluation | ||
23:05 7mKeynote | Keynote Artifact Evaluation Dirk Beyer LMU Munich, Germany | ||
23:12 3mTalk | CiFi: Versatile Analysis of Class and Field Immutability Artifact Evaluation Tobias Roth Technische Universität Darmstadt, Dominik Helm Technische Universität Darmstadt, Michael Reif Technische Universität Darmstadt, Mira Mezini Technische Universität Darmstadt | ||
23:15 3mTalk | Testing Your Question Answering Software via Asking Recursively Artifact Evaluation Songqiang Chen School of Computer Science, Wuhan University, Shuo Jin School of Computer Science, Wuhan University, Xiaoyuan Xie School of Computer Science, Wuhan University, China | ||
23:18 3mTalk | Restoring the Executability of Jupyter Notebooks by Automatic Upgrade of Deprecated APIs Artifact Evaluation Chenguang Zhu University of Texas at Austin, Ripon Saha Fujitsu Laboratories of America, Inc., Mukul Prasad Fujitsu Research of America, Sarfraz Khurshid The University of Texas at Austin | ||
23:21 3mTalk | Context Debloating for Object-Sensitive Pointer Analysis Artifact Evaluation | ||
23:24 3mTalk | Understanding and Detecting Performance Bugs in Markdown Compilers Artifact Evaluation Penghui Li The Chinese University of Hong Kong, Yinxi Liu The Chinese University of Hong Kong, Wei Meng Chinese University of Hong Kong | ||
23:27 5mProduct release | Reuse graphs Artifact Evaluation | ||
23:32 10mTalk | Most reused artefacts Artifact Evaluation | ||
23:42 18mLive Q&A | Discussion Artifact Evaluation |