From 685693a8fe2793f7c9aabd505e610bbc1f12d681 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Sun, 4 Jun 2023 00:27:34 -0400 Subject: [PATCH] utils/pypi: enforce non-pypi urls Signed-off-by: William Woodruff --- Library/Homebrew/utils/pypi.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/utils/pypi.rb b/Library/Homebrew/utils/pypi.rb index c2643132b0..dc722fbade 100644 --- a/Library/Homebrew/utils/pypi.rb +++ b/Library/Homebrew/utils/pypi.rb @@ -8,8 +8,10 @@ module PyPI PYTHONHOSTED_URL_PREFIX = "https://files.pythonhosted.org/packages/" private_constant :PYTHONHOSTED_URL_PREFIX - # PyPI Package - # + + # Represents a Python package. + # This package can be a PyPI package (either by name/version or PyPI distribution URL), + # or it can be a non-PyPI URL. # @api private class Package attr_accessor :name, :extras, :version @@ -49,6 +51,7 @@ module PyPI metadata = JSON.parse(pip_output)["install"].first["metadata"] @name = PyPI.normalize_python_package metadata["name"] @version = metadata["version"] + @from_pypi = false end return @@ -100,6 +103,7 @@ module PyPI sig { returns(T::Boolean) } def valid_pypi_package? + return false unless @from_pypi info = pypi_info info.present? && info.is_a?(Array) end