MCPcopy Create free account
hub / github.com/aboutcode-org/scancode-toolkit / parse

Method parse

src/packagedcode/pypi.py:1457–1493  ·  view source on GitHub ↗
(cls, location, package_only=False)

Source from the content-addressed store, hash-verified

1455
1456 @classmethod
1457 def parse(cls, location, package_only=False):
1458 setup_args = get_setup_py_args(location)
1459
1460 # it may be legit to have a name-less package?
1461 # in anycase we do not want to fail because of that
1462 name = setup_args.get('name')
1463
1464 version = setup_args.get('version')
1465 if not version:
1466 # search for possible dunder versions here and elsewhere
1467 version = detect_version_attribute(location)
1468
1469 urls, extra_data = get_urls(metainfo=setup_args, name=name, version=version)
1470
1471 dependencies = get_setup_py_dependencies(setup_args)
1472 python_requires = get_setup_py_python_requires(setup_args)
1473 extra_data.update(python_requires)
1474
1475 extracted_license_statement, license_file = get_declared_license(metainfo=setup_args)
1476 if license_file:
1477 extra_data['license_file'] = license_file
1478
1479 package_data = dict(
1480 datasource_id=cls.datasource_id,
1481 type=cls.default_package_type,
1482 primary_language=cls.default_primary_language,
1483 name=name,
1484 version=version,
1485 description=get_description(setup_args),
1486 parties=get_setup_parties(setup_args),
1487 extracted_license_statement=extracted_license_statement,
1488 dependencies=dependencies,
1489 keywords=get_keywords(setup_args),
1490 extra_data=extra_data,
1491 **urls,
1492 )
1493 yield models.PackageData.from_data(package_data, package_only)
1494
1495
1496class ResolvedPurl(NamedTuple):

Callers

nothing calls this directly

Calls 12

get_setup_py_argsFunction · 0.85
detect_version_attributeFunction · 0.85
get_declared_licenseFunction · 0.85
get_descriptionFunction · 0.85
get_setup_partiesFunction · 0.85
get_keywordsFunction · 0.85
from_dataMethod · 0.80
get_urlsFunction · 0.70
getMethod · 0.65
updateMethod · 0.45

Tested by

no test coverage detected