実行時にカバーされていない Python コードを削除するツール、または特定の関数に依存していないコードを削除するツールはありますか? そうでない場合、どのようなアプローチがよいでしょうか?
より具体的には、私の問題は次のとおりです。
githubのnetworkxアルゴリズム モジュールのmaxflow サブセットが必要です。
通常、ライブラリ全体をダウンロードしてから、必要なモジュールをインポートします。
1)。これらのアルゴリズムのいくつかを物理的に紙に印刷する必要があります。
2)。一部のコンテストには、コードを実行するオンライン審査員がいます。審査員には networkx がインストールされていないため、審査員にアップロードする前に、必要なコードを 1 つの .py ファイルにカット アンド ペーストする必要があります。裁判官は、50,000 バイトのファイル サイズ制限を課します。
たとえば、1 つの関数をカット アンド ペーストした後
def ford_fulkerson(G, s, t, capacity='capacity'):
しかし、ford_fulkerson は、他のアルゴリズム、networkx カスタム エラー、networkx グラフおよびダイグラフ クラス全体に依存しています。
これらの依存関係を切り取って貼り付けた後、コードは 50 行から 3000 行になりました。
すべてをカバーするはずのいくつかのテスト ケースのカバレッジを調べたところ、カバレッジは 39% しかありませんでした。その 39% のほとんどは、使用されていない関数の関数名を読んでいるだけです。
C:\Users\robert\code\play\spoj>coverage run TOSCORE.py < in.txt
No goal
Goal
C:\Users\robert\code\play\spoj>coverage report -m
Name Stmts Miss Cover Missing
---------------------------------------
TOSCORE 733 444 39% 226, 233, 236, 252, 280-283, 301, 377-389, 437-4
56, 489-497, 526-534, 568-570, 597, 618, 633, 655-658, 712-715, 772-801, 835, 86
4-869, 900-906, 948-949, 988-991, 1011-1014, 1107, 1115-1119, 1167-1170, 1195, 1
221, 1257-1260, 1297-1308, 1328-1331, 1357, 1361, 1406-1415, 1452, 1493-1512, 15
38, 1570-1574, 1600, 1636-1640, 1673-1677, 1704-1707, 1731-1733, 1757-1759, 1803
-1828, 2029, 2078-2091, 2142-2154, 2160, 2193-2203, 2232-2243, 2296, 2300-2301,
2305-2307, 2309-2311, 2359-2391, 2424-2425, 2455-2459, 2467, 2474, 2483-2484, 24
90-2491, 2498, 2502, 2551-2562, 2588-2599, 2608, 2645-2658, 2698-2709, 2747-2758
, 2798-2801, 2838-2841, 2859-2862, 2867, 2910, 2949-2963, 2979-2990, 3032-3055,
3084, 3091-3092, 3134-3140, 3148-3151, 3178-3180, 3192, 3198, 3208, 3254, 3265-3
283