{"id":795,"date":"2023-11-21T17:00:59","date_gmt":"2023-11-21T17:00:59","guid":{"rendered":"https:\/\/fde.cat\/index.php\/2023\/11\/21\/writing-and-linting-python-at-scale\/"},"modified":"2023-11-21T17:00:59","modified_gmt":"2023-11-21T17:00:59","slug":"writing-and-linting-python-at-scale","status":"publish","type":"post","link":"https:\/\/fde.cat\/index.php\/2023\/11\/21\/writing-and-linting-python-at-scale\/","title":{"rendered":"Writing and linting Python at scale"},"content":{"rendered":"<p>Python plays a big part at Meta. It powers <a href=\"https:\/\/engineering.fb.com\/2023\/08\/15\/developer-tools\/immortal-objects-for-python-instagram-meta\/\">Instagram\u2019s backend<\/a> and plays an important role in our configuration systems, as well as much of our <a href=\"https:\/\/ai.meta.com\/tools\/pytorch\/\">AI work<\/a>.<\/p>\n<p>Meta even <a href=\"https:\/\/engineering.fb.com\/2023\/10\/05\/developer-tools\/python-312-meta-new-features\/\">made contributions to Python 3.12<\/a>, the latest version of Python.<\/p>\n<p>On this episode of the\u00a0<a href=\"https:\/\/insidefacebookmobile.libsyn.com\/55-what-its-like-to-ship-code-at-meta\">Meta Tech Podcast<\/a>, Meta engineer Pascal Hartig (<a href=\"https:\/\/www.threads.net\/@passy_\">@passy<\/a>) is joined by\u00a0Amethyst Reese, a production engineer at Meta, to discuss all things Python at Meta.<\/p>\n<p>They discuss: how Meta\u2019s Python Foundation Team works to improve the developer experience of everyone working with Python at Meta; <a href=\"https:\/\/engineering.fb.com\/2023\/08\/07\/developer-tools\/fixit-2-linter-meta\/\">Fixit 2<\/a>, Meta\u2019s recently open-sourced linter framework; and what exactly the role of production engineer at Meta entails.<\/p>\n<p>For more from Amethyst, be sure to read her blog post: <a href=\"https:\/\/engineering.fb.com\/2023\/08\/07\/developer-tools\/fixit-2-linter-meta\/\">Fixit 2: Meta\u2019s next-generation auto-fixing linter<\/a><\/p>\n<p>Download or listen to the episode below:<\/p>\n<p>\nYou can also listen to the episode wherever you get your podcasts:<\/p>\n<p><a href=\"https:\/\/podcasts.apple.com\/gb\/podcast\/inside-facebook-mobile\/id1370910331?i=1000633126086\">Apple Podcasts<\/a><br \/>\n<a href=\"https:\/\/podcasts.google.com\/feed\/aHR0cHM6Ly9pbnNpZGVmYWNlYm9va21vYmlsZS5saWJzeW4uY29tL3Jzcw\/episode\/MTE1MjNkZWUtMDkwMi00MmRkLWI1NWYtYjQ2M2M0YmViMDEx?sa=X&amp;ved=0CAUQkfYCahcKEwjYqoyvwtOCAxUAAAAAHQAAAAAQCg\">Google Podcasts<\/a><br \/>\n<a href=\"https:\/\/open.spotify.com\/episode\/6mxBYXumYpQaRFrs9Z3SzA?si=LTxpyeYwSuC4CiFDjkeZWA\">Spotify<\/a><br \/>\n<a href=\"https:\/\/pca.st\/A5tE\">PocketCasts<\/a><br \/>\n<a href=\"https:\/\/overcast.fm\/login\">Overcast<\/a><br \/>\n<a href=\"https:\/\/castro.fm\/itunes\/1370910331\">Castro<\/a><\/p>\n<p>The\u00a0<a href=\"https:\/\/insidefacebookmobile.libsyn.com\/\">Meta Tech Podcast<\/a>\u00a0is a podcast, brought to you by Meta, where we highlight the work Meta\u2019s engineers are doing at every level \u2013 from low-level frameworks to end-user features.<\/p>\n<p>The post <a href=\"https:\/\/engineering.fb.com\/2023\/11\/21\/production-engineering\/writing-linting-python-at-scale-meta\/\">Writing and linting Python at scale<\/a> appeared first on <a href=\"https:\/\/engineering.fb.com\/\">Engineering at Meta<\/a>.<\/p>\n<p>Engineering at Meta<\/p>","protected":false},"excerpt":{"rendered":"<p>Python plays a big part at Meta. It powers Instagram\u2019s backend and plays an important role in our configuration systems, as well as much of our AI work. Meta even made contributions to Python 3.12, the latest version of Python. On this episode of the\u00a0Meta Tech Podcast, Meta engineer Pascal Hartig (@passy) is joined by\u00a0Amethyst&hellip; <a class=\"more-link\" href=\"https:\/\/fde.cat\/index.php\/2023\/11\/21\/writing-and-linting-python-at-scale\/\">Continue reading <span class=\"screen-reader-text\">Writing and linting Python at scale<\/span><\/a><\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-795","post","type-post","status-publish","format-standard","hentry","category-technology","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":824,"url":"https:\/\/fde.cat\/index.php\/2024\/02\/12\/meta-loves-python\/","url_meta":{"origin":795,"position":0},"title":"Meta loves Python","date":"February 12, 2024","format":false,"excerpt":"By now you\u2019re already aware that Python 3.12 has been released. But did you know that several of its new features were developed by Meta? Meta engineer Pascal Hartig (@passy) is joined on the Meta Tech Podcast by Itamar Oren and Carl Meyer, two software engineers at Meta, to discuss\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":768,"url":"https:\/\/fde.cat\/index.php\/2023\/10\/05\/meta-contributes-new-features-to-python-3-12\/","url_meta":{"origin":795,"position":1},"title":"Meta contributes new features to Python 3.12","date":"October 5, 2023","format":false,"excerpt":"Python 3.12 is out! It includes new features and performance improvements \u2013 some contributed by Meta \u2013 that we believe will benefit all Python users. We\u2019re sharing details about these new features that we worked closely with the Python community to develop. This week\u2019s release of Python 3.12 marks a\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":742,"url":"https:\/\/fde.cat\/index.php\/2023\/08\/07\/fixit-2-metas-next-generation-auto-fixing-linter\/","url_meta":{"origin":795,"position":2},"title":"Fixit 2: Meta\u2019s next-generation auto-fixing linter","date":"August 7, 2023","format":false,"excerpt":"Fixit is dead! Long live Fixit 2 \u2013 the latest version of our open-source auto-fixing linter. Fixit 2 allows developers to efficiently build custom lint rules and perform auto-fixes for their codebases. Fixit 2 is available today on PyPI. Python is one of the most popular languages in use at\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":888,"url":"https:\/\/fde.cat\/index.php\/2024\/06\/25\/the-key-to-a-happy-rust-c-relationship\/","url_meta":{"origin":795,"position":3},"title":"The key to a happy Rust\/C++ relationship","date":"June 25, 2024","format":false,"excerpt":"The history of Rust at Meta goes all the way back to 2016, when we first started using it for source control. Today, it has been widely embraced at Meta and is one of our primary supported server-side languages (along with C++, Python, and Hack). But that doesn\u2019t mean there\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":748,"url":"https:\/\/fde.cat\/index.php\/2023\/08\/15\/introducing-immortal-objects-for-python\/","url_meta":{"origin":795,"position":4},"title":"Introducing Immortal Objects for Python","date":"August 15, 2023","format":false,"excerpt":"Instagram has introduced Immortal Objects \u2013 PEP-683 \u2013 to Python. Now, objects can bypass reference count checks and live throughout the entire execution of the runtime, unlocking exciting avenues for true parallelism. At Meta, we use Python (Django) for our frontend server within Instagram. To handle parallelism, we rely on\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":614,"url":"https:\/\/fde.cat\/index.php\/2022\/07\/27\/programming-languages-endorsed-for-server-side-use-at-meta\/","url_meta":{"origin":795,"position":5},"title":"Programming languages endorsed for server-side use at Meta","date":"July 27, 2022","format":false,"excerpt":"\u2013 Supporting a programming language at Meta is a very careful and deliberate decision. \u2013 We\u2019re sharing our internal programming language guidance that helps our engineers and developers choose the best language for their projects. \u2013 Rust is the latest addition to Meta\u2019s list of supported server-side languages. At Meta,\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts\/795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/comments?post=795"}],"version-history":[{"count":0,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts\/795\/revisions"}],"wp:attachment":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/media?parent=795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/categories?post=795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/tags?post=795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}