The Python Podcast.__init__

Jedi Code Completion with David Halter


Listen Later

Summary

When you’re writing python code and your editor offers some suggestions, where does that suggestion come from? The most likely answer is Jedi! This week David Halter explains the history of how the Jedi auto completion library was created, how it works under the hood, and where he plans on taking it.

Preface
  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.
  • Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch.
  • To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media.
  • Your host as usual is Tobias Macey and today I’m interviewing David Halter about Jedi, an awesome autocompletion and static analysis library for Python
  • Interview
    • Introductions
    • How did you get introduced to Python?
    • Can you explain what Jedi is and what problem you were trying to solve when you created it?
      • What is the story behind the name?

      • While reading through the documentation I noticed that there is alpha support for linting with Jedi. Can you compare the linting approach and capabilities with those found in other tools such as pylint and flake8?

      • What does the internal architecture and design look like?

      • From the research that I did for the show it seems that, rather than use the AST to determine the structure of the code being completed you built your own parser and recursive evaluation of the other methods that you use for determining accurate completion?

        • What was lacking in existing parsers that led you to build your own?
        • What are some of the difficulties that you have encountered building and maintaining the grammar definitions and higher level API for parsing multiple versions of Python, including the 2 vs 3 split?

        • What are some of the biggest challenges associated with introspecting user code?

        • What are some of the ways that Jedi can be confounded by a user’s project?

        • What are some of the most difficult technical hurdles that you have been faced with while building Jedi?

        • What are some unusual or unexpected uses of Jedi that you have seen?

        • What do you have planned for the future of Jedi?

        • Keep In Touch
          • davidhalter on GitHub
          • @jedidjah_ch on Twitter
          • Picks
            • Tobias
              • Patch utility

              • David

                • Bears Den
                • Soccer
                • Singing
                • Dancing
                • DocOpt
                • OpenStack

                • Links
                  • Cloudscale.ch
                  • Vim
                  • Youcompleteme
                  • Neocomplete
                  • pyflakes
                  • pycodestyle
                  • pylint
                  • Parser Generator
                  • Parser Error Recovery
                  • lib2to3
                  • Python grammar file
                  • Finite state automata
                  • Type inference
                  • yapf
                  • AST module
                  • MyPy
                  • IPython
                  • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                    ...more
                    View all episodesView all episodes
                    Download on the App Store

                    The Python Podcast.__init__By Tobias Macey

                    • 4.4
                    • 4.4
                    • 4.4
                    • 4.4
                    • 4.4

                    4.4

                    100 ratings


                    More shows like The Python Podcast.__init__

                    View all
                    The Changelog: Software Development, Open Source by Changelog Media

                    The Changelog: Software Development, Open Source

                    283 Listeners

                    Data Skeptic by Kyle Polich

                    Data Skeptic

                    482 Listeners

                    Chat With Traders by Tessa Dao

                    Chat With Traders

                    1,979 Listeners

                    Talk Python To Me by Michael Kennedy

                    Talk Python To Me

                    592 Listeners

                    Software Engineering Daily by Software Engineering Daily

                    Software Engineering Daily

                    623 Listeners

                    The TWIML AI Podcast (formerly This Week in Machine Learning & Artificial Intelligence) by Sam Charrington

                    The TWIML AI Podcast (formerly This Week in Machine Learning & Artificial Intelligence)

                    446 Listeners

                    Super Data Science: ML & AI Podcast with Jon Krohn by Jon Krohn

                    Super Data Science: ML & AI Podcast with Jon Krohn

                    297 Listeners

                    Python Bytes by Michael Kennedy and Brian Okken

                    Python Bytes

                    215 Listeners

                    Data Engineering Podcast by Tobias Macey

                    Data Engineering Podcast

                    142 Listeners

                    Machine Learning Guide by OCDevel

                    Machine Learning Guide

                    764 Listeners

                    Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

                    Syntax - Tasty Web Development Treats

                    986 Listeners

                    DataFramed by DataCamp

                    DataFramed

                    267 Listeners

                    Practical AI by Practical AI LLC

                    Practical AI

                    192 Listeners

                    The Real Python Podcast by Real Python

                    The Real Python Podcast

                    140 Listeners

                    Hard Fork by The New York Times

                    Hard Fork

                    5,432 Listeners