Litcius/Paper detail

Conflict-aware inference of python compatible runtime environments with domain knowledge graph

Wei Cheng, Xiangrong Zhu, Wei Hu

2022Proceedings of the 44th International Conference on Software Engineering17 citationsDOI

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.

Topics & Concepts

Python (programming language)Computer scienceProgramming languageInferenceDependency graphSource codeTheoretical computer scienceSoftwareArtificial intelligenceSoftware Engineering ResearchSoftware Testing and Debugging TechniquesSoftware System Performance and Reliability