ppic pythonのパッケージのupdateを確認するためのパッケージ

ppicというpackage作りました

何で作ったの?

現在の環境でどのパッケージが最新でどのパッケージがアップデート必要なのかが知りたかったからです。 (本当はpipにこのような機能がついてほしかったりします)

StackOverFlowのこの回答見てもなんとなく良い気がしないですし。

python - check version of pip packages available before installing - Stack Overflow

日本語のStackOverFlowにも似たような質問がありました。

python - pythonモジュールの最新バージョンをインストールせずにコマンドラインで確認する方法 - スタック・オーバーフロー

どうやって使うの?

インストール

pip install ppic

使い方

現在の状態が以下だとします(sqlalchemy)だけ入っています

(foo)$ pip freeze
SQLAlchemy==0.9.7
ppic==0.2.2

ppic <package名> で特定のpackageの更新を確認できます。

(foo)$ ppic sqlalchemy
collection information .. takes at least 0.0 sec
{
  "packages": [
    {
      "name": "SQLAlchemy",
      "_previous_version": "0.9.7",
      "version": "0.9.8",
      "last_modified": "2014-10-13T17:16:15"
    }
  ],
  "update_candidates": [
    "SQLAlchemy: '0.9.7' -> '0.9.8'"
  ],
  "new_install_candidates": []
 }

pip freeze で表示されるパッケージ名でも大丈夫です。

(foo)$ ppic SQLAlchemy
collection information .. takes at least 0.0 sec
{
  "packages": [
    {
      "name": "SQLAlchemy",
      "_previous_version": "0.9.7",
      "version": "0.9.8",
      "last_modified": "2014-10-13T17:16:15"
    }
  ],
  "update_candidates": [
    "SQLAlchemy: '0.9.7' -> '0.9.8'"
  ],
  "new_install_candidates": []
}

また、--all オプションを付けると現在の環境下で更新が必要なパッケージを列挙してくれます。

(foo)$ ppic --all
collection information .. takes at least 0.05 sec
{
  "packages": [
    {
      "name": "SQLAlchemy",
      "_previous_version": "0.9.7",
      "version": "0.9.8",
      "last_modified": "2014-10-13T17:16:15"
    },
    {
      "name": "ppic",
      "_previous_version": "0.2.2",
      "version": "0.2.2",
      "last_modified": "2015-02-11T12:03:26"
    }
  ],
  "update_candidates": [
    "SQLAlchemy: '0.9.7' -> '0.9.8'"
  ],
  "new_install_candidates": []
}
(foo)$