{"id":486612,"date":"2024-06-25T18:49:37","date_gmt":"2024-06-25T17:49:37","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=pycharm&#038;p=486612"},"modified":"2024-07-01T10:45:44","modified_gmt":"2024-07-01T09:45:44","slug":"pycharm-2024-1-4","status":"publish","type":"pycharm","link":"https:\/\/blog.jetbrains.com\/en\/pycharm\/2024\/06\/pycharm-2024-1-4","title":{"rendered":"PyCharm 2024.1.4: What\u2019s New!"},"content":{"rendered":"\n<p>PyCharm 2024.1.4 is here! View and navigate to URLs directly from the <em>Editor<\/em> tab, and enjoy smart code assistance for TypedDict (PEP 692).<\/p>\n\n\n\n<p>You can download the latest version from our <a href=\"https:\/\/www.jetbrains.com\/pycharm\/download\/?section=mac\" target=\"_blank\" rel=\"noreferrer noopener\">download page<\/a>, or update your current version through our free <a href=\"https:\/\/www.jetbrains.com\/toolbox-app\/?_gl=1*1cogft*_ga*MjU1NTkwODM1LjE2ODE3MzQyNDE.*_ga_9J976DJZ68*MTcxMDUyMjYyNy4zMDcuMS4xNzEwNTIyNzI1LjYwLjAuMA..&amp;_ga=2.230112092.1950814981.1710335854-255590835.1681734241\" target=\"_blank\" rel=\"noopener\">Toolbox App<\/a>.&nbsp;<\/p>\n\n\n    <div class=\"buttons\">\n        <div class=\"buttons__row\">\n                                                <a href=\"https:\/\/www.jetbrains.com\/pycharm\/download\/?section=mac\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Download PyCharm 2024.1.4<\/a>\n                                                    <\/div>\n    <\/div>\n\n\n\n\n\n\n\n<h2 class=\"wp-block-heading\">Key Features&nbsp;<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Gutter actions and inlay hints for URLs<\/h3>\n\n\n\n<p>New gutter icons provide an easy way to manage URLs in Flask, FastAPI, and Django projects. In just a few clicks, you can test an endpoint by running the request in the HTTP Client, view all lower-level endpoints, and more. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1620\" height=\"832\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/06\/gutter_url_actions.png\" alt=\"\" class=\"wp-image-486613\"\/><\/figure>\n\n\n\n<p>Furthermore, new inlay hints with endpoint URLs further contribute to code readability for Python web frameworks.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"579\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/06\/Gutter-actions-and-inlay-hints-for-URLs_2.png\" alt=\"\" class=\"wp-image-486624\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">PEP 692: Smart code assistance for TypedDict<\/h3>\n\n\n\n<p>With support for <a href=\"https:\/\/peps.python.org\/pep-0692\/\" target=\"_blank\" rel=\"noreferrer noopener\">PEP 692<\/a>, keyword arguments defined as TypedDict are now available when you invoke parameter info (<em>\u2318P<\/em> \/ <em>Ctrl+P<\/em>), in code completion, and in the quick documentation popup (<em>F1<\/em><strong> <\/strong>\/<strong> <\/strong><em>Ctrl+Q<\/em>). Now you have access to yet another tool that lets you use the latest type hinting capabilities in Python to develop an easy-to-understand codebase.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"794\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/06\/PEP-692.png\" alt=\"\" class=\"wp-image-486638\"\/><\/figure>\n\n\n    <div class=\"buttons\">\n        <div class=\"buttons__row\">\n                                                <a href=\"https:\/\/www.jetbrains.com\/pycharm\/whatsnew\/\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Learn more<\/a>\n                                                    <\/div>\n    <\/div>\n\n\n\n\n\n\n\n<h3 class=\"wp-block-heading\">Warnings for uninstalled packages in requirements.txt<\/h3>\n\n\n\n<p>PyCharm now underlines packages that are listed in requirements.txt but that are not installed on the current Python interpreter with a yellow squiggly line. Hover over the package name and click <em>Install all missing packages<\/em> to immediately set up your development environment.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"553\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/06\/Warnings-for-uninstalled-packages-in-requirements.png\" alt=\"\" class=\"wp-image-486649\"\/><\/figure>\n\n\n    <div class=\"buttons\">\n        <div class=\"buttons__row\">\n                                                <a href=\"https:\/\/www.jetbrains.com\/pycharm\/download\/?section=mac\" class=\"btn\" target=\"\" rel=\"noopener\">Download PyCharm 2024.1.4<\/a>\n                                                    <\/div>\n    <\/div>\n\n\n\n\n\n\n\n<p>Get all of the details in our <a href=\"https:\/\/youtrack.jetbrains.com\/articles\/PY-A-233538242\/PyCharm-2024.1.4-241.18034.82-build-Release-Notes\" target=\"_blank\" rel=\"noopener\">release notes<\/a> so you don\u2019t miss out on anything new!<\/p>\n\n\n\n<p>If you come across any bugs, please let us know in our <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/PY?_gl=1*y59dtj*_ga*MjU1NTkwODM1LjE2ODE3MzQyNDE.*_ga_9J976DJZ68*MTcxMDUyMjYyNy4zMDcuMS4xNzEwNTIyODYwLjMwLjAuMA..&amp;_ga=2.242684738.1950814981.1710335854-255590835.1681734241\" target=\"_blank\" rel=\"noopener\">issue tracker<\/a> so we can fix them right away. Connect with us on <a href=\"https:\/\/twitter.com\/pycharm\" target=\"_blank\" rel=\"noopener\">X (formerly Twitter)<\/a> and share your thoughts on PyCharm 2024.1.4!&nbsp;<\/p>\n","protected":false},"author":1408,"featured_media":487678,"comment_status":"closed","ping_status":"closed","template":"","categories":[907],"tags":[6312,8428,8502,7041],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/pycharm\/486612"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/pycharm"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/types\/pycharm"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/users\/1408"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/comments?post=486612"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/pycharm\/486612\/revisions"}],"predecessor-version":[{"id":488736,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/pycharm\/486612\/revisions\/488736"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media\/487678"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media?parent=486612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/categories?post=486612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/tags?post=486612"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/cross-post-tag?post=486612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}