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

Method parse

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

Source from the content-addressed store, hash-verified

657
658 @classmethod
659 def parse(cls, location, package_only=False):
660 with open(location, "rb") as fp:
661 toml_data = tomllib.load(fp)
662
663 tool_data = toml_data.get('tool')
664 if not tool_data:
665 return
666
667 poetry_data = tool_data.get('poetry')
668 if not poetry_data:
669 return
670
671 name = poetry_data.get('name')
672 version = poetry_data.get('version')
673 description = poetry_data.get('description') or ''
674 description = description.strip()
675
676 urls, extra_data = get_urls(metainfo=poetry_data, name=name, version=version, poetry=True)
677
678 extracted_license_statement, license_file = get_declared_license(poetry_data)
679 if license_file:
680 extra_data['license_file'] = license_file
681
682 dependencies = []
683 parsed_deps = cls.parse_non_group_dependencies(
684 dependencies=poetry_data.get("dependencies", {}),
685 scope="dependencies",
686 )
687 dependencies.extend(parsed_deps)
688 parsed_deps = cls.parse_non_group_dependencies(
689 dependencies=poetry_data.get("dev-dependencies", {}),
690 scope="dev-dependencies",
691 is_runtime=False,
692 )
693 dependencies.extend(parsed_deps)
694
695 for group_name, group_deps in poetry_data.get("group", {}).items():
696 for name, requirement in group_deps.get("dependencies", {}).items():
697 purl = PackageURL(
698 type=cls.default_package_type,
699 name=name,
700 )
701 dependency = models.DependentPackage(
702 purl=purl.to_string(),
703 extracted_requirement=requirement,
704 scope=group_name,
705 is_runtime=False,
706 is_optional=False,
707 is_direct=True,
708 is_pinned=False,
709 )
710 dependencies.append(dependency.to_dict())
711
712 package_data = dict(
713 datasource_id=cls.datasource_id,
714 type=cls.default_package_type,
715 primary_language='Python',
716 name=name,

Callers

nothing calls this directly

Calls 11

get_declared_licenseFunction · 0.85
get_keywordsFunction · 0.85
to_stringMethod · 0.80
from_dataMethod · 0.80
get_urlsFunction · 0.70
getMethod · 0.65
loadMethod · 0.45
appendMethod · 0.45
to_dictMethod · 0.45

Tested by

no test coverage detected