The filename map can create collisions. See the screenshot.
In the example, an attempt to view "wc_sim/bug/a/b_c.py" actually views "wc_sim/bug/a_b/c.py".
To resolve this, instead of replacing directory separators with '_', use a perfect hash to generate a unique integer for each module. The pathname to the module can be appended to the perfect hash if it is important to see the pathname in the html filename.