Hotspots

Files that are both large and changed often are where bugs tend to cluster and where refactoring pays off first. Each file in the current tree is placed by its size and by the number of commits that changed it; its hotspot score is changes × √lines. Files without counted lines, such as binary files, are left out.

Files Analyzed
2,298
of 2,418 in the current tree
Top 10 Files
27.9%
of the total hotspot score
Median File Size
70 lines
half of the files are at least this large
Median Changes
4 commits
half of the files changed at least this often

Change frequency by file size

Each dot is a file; a bigger dot is a higher score. The dashed lines mark the median file size and the median number of changes, so the large files that change often are in the top right. Both axes are logarithmic. Showing the 2,000 highest-scoring of 2,298 files.

Top hotspots

The files ranked by hotspot score: the larger a file is and the more often it changes, the higher it ranks. Authors is how many people have changed the file, bots aside, as on the Code Ownership page: a hotspot only one person has changed is also a bus-factor risk.

FileLinesChangesAuthorsScore
numpy/__init__.pyi13,4147495586,748.3
numpy/ma/core.py9,12169013465,897.7
numpy/ma/tests/test_core.py6,2764408734,857.3
numpy/lib/tests/test_function_base.py5,13645913432,894.6
numpy/_core/tests/test_multiarray.py12,2632095223,144.3
numpy/lib/tests/test_io.py2,7333008615,683.4
numpy/random/_generator.pyx5,0861906513,550.1
numpy/f2py/crackfortran.py3,7272145113,064.5
doc/source/reference/c-api/array.rst4,9371835212,858.3
numpy/ma/core.pyi4,9971742012,300.0
Table: the 100 highest-scoring of 2,298 files