@@ -254,8 +254,20 @@ def resolve_dependencies(
254254 if PYPI_SIMPLE_URL not in index_urls :
255255 index_urls = tuple ([PYPI_SIMPLE_URL ]) + tuple (index_urls )
256256
257+ files = []
258+
257259 for req_file in requirement_files :
258260 deps = dependencies .get_dependencies_from_requirements (requirements_file = req_file )
261+ files .append (
262+ dict (
263+ type = "file" ,
264+ path = req_file ,
265+ package_data = [
266+ pkg_data .to_dict ()
267+ for pkg_data in PipRequirementsFileHandler .parse (location = req_file )
268+ ],
269+ )
270+ )
259271 for extra_data in dependencies .get_extra_data_from_requirements (requirements_file = req_file ):
260272 index_urls = (* index_urls , * tuple (extra_data .get ("extra_index_urls" ) or []))
261273 direct_dependencies .extend (deps )
@@ -267,6 +279,13 @@ def resolve_dependencies(
267279 if setup_py_file :
268280 package_data = list (PythonSetupPyHandler .parse (location = setup_py_file ))
269281 assert len (package_data ) == 1
282+ files .append (
283+ dict (
284+ type = "file" ,
285+ path = setup_py_file ,
286+ package_data = package_data [0 ].to_dict (),
287+ )
288+ )
270289 package_data = package_data [0 ]
271290 # validate if python require matches our current python version
272291 python_requires = package_data .extra_data .get ("python_requires" )
@@ -360,7 +379,7 @@ def resolve_dependencies(
360379 click .secho (f" { repo } " )
361380
362381 # resolve dependencies proper
363- requirements , resolved_dependencies , purls = resolve (
382+ resolved_dependencies , purls = resolve (
364383 direct_dependencies = direct_dependencies ,
365384 environment = environment ,
366385 repos = repos ,
@@ -404,19 +423,19 @@ def resolve_dependencies(
404423 if json_output :
405424 write_output (
406425 headers = headers ,
407- requirements = requirements ,
408426 resolved_dependencies = resolved_dependencies ,
409427 json_output = json_output ,
410428 packages = packages ,
429+ files = files ,
411430 )
412431
413432 else :
414433 write_output (
415434 headers = headers ,
416- requirements = requirements ,
417435 resolved_dependencies = resolved_dependencies ,
418436 json_output = pdt_output ,
419437 packages = packages ,
438+ files = files ,
420439 pdt_output = True ,
421440 )
422441
@@ -461,9 +480,7 @@ def resolve(
461480 analyze_setup_py_insecurely = analyze_setup_py_insecurely ,
462481 )
463482
464- initial_requirements = [d .to_dict () for d in direct_dependencies ]
465-
466- return initial_requirements , resolved_dependencies , packages
483+ return resolved_dependencies , packages
467484
468485
469486def get_requirements_from_direct_dependencies (
@@ -484,7 +501,12 @@ def get_requirements_from_direct_dependencies(
484501
485502
486503def write_output (
487- headers , requirements , resolved_dependencies , json_output , packages , pdt_output = False
504+ headers ,
505+ resolved_dependencies ,
506+ json_output ,
507+ packages ,
508+ files ,
509+ pdt_output = False ,
488510):
489511 """
490512 Write headers, requirements and resolved_dependencies as JSON to ``json_output``.
@@ -494,14 +516,16 @@ def write_output(
494516 if not pdt_output :
495517 output = dict (
496518 headers = headers ,
497- requirements = requirements ,
498- resolved_dependencies = resolved_dependencies ,
519+ files = files ,
520+ resolved_dependencies_graph = resolved_dependencies ,
499521 packages = packages ,
500522 )
501523 else :
502524 output = dict (
503- resolved_dependencies = resolved_dependencies ,
525+ headers = headers ,
526+ files = files ,
504527 packages = packages ,
528+ resolved_dependencies_graph = resolved_dependencies ,
505529 )
506530
507531 json .dump (output , json_output , indent = 2 )
0 commit comments