[WIP] pypi: hackety hack

Signed-off-by: William Woodruff <william@yossarian.net>
This commit is contained in:
William Woodruff 2023-04-24 17:53:09 -06:00
parent 48a604e31c
commit 727a88d025
No known key found for this signature in database

View File

@ -226,7 +226,7 @@ module PyPI
EOS
end
found_packages = json_to_packages(JSON.parse(pip_output), main_package, exclude_packages).uniq
found_packages = pip_report_to_packages(JSON.parse(pip_output), main_package, exclude_packages).uniq
new_resource_blocks = ""
found_packages.sort.each do |package|
@ -288,17 +288,16 @@ module PyPI
name.gsub(/[-_.]+/, "-").downcase
end
def self.json_to_packages(json_tree, main_package, exclude_packages)
return [] if json_tree.blank?
def self.pip_report_to_packages(report, main_package, exclude_packages)
return [] if report.blank?
json_tree.flat_map do |package_json|
package = Package.new("#{package_json["name"]}==#{package_json["version"]}")
dependencies = if package == main_package || exclude_packages.exclude?(package)
json_to_packages(package_json["dependencies"], main_package, exclude_packages)
else
[]
end
[package] + dependencies
report["install"].filter_map do |package|
name = normalize_python_package(package["metadata"]["name"])
version = package["metadata"]["version"]
package = "#{name}==#{version}"
package if exclude_packages.exclude? package
end
end
end