PyCharmの新機能
PyCharm 2019.3ではJupyterノートブック用の対話型ウィジェット、MongoDBサポート、およびすべてのPython 3.8機能用のコード支援が実装されました。
Proのみ の注意書きのある機能は、PyCharm Professionalエディションのみでサポートしています。
PyCharm 2019.3ではJupyterノートブック用の対話型ウィジェット、MongoDBサポート、およびすべてのPython 3.8機能用のコード支援が実装されました。
Proのみ の注意書きのある機能は、PyCharm Professionalエディションのみでサポートしています。
対話性を高めるため、Jupyterノートブックは対話型ウィジェットとして知られる対話型のコントロールをサポートしています。 これらのコントロールを使用すると、静的なノートブックを対話型のダッシュボードに変え、あなたのノートブックを表示する人が表示をカスタマイズできるようになります。 今回のアップデートにより、PyCharmで対話型ウィジェットがサポートされるようになりました。 つまり、出力結果とウィジェットが描画され、それを使用してネイティブなJupyterノートブックのようにノートブックを操作することができます。
今回PyCharmは一般的なウィジェットライブラリをサポートするようになりました。 使用しているライブラリが動作しない場合は、課題の投稿をお願いします。
PyCharmが提供するメリットの一つに、弊社の高度な静的コード解析アルゴリズムにより可能となったインテリジェントなコーディング支援があります。 しかし、Pythonのように動的な言語の場合、静的コード解析だけで十分とは限りません。 そのため、今回のアップデートはJupyter自身が提供するランタイム情報を活用することで機能を拡張しました。 その結果、IDEが静的な解析を使用しても型を推測できない辞書インデックスや深くネストした式のような一部のケースで、よりスマートにコードを補完できるようになりました。
プレビューのフォントサイズをエディタに合わせて設定したり、設定でカスタマイズしたりできるようになりました。 また、プレビューでエディタの `Change font size (Zoom) with Ctrl+Mouse Wheel `(Ctrl+マウスホイールによるフォントサイズの変更)オプションが考慮されるようになりました。 このオプションが有効な場合は、Ctrlを押したままマウスホイールを使用してプレビュー内のフォントサイズを拡大・縮小できます。
ファイル名を入力する際に入力ミスをしてしまうのではないかと不安に思いませんか? 特に、`open(‘data/survey_data_28112019_exported.csv’)` といった長いファイル名を入力する際にそう思いませんか? このバージョンから、Pythonのコードエディタやコンソールでファイルパスが補完されるようになりました。 コンテキストを認識するコード補完機能を拡張しましたので、ファイル関連のコンテキストで文字列リテラルにファイルパスの候補が表示されるようになりました。
絶対インポートよりも相対インポートをお好みですか? PyCharmはこれら2つのスタイル同士を自動的に変換できるようになりました。 すでにあるパッケージから相対インポートを使用してインポートを行っている場合、当該パッケージからの新しいインポートも自動的に相対インポートとして作成されるようになります。
PyCharmがTypedDictをサポートするようになったため、辞書に対する不適切な値の割り当てを防止できるようになりました。 キーと値のペア構造を正確に表現できるようになり、コードエディタにこれらのペア構造の適切な使用を支援してもらうこともできます。
特定の文字列リテラルを引数に取るメソッド(`open` のファイルモードなど)を使用していますか? Python 3.8の `Literal` 型の注釈を使用すれば、型だけではなく特定の値をチェックすることができます。 サポートされていない値を使用して関数が呼び出された際、PyCharmが警告を表示するようになりました。
当社のテスト作成ツールが自動的にアップグレードされ、pytestもサポートできるようになりました。 このアップグレードに伴い、メソッド宣言部のコンテキストメニューで Go To | Test オプションをクリックするだけでPyCharmが自動的にpytestテストを作成できるようになりました。
デバッグ中の追跡情報は、可能な限り明確かつ詳細であるべきです。 このため、変数ビューを微調整し、より系統立った包括的なデータを表示できるようにしました。 この変更により新しい順序づけ、科学配列の視覚的表現の改善、コレクション長の表示、重複情報の削除が期待されます。
PyCharmの高度なコードインサイトを使用すれば、作業をより早く完了させることができます。 この機能を活用するには、コードとインポート対象の全パッケージの両方のインデックスを生成する必要があります。 多くデータサイエンス関連のパッケージのようにコンパイル済みの拡張機能を含むパッケージを使用する場合、そのパッケージのインデックスを生成する前にPythonインターフェースを記述するPythonスケルトン(スタブファイル)を生成する必要があります。 今回のリリースではこの処理が改善され、インデックス生成処理が少なくとも25%高速化されました。 もちろん、複数のvirtualenvで同じパッケージを使用する場合は生成済みのインデックスが再利用されます。
残念ながら、コードの作業に戻る前にPyCharmのUIがフリーズしてしまうことがあります。 当社はこの問題を非常に不快なものであると認識しており、フリーズの削減に一生懸命に取り組んでいます。 このリリースではUIのフリーズを引き起こす可能性のある多数の問題を修正し、IDEから直接UIのフリーズを即座に報告できる機能を追加しました。これにより、当社がフリーズの原因を調査し、その再発を確実に防止できるようになるはずです。 PyCharmでのUIフリーズを解消するため、ご協力をよろしくお願いいたします!
MongoDBを使用するアプリケーションを開発していますか? PyCharmでMongoDBのコレクションを見れるようになりました。 データベースツールウィンドウ(View | Tool Windows | Database)からデータソースを追加し、データベースに接続してください。 PyCharm Professionalエディションには、JetBrains製のプロフェッショナル向けSQL IDEであるJetBrains DataGripのすべてのデータベース機能が組み込まれています。
コマンドラインアプリケーションを作成する際、通常は引数を素早く変更できると便利です。 `Edit Configuration` を開けばいつでも引数を変更できますが、このリリースからはより便利な方法で引数を変更できます。新しい実行構成マクロ(変数)を使用すれば、アプリケーションを起動するたびにPyCharmに値の入力を促してもらうことができます。
あるテキストがファイル内の一部に出現する頻度を確認したいですか? Findアクションが初期状態で選択した範囲に対象を絞り込むようになりました。 全体を検索したいですか? 検索範囲をファイル全体に拡張するには、Ctrl-F(macOSの場合はCmd-F)をもう一度押してください。
ブランチの数が多くなるほど、それらの違いを追跡するのは難しくなります。 新バージョンのPyCharmでは、ブランチ比較機能の外観が改善され、コミットによる2つのブランチ間の差分を簡単に確認できるようになりました。
使用中のリポジトリの種類にかかわらず、一箇所で新しいプロジェクトをチェックアウトできるようになりました。
CDNのスタイルシートを使用していますか? そのスタイルシートのバージョンをダウンロードし、コード補完に使用できるようになりました。
Pythonデバッガと同様、JavaScriptデバッガが呼び出しているメソッドの戻り値を表示するようになりました。 戻り値を確認するには、デバッガの歯車アイコンをクリックして「Show Return Values」を有効化してください。
Jupyter対応で最も要望の多かった機能の一つに、ボタンをワンクリックしてすべてのセルを実行することがありました。 これは思っていたほど簡単なことではありませんでした。なぜなら、PyCharm側でJupyterの一部の実行ロジックを実装し直さなければならなかったからです。 この機能をPyCharmで使用できるようになったことをお知らせいたします。
複数のプロジェクトを開く場合、PyCharmは最初に開かれたプロジェクトを明示的に使用してマネージドJupyterサーバーを起動していました。 今回、これを設定できるようになりました。 また、Jupyterサーバーがリッスンする専用のポートを選択できるようになりました。
ブラウザでJupyter Notebookを表示する際、レイアウトが自然にセルから若干はみだしてしまいます。 PyCharmではコードをPythonファイルとして表示するため、もう少し詰まって表示されます。 コードの視認性を向上させるため、ファイルに残らないノートブックに仮想的な空行を挿入するようにしました。
PyCharmのデバッガはノートブックで作業する際に変数の追跡を支援し、それらの現在の状態を表示します。
異なる言語のコードが潜むプロジェクトに取り組んでいますか? PyCharmは、Windowsの.batファイル、#、C++、Groovy、Lua、Makefilesなどのシンタックスをハイライト表示するようになりました。
ほとんどのプロジェクトでは、そのライフサイクルのある段階でリポジトリにbashファイルがチェックインされます。 PyCharmは、bashの構文を強調表示し、基本的な補完を提供し、Shellcheckと統合してbashファイルをチェックするようになりました。
WindowsでのPyCharmの外観が従来にも増して改善されました。UIの外観を微調整し、よりモダンになりました。
cURLの書式が初期状態でサポートされるようになりました。 cURL書式のリクエストをコピーして、それを直接HTTPリクエストファイルに貼り付けるだけで適切な書式に変換することができます。 この新機能を使用するには、新しい .http ファイルかHTTPリクエストスクラッチファイルを作成し、cURL文字列を貼り付けてください。 これにより、完全なリクエストに自動的に変換されます。
後から権限を要求するエンドポイント呼び出すサービスで認証リクエストをする場合を想像してください。 かつてはこの認証応答は失われ、必要なタイミングで毎回認証情報が強要されていました。 今回、この問題が解消されました! すべてのCookieが将来的な使用に備えて保存され、次のリクエストを実行する際に転送されます。
EditorConfigファイルを使って、コードスタイル設定を直接リポジトリに埋め込むことができます。 この機能を改善し、より柔軟性を高めました。例えば、複数のEditorConfigファイルを使って様々な設定をプロジェクト内のさまざまな部分に適用できるようになりました。 詳細については、ドキュメントをご覧ください。
関数の使用を制限するには、関数定義に位置限定パラメータを指定してください。 この新しい構文は複数の引数が特定の順序でのみ呼び出されるよう、厳密な定義を行えるようにします。
式の中で値を割り当てると、コードがよりコンパクトになり、可読性が向上します。 このリリースでは1行で条件式を作成し、同時に変数値を代入できるようになりました。
不要な継承や再定義を避けるため、'Final' 修飾子を使ってメソッドやクラス、変数の使用を制限したクラスやサブクラスを設計してください。
f文字列で '=' を使用し、式とその値を同時に表示できるようになりました。 式とその結果を両方とも表示する文字列を生成するには、f'{expr=}' を使用してください。
PyCharmの主な機能の一つには、コードの自動リファクタリング機能が挙げられます。 この方法を使えばコードの動作が変わることはないため、自信を持って操作を実行することができます。 今回、Pythonの関数を自動的にインライン化する機能を追加しました。 Pythonのリファクタリングに関する詳細をご確認ください。
重複コードは不快なコードであるため、PyCharmは単一の関数にリファクタリング可能なものがあればそれを通知します。
コードのリファクタリングをより細かくカスタマイズできるようになり、動的参照の名前を変更するかどうかを選択できるオプションが追加されました。 このオプションを選択すると、プレビューインターフェースを使って実際に名前を変更する出現箇所とそのままにしておく出現箇所を決めることができます。
スマートステップイン(Shift-F7)機能が強化されました。 ターゲットの視認性が向上し、矢印キーやタブでそれらを簡単に切り替え、Enterを押して選択したターゲットにステップインできるようになりました。
デバッガのコールスタックのフィルタアイコンを使って、サードパーティコードからのすべての呼び出しを非表示にすることができます。 この新機能を使えば、ライブラリとしてマークしたものすべてを非表示にできます。
PyCharm Professionalエディションに当社のプロフェッショナル向けデータベースIDEであるJetBrains DataGripのすべてのデータベース機能をバンドルされていることをご存知でしたか? 当社データベースツールの新機能の一つには、複数のデータソースを横断する全文検索があります。これにより、コードがどこにあるのか分からない場合でも目的のデータを見つけることができます。
Notebookのコードを簡単に編集できるようにしました。ノートブックを編集するときに、ソースが通常のPythonファイルのように見えるようになりました。 これにより、コード間の移動が楽になります。 もちろん、ラウンドトリップ編集をサポートしており、PyCharmかブラウザのどちらかで行われた変更はすべて即座に反映されます。
Jupyter Notebookは、データ探索と対話的なデータ処理に最高に役立ちます。 PyCharmを使用すると、Jupyter Notebookがさらに使いやすくなります。なぜなら、IDEでノートブックからセルを素早く実行してデバッグできるからです。 もちろん、ブラウザ内ノートブックのホットキーの多くはPyCharmでも機能します。 例えば、Shift+Enterキーを使って強調表示されたセルを実行し、一つ下のセルを選択できます。
ノートブックをより素早く起動しましょう。 PyCharmを使用した場合、サーバーやカーネルを手動で起動する必要はありません。ノートブックを開いてセルを実行するだけです。 PyCharmは自動的にサーバーと、開いたノートブック用の適切なカーネルを起動します。
変数の現在の値が分からなくなった場合は、PyCharmの変数ビューアを使用して、すべてが正しく表示されていることを確認できます。
開発中は、コード内のさまざまな場所を行き来する必要がしばしば生じます。 PyCharmにはずっと以前からこれらのファイル同士を素早く移動するための「Recent Files」ポップアップ(Ctrl+EまたはmacOSの場合はCmd+E)が実装されています。 しかし、ファイルにアクセスするだけではなく、特定の場所に移動する必要があることを考慮し、新しく改善された「Recent Locations」ポップアップ (Ctrl+Shift+EまたはmacOSの場合はCmd+Shift+E)を導入し、目的の場所に素早くたどり着けるようにしました。
デフォルトのスタイルはお気に召しませんか? 今回、UIテーマプラグインのサポートを強化いたしました。 「tag: UI」で検索し、プラグインマーケットプレイスでテーマを一つ見つけてください。または、独自のテーマを作成する方法を学んでください。
新しいツールに切り替える際に最も苦労する点の1つは、新しいホットキーをすべて学ぶ必要があるということです。 そこで今回、Sublime Textキーマップを追加し、誰もが簡単にSublime TextからPyCharmに切り替えられるようにしました。
PyCharmのデバッガでコレクションを最初に読み込む際、遅延なく無限に大規模コレクションを処理できるようになりました。
Python 3.7のデータクラスはすでにPyCharmでサポートされていますが、このサポートを拡張し、データクラスのサブクラスでも正確なコード補完が確実に得られるようにしました。
Pythonまたはフレームワークのバージョン間を移行するときなど、複数の環境用にアプリケーションを開発する場合、それらの環境をすばやく切り替えて現在使用しているバージョンを一目で確認できれば、作業が楽になります。
Pythonのオプション入力は、コードを文書化し、間違いを防ぐのに役立ちます。 変数代入時に型をチェックすることで、同機能のサポートをさらに強化いたしました。
PyCharmはVagrantボックス内のPythonインタプリタをサポートしており、Vagrantファイルの見栄えも改善できるようになりました。
Raspberry PiでGPIOピンを制御するにはrootアクセスが必要です。そのため、GPIO開発を容易にするために、PyCharm 2019.1ではSSH越しにroot権限でコードを実行できるようにしました。もちろん、他の用途でroot権限を使用することもできますが、これらを公然と推奨したくはありません。今すぐ推奨するべきでしょうか?
CSSは何年もかけてどんどん強化されてきましたが、複雑さも増してしまいました。 この複雑度が増した最新CSSの複雑さを回避できるように、クイックドキュメントのサポートを強化いたしました。Ctrl+Q(またはmacOSの場合はCtrl+J)を押すだけで詳細を確認できます。 ご心配なく。「p」タグのドキュメントをお調べになっても、誰にも口外しません。
PyCharm Professional EditionにはJetBrains WebStormの優れたJavaScriptサポートが備わっています。 Node.JSコードとブラウザ組み込みのJavaScriptの両方に対応する、新しい改良版のJavaScriptデバッグコンソールは作成されたばかりです。
大規模なテストスイートは使えますが、実行には時間がかかる可能性があります。 実行処理をもう少し早く完了させるために、pytestのインテグレーションをアップグレードして、マルチプロセステストの実行をサポートするようになりました。
PyCharm ProfessionalエディションはJetBrains DataGripのすべてのSQLサポートをバンドルしております。 新しいデータベース接続を設定するプロセスが改善されました。 まだお試しでない場合は、ぜひお使いください。 データベースを設定後、テーブルを調査できるようになるだけではなく、Pythonコードでクエリを書く際にスキーマ対応のSQL補完機能もご利用いただけるようになります。