kirancodes.me
To Proof Maintenance & Beyond!

Conflict-aware Inference of Python Compatible Runtime Environments with Domain Knowledge Graph

Wei Cheng, Xiangrong Zhu, Wei Hu

Abstract

Code sharing and reuse is a widespread use practice in software engineering. Although a vast amount of open-source Python code is accessible on many online platforms, programmers often find it difficult to restore a successful runtime environment. Previous studies validated automatic inference of Python dependencies using pre-built knowledge bases. However, these studies do not cover sufficient knowledge to accurately match the Python code and also ignore the potential conflicts between their inferred dependencies, thus resulting in a low success rate of inference. In this paper, we propose PyCRE, a new approach to automatically inferring Python compatible runtime environments with domain knowledge graph (KG). Specifically, we design a domain-specific ontology for Python third-party packages and construct KGs for over 10,000 popular packages in Python 2 and Python 3. PyCRE discovers candidate libraries by measuring the matching degree between the known libraries and the third-party resources used in target code. For the NP-complete problem of dependency solving, we propose a heuristic graph traversal algorithm to efficiently guarantee the compatibility between packages. PyCRE achieves superior performance on a real-world dataset and efficiently resolves nearly half more import errors than previous methods.

BibTeX
@inproceedings{Cheng-al:ICSE22,
  author    = {Wei Cheng and
               Xiangrong Zhu and
               Wei Hu},
  title     = {Conflict-aware Inference of Python Compatible Runtime Environments with Domain Knowledge Graph},
  booktitle = {ICSE},
  pages     = {451--461},
  publisher = {{ACM}},
  year      = {2022},
}

Related papers