結果
議論
いくつかの観察:
- djangoが「ある程度の人気」を獲得し、Zopeがリストの中で強く上昇したようです。
- unitsetupを使用するプロジェクトの数は、特にsetuptoolsと比較した場合、非常に憂鬱です。
- optparse 1875 vs. getopt 515。
- cPickle 690 vs. ピクルス598。
- シンプソン760対 json 593。
過去に
2007年に、コードでモジュールをインポートすることを考慮した簡単なスクリプトを書きました。 統計の生成に使用しました。 1週間か2週間前、私はこの実験を繰り返すことにしました-2007年と2011年の違いを見てください。
古いコードの作業を開始し、更新することにしました。 コードのインポートの分析は、一見したように単純なタスクではありません。 トークン化モジュールとパーサーモジュールを使用することを考えましたが、この考えを捨てました。 パーサーを使用するとコードバージョンが依存するようになり、しばらくしてからトークン化を使用することにしました この目的のために、すでにかさばる正規表現がありました。
方法論
入力 :PyPIと標準ライブラリバージョン2.7のソースコード。 モジュールを処理するための簡単なスクリプト(cheese_getter.py)を作成しました。 彼はPyPIページを読み、easy_installを使用して各モジュールを取得しました。 PyPIプロジェクトには13,000以上のモジュールがあるため、これには時間がかかりました。
解析 :コードに「import x」および「from x import y」式の単純な検索コードを記述しました。 いくつかの困難がありました:「from x import a、b」、「from」という表現。 インポートbla "と
from bla import \ some_module\ some_module2
また、各インポート式をドット付きの一連のモジュールに変換しました。 たとえば、「import ab」は「a」と「ab」に置き換えられ、「from b import c、d」は「b」、「bc」、「bd」に置き換えられました。
処理 :3種類の結果を作成しました。
- インポートの総数。
- モジュールをインポートするパッケージの数。
- モジュールをインポートするパッケージの数は、ドットレコードの最初のモジュールのみです。
3番目のオプションが最も有益だと思います。
コード : 完全なコードが利用可能です 。