English

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

Software Engineering 2022-01-19 v1

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.

Keywords

Cite

@article{arxiv.2201.07029,
  title  = {Conflict-aware Inference of Python Compatible Runtime Environments with Domain Knowledge Graph},
  author = {Wei Cheng and Xiangrong Zhu and Wei Hu},
  journal= {arXiv preprint arXiv:2201.07029},
  year   = {2022}
}

Comments

Accepted in the 44th International Conference on Software Engineering (ICSE 2022)