Teddy: Automatic Recommendation of Pythonic Idiom Usage For Pull-Based Software Projects
Purit Phan-udom, Naruedon Wattanakul, Tattiya Sakulniwat, Chaiyong, Ragkhitwetsagul, Thanwadee Sunetnanta, Morakot Choetkiertikul, Raula, Gaikovina Kula

TL;DR
Teddy is an automated tool designed to help programmers learn and adopt Pythonic idioms by providing real-time recommendations and thorough code analysis, improving code quality and readability.
Contribution
The paper introduces Teddy, a novel automated tool that detects and recommends Pythonic idiom usage, aiding both novice and experienced developers in writing idiomatic Python code.
Findings
High precision in detecting Pythonic idioms and non-idiomatic code
Effective in real-life open source project scenarios
Interactive visualizations assist novices in understanding Pythonic idioms
Abstract
Pythonic code is idiomatic code that follows guiding principles and practices within the Python community. Offering performance and readability benefits, Pythonic code is claimed to be widely adopted by experienced Python developers, but can be a learning curve to novice programmers. To aid with Pythonic learning, we create an automated tool, called Teddy, that can help checking the Pythonic idiom usage. The tool offers a prevention mode with Just-In-Time analysis to recommend the use of Pythonic idiom during code review and a detection mode with historical analysis to run a thorough scan of idiomatic and non-idiomatic code. In this paper, we first describe our tool and an evaluation of its performance. Furthermore, we present a case study that demonstrates how to use Teddy in a real-life scenario on an Open Source project. An evaluation shows that Teddy has high precision for detecting…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
