()
| 279 | |
| 280 | |
| 281 | def gen_modules(): |
| 282 | # check name because modules listed have side effects on import, |
| 283 | # e.g. printing something or opening a webpage |
| 284 | modules = {} |
| 285 | for mod_name in sorted(scan_modules(), key=name_sort_key): |
| 286 | if mod_name in IGNORED_MODULES: |
| 287 | continue |
| 288 | # when generating CPython list, ignore items defined by other modules |
| 289 | dir_result = dir_of_mod_or_error(mod_name, keep_other=False) |
| 290 | if isinstance(dir_result, Exception): |
| 291 | print( |
| 292 | f"!!! {mod_name} skipped because {type(dir_result).__name__}: {str(dir_result)}", |
| 293 | file=sys.stderr, |
| 294 | ) |
| 295 | continue |
| 296 | modules[mod_name] = dir_result |
| 297 | return modules |
| 298 | |
| 299 | |
| 300 | output = """\ |
no test coverage detected