(cls, location, package_only=False)
| 32 | |
| 33 | @classmethod |
| 34 | def parse(cls, location, package_only=False): |
| 35 | opams = parse_opam(location) |
| 36 | |
| 37 | package_dependencies = [] |
| 38 | deps = opams.get('depends') or [] |
| 39 | for dep in deps: |
| 40 | package_dependencies.append( |
| 41 | models.DependentPackage( |
| 42 | purl=dep["purl"], |
| 43 | extracted_requirement=dep["version"], |
| 44 | scope='dependency', |
| 45 | is_runtime=True, |
| 46 | is_optional=False, |
| 47 | is_pinned=False, |
| 48 | ) |
| 49 | ) |
| 50 | |
| 51 | name = opams.get('name') |
| 52 | version = opams.get('version') |
| 53 | |
| 54 | homepage_url = opams.get('homepage') |
| 55 | download_url = opams.get('src') |
| 56 | vcs_url = opams.get('dev-repo') |
| 57 | bug_tracking_url = opams.get('bug-reports') |
| 58 | extracted_license_statement = opams.get('license') |
| 59 | sha1 = opams.get('sha1') |
| 60 | md5 = opams.get('md5') |
| 61 | sha256 = opams.get('sha256') |
| 62 | sha512 = opams.get('sha512') |
| 63 | repository_homepage_url = get_repository_homepage_url(name) |
| 64 | api_data_url = get_api_data_url(name, version) |
| 65 | |
| 66 | short_desc = opams.get('synopsis') or '' |
| 67 | long_desc = opams.get('description') or '' |
| 68 | if long_desc == short_desc: |
| 69 | long_desc = None |
| 70 | descriptions = [d for d in (short_desc, long_desc) if d and d.strip()] |
| 71 | description = '\n'.join(descriptions) |
| 72 | |
| 73 | parties = [] |
| 74 | authors = opams.get('authors') or [] |
| 75 | for author in authors: |
| 76 | parties.append( |
| 77 | models.Party( |
| 78 | type=models.party_person, |
| 79 | name=author, |
| 80 | role='author' |
| 81 | ) |
| 82 | ) |
| 83 | maintainers = opams.get('maintainer') or [] |
| 84 | for maintainer in maintainers: |
| 85 | parties.append( |
| 86 | models.Party( |
| 87 | type=models.party_person, |
| 88 | email=maintainer, |
| 89 | role='maintainer' |
| 90 | ) |
| 91 | ) |
nothing calls this directly
no test coverage detected