From d3093cd2607555234ff018b34fd3747d9b49def4 Mon Sep 17 00:00:00 2001 From: Xuehai Pan Date: Fri, 16 Sep 2022 01:57:19 +0800 Subject: [PATCH] resource: automatic determine mirrors for PyPI resources --- Library/Homebrew/env_config.rb | 4 ++++ Library/Homebrew/resource.rb | 8 ++++++++ Library/Homebrew/sorbet/rbi/hidden-definitions/hidden.rbi | 2 ++ 3 files changed, 14 insertions(+) diff --git a/Library/Homebrew/env_config.rb b/Library/Homebrew/env_config.rb index 0d637caa45..82adde4d39 100644 --- a/Library/Homebrew/env_config.rb +++ b/Library/Homebrew/env_config.rb @@ -318,6 +318,10 @@ module Homebrew "outdated.", boolean: true, }, + HOMEBREW_PIP_INDEX_URL: { + description: "If set, `brew install ` will use this URL to download PyPI package resources.", + default_text: "`https://pypi.org/simple`.", + }, HOMEBREW_PRY: { description: "If set, use Pry for the `brew irb` command.", boolean: true, diff --git a/Library/Homebrew/resource.rb b/Library/Homebrew/resource.rb index d09025f804..9c00389161 100644 --- a/Library/Homebrew/resource.rb +++ b/Library/Homebrew/resource.rb @@ -294,6 +294,14 @@ class Resource end end + # PyPI packages: PEP 503 – Simple Repository API + if Homebrew::EnvConfig.pip_index_url.present? + pip_index_base_url = Homebrew::EnvConfig.pip_index_url.chomp("/").chomp("/simple") + %w[https://files.pythonhosted.org https://pypi.org].each do |base_url| + extra_urls << url.sub(base_url, pip_index_base_url) if url.start_with?("#{base_url}/packages") + end + end + [*extra_urls, url, *mirrors].uniq end diff --git a/Library/Homebrew/sorbet/rbi/hidden-definitions/hidden.rbi b/Library/Homebrew/sorbet/rbi/hidden-definitions/hidden.rbi index 5b933bf983..c08494377a 100644 --- a/Library/Homebrew/sorbet/rbi/hidden-definitions/hidden.rbi +++ b/Library/Homebrew/sorbet/rbi/hidden-definitions/hidden.rbi @@ -2655,6 +2655,8 @@ module Homebrew::EnvConfig def self.no_proxy(); end + def self.pip_index_url(); end + def self.pry?(); end def self.simulate_macos_on_linux?(); end