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

Method parse

src/packagedcode/conda.py:324–352  ·  view source on GitHub ↗
(cls, location, package_only=False)

Source from the content-addressed store, hash-verified

322
323 @classmethod
324 def parse(cls, location, package_only=False):
325 with io.open(location, encoding='utf-8') as loc:
326 conda_metadata = json.load(loc)
327
328 name = conda_metadata.get('name')
329 version = conda_metadata.get('version')
330 extracted_license_statement = conda_metadata.get('license')
331 download_url = conda_metadata.get('url')
332
333 extra_data_fields = ['requested_spec', 'channel']
334 package_file_fields = ['extracted_package_dir', 'files', 'package_tarball_full_path']
335 other_package_fields = ['size', 'md5', 'sha256']
336
337 extra_data = {}
338 for metadata_field in extra_data_fields + package_file_fields:
339 extra_data[metadata_field] = conda_metadata.get(metadata_field)
340
341 package_data = dict(
342 datasource_id=cls.datasource_id,
343 type=cls.default_package_type,
344 name=name,
345 version=version,
346 extracted_license_statement=extracted_license_statement,
347 download_url=download_url,
348 extra_data=extra_data,
349 )
350 for package_field in other_package_fields:
351 package_data[package_field] = conda_metadata.get(package_field)
352 yield models.PackageData.from_data(package_data, package_only)
353
354
355class CondaYamlHandler(BaseDependencyFileHandler):

Callers

nothing calls this directly

Calls 4

from_dataMethod · 0.80
getMethod · 0.65
openMethod · 0.45
loadMethod · 0.45

Tested by

no test coverage detected