PyCharmの新機能

PyCharm 2019.3ではJupyterノートブック用の対話型ウィジェット、MongoDBサポート、およびすべてのPython 3.8機能用のコード支援が実装されました。

Jupyter Pro のみ

対話型ウィジェット

対話型ウィジェット

To provide more interactivity, Jupyter notebooks support interactive controls known as interactive widgets. これらのコントロールを使用すると、静的なノートブックを対話型のダッシュボードに変え、あなたのノートブックを表示する人が表示をカスタマイズできるようになります。 今回のアップデートにより、PyCharmで対話型ウィジェットがサポートされるようになりました。 つまり、出力結果とウィジェットが描画され、それを使用してネイティブなJupyterノートブックのようにノートブックを操作することができます。

今回PyCharmは一般的なウィジェットライブラリをサポートするようになりました。 使用しているライブラリが動作しない場合は、課題の投稿をお願いします。

ランタイム補完

ランタイム補完

PyCharmが提供するメリットの一つに、弊社の高度な静的コード解析アルゴリズムにより可能となったインテリジェントなコーディング支援があります。 しかし、Pythonのように動的な言語の場合、静的コード解析だけで十分とは限りません。 そのため、今回のアップデートはJupyter自身が提供するランタイム情報を活用することで機能を拡張しました。 その結果、IDEが静的な解析を使用しても型を推測できない辞書インデックスや深くネストした式のような一部のケースで、よりスマートにコードを補完できるようになりました。

出力パネルの拡大・縮小

出力パネルの拡大・縮小

プレビューのフォントサイズをエディタに合わせて設定したり、設定でカスタマイズしたりできるようになりました。 また、プレビューでエディタの `Change font size (Zoom) with Ctrl+Mouse Wheel` オプションが考慮されるようになりました。 このオプションが有効な場合は、Ctrl を押したままマウスホイールを使用してプレビュー内のフォントサイズを拡大・縮小できます。

その他の改善

  • JupyterノートブックがIDEの外で変更された場合(ネイティブなJupyterのインターフェースなどを使用した場合など)、IDEはその状態を自動的に同期してノートブックの最新版を表示し、変更が失われないようにします。

Python

ファイルパスの補完

ファイルパスの補完

ファイル名を入力する際に入力ミスをしてしまうのではないかと不安に思いませんか? 特に、`open(‘data/survey_data_28112019_exported.csv’)` といった長いファイル名を入力する際にそう思いませんか? このバージョンから、Pythonのコードエディタやコンソールでファイルパスが補完されるようになりました。 コンテキストを認識するコード補完機能を拡張しましたので、ファイル関連のコンテキストで文字列リテラルにファイルパスの候補が表示されるようになりました。

相対インポートのサポート

相対インポートのサポート

絶対インポートよりも相対インポートをお好みですか? PyCharmはこれら2つのスタイル同士を自動的に変換できるようになりました。 すでにあるパッケージから相対インポートを使用してインポートを行っている場合、当該パッケージからの新しいインポートも自動的に相対インポートとして作成されるようになります。

Python 3.8:TypedDict

Python 3.8:TypedDict

PyCharmがTypedDictをサポートするようになったため、辞書に対する不適切な値の割り当てを防止できるようになりました。 キーと値のペア構造を正確に表現できるようになり、コードエディタにこれらのペア構造の適切な使用を支援してもらうこともできます。

Python 3.8:Literal型の注釈

Python 3.8:Literal型の注釈

特定の文字列リテラルを引数に取るメソッド(`open` のファイルモードなど)を使用していますか? Python 3.8の `Literal` 型の注釈を使用すれば、型だけではなく特定の値をチェックすることができます。 サポートされていない値を使用して関数が呼び出された際、PyCharmが警告を表示するようになりました。

pytestテストの自動作成

pytestテストの自動作成

当社のテスト作成ツールが自動的にアップグレードされ、pytestもサポートできるようになりました。 このアップグレードに伴い、メソッド宣言部のコンテキストメニューで Go To | Test オプションをクリックするだけでPyCharmが自動的にpytestテストを作成できるようになりました。

デバッガ:コレクションのサイズ情報

デバッガ:コレクションのサイズ情報

デバッグ中の追跡情報は、可能な限り明確かつ詳細であるべきです。 このため、変数ビューを微調整し、より系統立った包括的なデータを表示できるようにしました。 この変更により新しい順序づけ、科学配列の視覚的表現の改善、コレクション長の表示、重複情報の削除が期待されます。

その他の改善

  • 現在、ネットワークスクリプトを処理していますか、あるいはハードウェアと連動して16進数値や2進数値を使用していますか? そのような方に朗報です! PyCharmの変数ビューを通してコンソールやデバッガから10進数の値形式を16進数や2進数の形式に直接変換できる機能が実装されました。
  • Windows上でLinux向けに開発をしていますか? Windows Subsystem for Linux 2を新たにサポートしました。 PyCharm で WSL 2 から利用可能な Python インタプリタを構成Pro のみ

パフォーマンスの改善

インデックス生成の高速化

インデックス生成の高速化

PyCharmの高度なコードインサイトを使用すれば、作業をより早く完了させることができます。 この機能を活用するには、コードとインポート対象の全パッケージの両方のインデックスを生成する必要があります。 多くデータサイエンス関連のパッケージのようにコンパイル済みの拡張機能を含むパッケージを使用する場合、そのパッケージのインデックスを生成する前にPythonインターフェースを記述するPythonスケルトン(スタブファイル)を生成する必要があります。 今回のリリースではこの処理が改善され、インデックス生成処理が少なくとも25%高速化されました。 もちろん、複数のvirtualenvで同じパッケージを使用する場合は生成済みのインデックスが再利用されます。

フリーズの削減、フリーズの報告方法の改善

フリーズの削減、フリーズの報告方法の改善

残念ながら、コードの作業に戻る前にPyCharmのUIがフリーズしてしまうことがあります。 当社はこの問題を非常に不快なものであると認識しており、フリーズの削減に一生懸命に取り組んでいます。 このリリースではUIのフリーズを引き起こす可能性のある多数の問題を修正し、IDEから直接UIのフリーズを即座に報告できる機能を追加しました。これにより、当社がフリーズの原因を調査し、その再発を確実に防止できるようになるはずです。 PyCharmでのUIフリーズを解消するため、ご協力をよろしくお願いいたします!

その他の改善

  • 今年、当社はあらゆるJetBrains IDE製品の起動処理を高速化するために多大な努力を払ってきました。 バージョン2019.3ではコアプラットフォームの起動時間がさらに改善されています。また、今後も継続的に各種IDEの起動高速化に取り組む予定です。
  • IDEを再起動せずにテーマを変更できるようになりました。 プリインストールされたテーマを選択する際や、新しいテーマをダウンロードした直後の両方に対応しています。
  • PyCharm 2019.3ではイベントの処理や無視ファイルの操作に関するさまざまな改善が行われ、バージョン管理ステータスの更新が高速化されています。
  • エディタの描画方法に変更を加えることで、長いファイルのスクロール操作がかなりスムーズになりました。

データベースのサポート Pro のみ

MongoDBのサポート

MongoDBのサポート

MongoDBを使用するアプリケーションを開発していますか? PyCharmでMongoDBのコレクションを見れるようになりました。 データベースツールウィンドウ(View | Tool Windows | Database)からデータソースを追加し、データベースに接続してください。 PyCharm Professionalエディションには、JetBrains製のプロフェッショナル向けSQL IDEであるJetBrains DataGripのすべてのデータベース機能が組み込まれています。

IDEの機能

実行構成のパラメータ化

実行構成のパラメータ化

コマンドラインアプリケーションを作成する際、通常は引数を素早く変更できると便利です。 `Edit Configuration` を開けばいつでも引数を変更できますが、このリリースからはより便利な方法で引数を変更できます。新しい実行構成マクロ(変数)を使用すれば、アプリケーションを起動するたびにPyCharmに値の入力を促してもらうことができます。

選択範囲を検索

選択範囲を検索

あるテキストがファイル内の一部に出現する頻度を確認したいですか? Findアクションが初期状態で選択した範囲に対象を絞り込むようになりました。 全体を検索したいですか? 検索範囲をファイル全体に拡張するには、Ctrl-F をもう一度押してください。

その他の改善

  • アプリケーションの一部がJavaScriptで書かれている場合、Handlebarsテンプレートがどこかで使用されている可能性が十分にあります。 Handlebars プラグインをインストールすると、Python の任意の文字列で Handlebars のコードインテリジェンスを有効化できます。 文字列内で Alt-Enter を押し、‘Inject language or reference’ を選択して ‘Handlebars’ と入力するだけです。

バージョン管理

現在のブランチとの比較を改善

現在のブランチとの比較を改善

ブランチの数が多くなるほど、それらの違いを追跡するのは難しくなります。 新バージョンのPyCharmでは、ブランチ比較機能の外観が改善され、コミットによる2つのブランチ間の差分を簡単に確認できるようになりました。

リポジトリ複製UIの改良

リポジトリ複製UIの改良

使用中のリポジトリの種類にかかわらず、一箇所で新しいプロジェクトをチェックアウトできるようになりました。

その他の改善

  • リモートブランチをチェックアウトする際、通常はリモートブランチを追跡するローカルブランチを作成するかと思います。 PyCharm 2019.3では、「Checkout」は、リモートブランチの最新状態を確認可能にしつつ、ローカルのコミットを失うリスクを無くすための、唯一のアクションです。
  • PyCharmでは現在チェックアウトしているブランチをいつでもプッシュすることができます。 時には別のブランチに対して、プッシュしたくなる場合があるかと思いますが、今後はそのブランチを先にチェックアウトする必要はありません。

ウェブ開発 Pro のみ

CDNのCSSクラス

CDNのCSSクラス

CDNのスタイルシートを使用していますか? そのスタイルシートのバージョンをダウンロードし、コード補完に使用できるようになりました。

JavaScriptをデバッグ中にメソッドの戻り値を確認

JavaScriptをデバッグ中にメソッドの戻り値を確認

Pythonデバッガと同様、JavaScriptデバッガが呼び出しているメソッドの戻り値を表示するようになりました。 戻り値を確認するには、デバッガの歯車アイコンをクリックして「Show Return Values」を有効化してください。

その他の改善

  • 単一引用符や二重引用符を強制するCSSスタイル設定を設定できます。
  • CSSで単一引用符を使用する場合も二重引用符を使用する場合も、PyCharmは引用符の一貫性を維持するのに役立ちます。 これは、Settings | Editor | Code Style | Style Sheets | CSSの「Other」タブで設定できます。
  • propTypesが定義されていないReactコンポーネントを使用していますか? PyCharmはプロパティを推測し、propTypesが定義されていないコンポーネントのコードを補完できるようになりました。