{"id":9945,"date":"2024-12-09T09:52:23","date_gmt":"2024-12-09T17:52:23","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/python\/?p=9945"},"modified":"2024-12-11T07:06:09","modified_gmt":"2024-12-11T15:06:09","slug":"2024-python-vscode-wrapped","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/python\/2024-python-vscode-wrapped\/","title":{"rendered":"2024 Python in VS Code Wrapped"},"content":{"rendered":"<p>As the year comes to a close, we would like to take time to reflect and celebrate the incredible progress the Python extension for VS Code has made in the past year. Inspired by <a href=\"https:\/\/www.spotify.com\/us\/wrapped\/\">Spotify Wrapped<\/a>, we\u2019ve compiled highlights from our year, showcasing top voted requests and countless lines of code written. Keep reading to get an inside look into all things <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.python\">@vscode-python<\/a> and <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.debugpy\">@vscode-python-debugger<\/a> wrapped!<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/wrapped-overview.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-9951\" src=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/wrapped-overview.png\" alt=\"This year in the #vscode-pythonwrapped the team closed 894 issues, merged 604 pull requests, had 43 unique contributions, and merged in top voted fixes.\" width=\"1600\" height=\"900\" srcset=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/wrapped-overview.png 1600w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/wrapped-overview-300x169.png 300w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/wrapped-overview-1024x576.png 1024w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/wrapped-overview-768x432.png 768w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/wrapped-overview-1536x864.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/a><\/p>\n<h2>Pull Requests and issues<\/h2>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/issues-and-prs.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-9948\" src=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/issues-and-prs.png\" alt=\"The Python extension totaled 604 merged pull requests and closed 894 issues in 2024.\" width=\"1600\" height=\"900\" srcset=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/issues-and-prs.png 1600w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/issues-and-prs-300x169.png 300w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/issues-and-prs-1024x576.png 1024w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/issues-and-prs-768x432.png 768w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/issues-and-prs-1536x864.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/a><\/p>\n<p>We saw an impressive 604 pull requests merged in 2024, bringing in features such as Django tests, improved environment discovery, the Native REPL, and more! Moreover, our community helped close 894 issues, for both bug fixes and features requests.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Top-issues.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-9950\" src=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Top-issues.png\" alt=\"Top issues merged based on upvotes were Django unittests, select pyenv environments based on folder version, a &quot;just my code&quot; global setting, and Python 3.6 debugging.\" width=\"1600\" height=\"900\" srcset=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Top-issues.png 1600w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Top-issues-300x169.png 300w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Top-issues-1024x576.png 1024w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Top-issues-768x432.png 768w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Top-issues-1536x864.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/a><\/p>\n<p>We broke down our top addressed issues based on up-votes:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-python\/issues\/73\">Feature suggestion: Run Django unittests<\/a> received 337 up-votes<\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-python\/issues\/1167\">Select pyenv environment based on folder .python-version file<\/a> received 135 up-votes<\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-python\/issues\/14957\">Add &#8220;just my code&#8221; global setting<\/a> received 34 up-votes<\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-python\/issues\/19559\">Bring back Python 3.6 debugging support by breaking debugging out into its own extension<\/a> received 34 up-votes<\/li>\n<\/ul>\n<h2>Contributors and community<\/h2>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Contributions-and-Community.png\"><img decoding=\"async\" class=\"alignnone wp-image-9947 size-full\" src=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Contributions-and-Community.png\" alt=\"In 2024, we had 43 unique contributors - 22 internally and 21 from the community.\" width=\"1600\" height=\"900\" srcset=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Contributions-and-Community.png 1600w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Contributions-and-Community-300x169.png 300w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Contributions-and-Community-1024x576.png 1024w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Contributions-and-Community-768x432.png 768w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/Contributions-and-Community-1536x864.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/a><\/p>\n<p>This year, we were thrilled to see contributions from 43 unique contributors: 22 internal contributors and 21 from the community!<\/p>\n<p>We would like to give a special shout-out to our community contributors: <a href=\"https:\/\/github.com\/andybbruno\">@andybbruno<\/a>, <a href=\"https:\/\/github.com\/aydar-kamaltdinov\">@aydar-kamaltdinov<\/a>, <a href=\"https:\/\/github.com\/baszalmstra\">@baszalmstra<\/a>, <a href=\"https:\/\/github.com\/bersbersbers\">@bersbersbers<\/a>, <a href=\"https:\/\/github.com\/brokoli777\">@brokoli777<\/a>, <a href=\"https:\/\/github.com\/covracer\">@covracer<\/a>, <a href=\"https:\/\/github.com\/DavidArchibald\">@DavidArchibald<\/a>, <a href=\"https:\/\/github.com\/detachhead\">@DetachHead<\/a>, <a href=\"https:\/\/github.com\/edgarrmondragon\">@edgarrmondragon<\/a>, <a href=\"https:\/\/github.com\/flying-sheep\">@flying-sheep<\/a>, <a href=\"https:\/\/github.com\/joar\">@joar<\/a>, <a href=\"https:\/\/github.com\/LouisGobert\">@LouisGobert<\/a>, <a href=\"https:\/\/github.com\/mnoah1\">@mnoah1<\/a>, <a href=\"https:\/\/github.com\/nickwarters\">@nickwarters<\/a>, <a href=\"https:\/\/github.com\/PopoDev\">@PopoDev<\/a>, <a href=\"https:\/\/github.com\/renan-r-santos\">@renan-r-santos<\/a>, <a href=\"https:\/\/github.com\/shanesaravia\">@shanesaravia<\/a>, <a href=\"https:\/\/github.com\/soda92\">@soda92<\/a>, <a href=\"https:\/\/github.com\/T-256\">@T-256<\/a>, <a href=\"https:\/\/github.com\/tomoki\">@tomoki<\/a>, <a href=\"https:\/\/github.com\/vishrutss\">@vishrutss<\/a>.<\/p>\n<p>The community&#8217;s support and collaboration have been invaluable, and we look forward to continuing to find ways to engage and collaborate with you all in 2025!<\/p>\n<h2>Codebase changes<\/h2>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/codebase-changes.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-9946\" src=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/codebase-changes.png\" alt=\"Our code base added 51,972 lines of code and removed 48,629 lines.\" width=\"1600\" height=\"900\" srcset=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/codebase-changes.png 1600w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/codebase-changes-300x169.png 300w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/codebase-changes-1024x576.png 1024w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/codebase-changes-768x432.png 768w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/codebase-changes-1536x864.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/a><\/p>\n<p>This year, we made significant efforts to make our codebase more maintainable by rewriting what we could in Python and cleaning up old code as new code was introduced. As a result, 51,972 lines of code were added, and 48,629 lines of code were removed.<\/p>\n<h2>Tools Extensions<\/h2>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/tools.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-9949\" src=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/tools.png\" alt=\"Our tools extensions had significant install growth in 2024: Black formatter grew by 84.45%, autopep8 by 149.65%, pylint by 70.71%, flake8 by 88.63%, and mypy by 236.18%.\" width=\"1600\" height=\"900\" srcset=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/tools.png 1600w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/tools-300x169.png 300w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/tools-1024x576.png 1024w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/tools-768x432.png 768w, https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2024\/12\/tools-1536x864.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/a><\/p>\n<p>Although our repository stats do not account for our tools extensions, we want to highlight the growth and progress in these repositories.<\/p>\n<p>As part of our ongoing efforts to enhance the Python extension, we previously focused on separating linting and formatting tools into their own extensions. This year, we observed substantial growth across all of these extensions.<\/p>\n<p><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.black-formatter\">Black formatter<\/a> saw an impressive growth of 89.45% and is our most installed tools extension, while <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.autopep8\">autopep8<\/a> usage surged by 149.65%. <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.pylint\">Pylint<\/a> experienced a notable increase of 70.71%, and <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.flake8\">flake8<\/a> grew by 88.63%. Our <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.mypy-type-checker\">mypy type checker<\/a> topped the download growth chart with an astounding growth of 236.18%.<\/p>\n<p>We\u2019re incredibly proud of what we\u2019ve achieved together this year and can\u2019t wait to continue merging exciting updates in 2025. Thank you for being a part of our community!<\/p>\n<p>Engage with us on our GitHub repositories, <a href=\"https:\/\/github.com\/microsoft\/vscode-python\/issues\">@vscode-python<\/a> and <a href=\"https:\/\/github.com\/microsoft\/vscode-python-debugger\/issues\">@vscode-python-debugger<\/a>, and let us know what new features you would like to see next! You can stay up to date on latest releases by following us on X <a href=\"https:\/\/x.com\/pythonvscode\">@pythonvscode<\/a> and on our <a href=\"https:\/\/devblogs.microsoft.com\/python\/\">Python DevBlog<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As the year comes to a close, we would like to take the time to reflect and celebrate the incredible progress the Python extension for VS Code has made in the past year. From merging in top requested features to countless lines of code written and deleted, keep reading to get an inside look to all things<\/p>\n","protected":false},"author":99209,"featured_media":9951,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[17],"class_list":["post-9945","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-python"],"acf":[],"blog_post_summary":"<p>As the year comes to a close, we would like to take the time to reflect and celebrate the incredible progress the Python extension for VS Code has made in the past year. From merging in top requested features to countless lines of code written and deleted, keep reading to get an inside look to all things<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/posts\/9945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/users\/99209"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/comments?post=9945"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/posts\/9945\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/media\/9951"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/media?parent=9945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/categories?post=9945"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/tags?post=9945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}