A Data Set of Generalizable Python Code Change Patterns

04/11/2023
by   Akalanka Galappaththi, et al.
0

Mining repetitive code changes from version control history is a common way of discovering unknown change patterns. Such change patterns can be used in code recommender systems or automated program repair techniques. While there are such tools and datasets exist for Java, there is little work on finding and recommending such changes in Python. In this paper, we present a data set of manually vetted generalizable Python repetitive code change patterns. We create a coding guideline to identify generalizable change patterns that can be used in automated tooling. We leverage the mined change patterns from recent work that mines repetitive changes in Python projects and use our coding guideline to manually review the patterns. For each change, we also record a description of the change and why it is applied along with other characteristics such as the number of projects it occurs in. This review process allows us to identify and share 72 Python change patterns that can be used to build and advance Python developer support tools.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/12/2022

Making Python Code Idiomatic by Automatic Refactoring Non-Idiomatic Python Code with Pythonic Idioms

Compared to other programming languages (e.g., Java), Python has more id...
research
08/25/2021

Revizor: A Data-Driven Approach to Automate Frequent Code Changes Based on Graph Matching

Many code changes that developers make in their projects are repeated an...
research
05/21/2021

Changes from the Trenches: Should We Automate Them?

Code changes constitute one of the most important features of software e...
research
08/10/2021

PyNose: A Test Smell Detector For Python

Similarly to production code, code smells also occur in test code, where...
research
08/10/2017

More Accurate Recommendations for Method-Level Changes

During the life span of large software projects, developers often apply ...
research
02/14/2020

Lightweight Lexical Test Prioritization for Immediate Feedback

The practice of unit testing enables programmers to obtain automated fee...
research
07/21/2023

Exploring Security Commits in Python

Python has become the most popular programming language as it is friendl...

Please sign up or login with your details

Forgot password? Click here to reset