複数のリポジトリのソースコードにレシピを適用し、フレームワーク移行やセキュリティ修正を行うオープンソースの自動リファクタリングエンジン。
- スター
- 2,245
- フォーク
- 203
- 未解決の Issue
- 177
- 最終コミット
- 昨日
これは何?
Ropeは、ソースコードのリファクタリングに特化したPythonライブラリです。プロジェクト内のPythonコードを解析し、シンボルの名前変更、モジュール間での定義の移動、コードの抽出やインライン化といった構造変更を適用して、ファイルをまたぐ参照の整合性を保ちます。
Ropeは純粋なPythonで書かれており、依存するのはPythonのみで、Node.jsなどのランタイムは必要ありません。Pythonコードなので、Python開発者が読んだり変更したりできます。Python 3.10までの構文の大部分をサポートしています。バージョン1.0.0以降はPython 2では動作せず、Python 2のサポートはpython2ブランチと0.xリリースに残されています。
Ropeはライブラリとしての利用を想定しており、通常はエディターやIDEとの連携を通じて使用します。ドキュメントでは設定方法とAPIの使い方を説明しています。補完に加えて基本的なリファクタリング機能を提供するJediと比べ、Ropeはより幅広いリファクタリング操作に重点を置いています。
主な機能
- 01Pythonプロジェクト全体でシンボルの名前を変更し、参照も更新
- 02関数、クラス、モジュールの移動と抽出
- 03Python 3.10までの構文の大部分をサポート
- 04Python以外への依存がなく、Node.jsも不要
- 05エディターやIDEからライブラリとして利用可能
ユースケース
- 大規模なPythonコードベース全体で、広く使われている関数やクラスの名前を変更する
- コードを新しいファイルに移動してモジュール構成を再編する
- カスタムエディターやPythonツールにリファクタリング機能を組み込む
使う前に知っておきたいこと
- Python構文の大半をPython 3.10までサポートしているため、それより新しい構文には未対応の部分がある場合があります。
- LGPL-3.0でライセンスされています。コピーレフト型ライセンスであり、ライブラリの改変にはその条件が適用されます。
- Python 2では動作しません。Python 2ユーザーはpython2ブランチまたは0.xリリースを使用してください。
トピック
よくある質問
- rope とは?
- プロジェクト全体での名前変更、移動、抽出など、安全なコード変換を行うPythonリファクタリングライブラリです。 Ropeは、ソースコードのリファクタリングに特化したPythonライブラリです。プロジェクト内のPythonコードを解析し、シンボルの名前変更、モジュール間での定義の移動、コードの抽出やインライン化といった構造変更を適用して、ファイルをまたぐ参照の整合性を保ちます。
- rope は無料で使えますか?ライセンスは?
- rope は LGPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- rope は今もメンテナンスされていますか?
- 活発にメンテナンス中。rope の最終コミットは 2026年11月5日 です。
- rope は何に使えますか?
- 大規模なPythonコードベース全体で、広く使われている関数やクラスの名前を変更する コードを新しいファイルに移動してモジュール構成を再編する カスタムエディターやPythonツールにリファクタリング機能を組み込む
- rope はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/python-rope/rope
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
PHPで書かれたPHPパーサー。PHPのソースコードをASTに変換し、静的解析やコード操作に活用できます。
通常のテキストではなくASTパターンにマッチさせて、コードの検索、Lint、書き換えを行うCLIツールです。
Java 1〜25のソースをASTに変換するパーサーと、宣言や型を解決するシンボルソルバー。
コードベースやドキュメントなどから、AIコーディングアシスタント向けの知識グラフをローカルで構築
コード、ドキュメント、インフラをローカルのナレッジグラフにインデックス化し、ファイルを読み直さずに構造を問い合わせられるMCPサーバー。