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

Method assemble

src/packagedcode/conan.py:220–270  ·  view source on GitHub ↗

`conandata.yml` only contains the `version` and `download_url` use the conanfile.py to enhance the package metadata.

(
        cls, package_data, resource, codebase, package_adder=models.add_to_package
    )

Source from the content-addressed store, hash-verified

218
219 @classmethod
220 def assemble(
221 cls, package_data, resource, codebase, package_adder=models.add_to_package
222 ):
223 """
224 `conandata.yml` only contains the `version` and `download_url` use the conanfile.py
225 to enhance the package metadata.
226 """
227 siblings = resource.siblings(codebase)
228 conanfile_package_resource = [r for r in siblings if r.name == "conanfile.py"]
229 package_data_dict = package_data.to_dict()
230
231 if conanfile_package_resource:
232 conanfile_package_resource = conanfile_package_resource[0]
233
234 conanfile_package_data = conanfile_package_resource.package_data
235 if conanfile_package_data:
236 conanfile_package_data = conanfile_package_data[0]
237
238 package_data_dict["name"] = conanfile_package_data.get("name")
239 package_data_dict["description"] = conanfile_package_data.get(
240 "description"
241 )
242 package_data_dict["homepage_url"] = conanfile_package_data.get(
243 "homepage_url"
244 )
245 package_data_dict["keywords"] = conanfile_package_data.get("keywords")
246 package_data_dict[
247 "extracted_license_statement"
248 ] = conanfile_package_data.get("extracted_license_statement")
249
250 datafile_path = resource.path
251 pkg_data = models.PackageData.from_data(package_data_dict)
252
253 if pkg_data.purl:
254 package = models.Package.from_package_data(
255 package_data=pkg_data,
256 datafile_path=datafile_path,
257 )
258 package.datafile_paths.append(conanfile_package_resource.path)
259 package.datasource_ids.append(ConanFileHandler.datasource_id)
260
261 package.populate_license_fields()
262 yield package
263
264 cls.assign_package_to_resources(
265 package=package,
266 resource=resource,
267 codebase=codebase,
268 package_adder=package_adder,
269 )
270 yield resource
271
272
273def is_constraint_pinned(constraint):

Callers

nothing calls this directly

Calls 8

siblingsMethod · 0.80
from_dataMethod · 0.80
from_package_dataMethod · 0.80
getMethod · 0.65
to_dictMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected