(whl_file)
| 710 | return result |
| 711 | |
| 712 | def discover_import_names(whl_file): |
| 713 | import re |
| 714 | logger.debug('finding import names') |
| 715 | zipfile = ZipFile(file=whl_file) |
| 716 | namelist = zipfile.namelist() |
| 717 | [top_level_fname |
| 718 | ] = [x for x in namelist if x.endswith('top_level.txt')] |
| 719 | [metadata_fname |
| 720 | ] = [x for x in namelist if x.endswith('.dist-info/METADATA')] |
| 721 | all_names = zipfile.read(top_level_fname).decode( |
| 722 | 'utf-8').strip().splitlines() |
| 723 | metadata = zipfile.read(metadata_fname).decode('utf-8') |
| 724 | public_names = [n for n in all_names if not n.startswith('_')] |
| 725 | |
| 726 | version_pattern = re.compile(r'^Version: (?P<version>.+)$', |
| 727 | re.MULTILINE) |
| 728 | name_pattern = re.compile(r'^Name: (?P<name>.+)$', re.MULTILINE) |
| 729 | |
| 730 | version_match = version_pattern.search(metadata) |
| 731 | name_match = name_pattern.search(metadata) |
| 732 | |
| 733 | module_version = version_match.group('version') |
| 734 | module_name = name_match.group('name') |
| 735 | |
| 736 | return public_names, module_version, module_name |
| 737 | |
| 738 | tmpdir = mkdtemp() |
| 739 | if package.endswith('.whl'): |
no test coverage detected
searching dependent graphs…