Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 6 additions & 14 deletions Library/Homebrew/formula.rb
Original file line number Diff line number Diff line change
Expand Up @@ -273,8 +273,7 @@ def initialize(name, path, spec, alias_path: nil, tap: nil, force_bottle: false)
Tap.from_path(path)
end

@pypi_packages_info = T.let(self.class.pypi_packages_info || PypiPackages.from_json_file(@tap, @name),
PypiPackages)
@pypi_packages_info = T.let(self.class.pypi_packages_info || PypiPackages.new, PypiPackages)

@full_name = T.let(T.must(full_name_with_optional_tap(name)), String)
@full_alias_name = T.let(full_name_with_optional_tap(@alias_name), T.nilable(String))
Expand Down Expand Up @@ -4000,25 +3999,18 @@ def head(val = nil, specs = {}, &block)
# ```
sig {
params(
package_name: T.nilable(String),
extra_packages: T.nilable(T.any(String, T::Array[String])),
exclude_packages: T.nilable(T.any(String, T::Array[String])),
dependencies: T.nilable(T.any(String, T::Array[String])),
needs_manual_update: T::Boolean,
package_name: T.nilable(String),
extra_packages: T.nilable(T.any(String, T::Array[String])),
exclude_packages: T.nilable(T.any(String, T::Array[String])),
dependencies: T.nilable(T.any(String, T::Array[String])),
).void
}
def pypi_packages(
package_name: nil,
extra_packages: nil,
exclude_packages: nil,
dependencies: nil,
needs_manual_update: false
dependencies: nil
)
if needs_manual_update
@pypi_packages_info = PypiPackages.new needs_manual_update: true
return
end

if [package_name, extra_packages, exclude_packages, dependencies].all?(&:nil?)
raise ArgumentError, "must provide at least one argument"
end
Expand Down
43 changes: 5 additions & 38 deletions Library/Homebrew/pypi_packages.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,56 +16,23 @@ class PypiPackages
sig { returns(T::Array[String]) }
attr_reader :dependencies

sig { params(tap: T.nilable(Tap), formula_name: String).returns(T.attached_class) }
def self.from_json_file(tap, formula_name)
list_entry = tap&.pypi_formula_mappings&.fetch(formula_name, nil)

return new(defined_pypi_mapping: false) if list_entry.nil?

case T.cast(list_entry, T.any(FalseClass, String, T::Hash[String, T.any(String, T::Array[String])]))
when false
new needs_manual_update: true
when String
new package_name: list_entry
when Hash
package_name = list_entry["package_name"]
extra_packages = list_entry.fetch("extra_packages", [])
exclude_packages = list_entry.fetch("exclude_packages", [])
dependencies = list_entry.fetch("dependencies", [])

new package_name:, extra_packages:, exclude_packages:, dependencies:
end
end

sig {
params(
package_name: T.nilable(String),
extra_packages: T::Array[String],
exclude_packages: T::Array[String],
dependencies: T::Array[String],
needs_manual_update: T::Boolean,
defined_pypi_mapping: T::Boolean,
package_name: T.nilable(String),
extra_packages: T::Array[String],
exclude_packages: T::Array[String],
dependencies: T::Array[String],
).void
}
def initialize(
package_name: nil,
extra_packages: [],
exclude_packages: [],
dependencies: [],
needs_manual_update: false,
defined_pypi_mapping: true
dependencies: []
)
@package_name = T.let(package_name, T.nilable(String))
@extra_packages = T.let(extra_packages, T::Array[String])
@exclude_packages = T.let(exclude_packages, T::Array[String])
@dependencies = T.let(dependencies, T::Array[String])
@needs_manual_update = T.let(needs_manual_update, T::Boolean)
@defined_pypi_mapping = T.let(defined_pypi_mapping, T::Boolean)
end

sig { returns(T::Boolean) }
def defined_pypi_mapping? = @defined_pypi_mapping

sig { returns(T::Boolean) }
def needs_manual_update? = @needs_manual_update
end
24 changes: 0 additions & 24 deletions Library/Homebrew/tap.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ class Tap
private_constant :HOMEBREW_TAP_MIGRATIONS_FILE
HOMEBREW_TAP_AUTOBUMP_FILE = ".github/autobump.txt"
private_constant :HOMEBREW_TAP_AUTOBUMP_FILE
HOMEBREW_TAP_PYPI_FORMULA_MAPPINGS_FILE = "pypi_formula_mappings.json"
private_constant :HOMEBREW_TAP_PYPI_FORMULA_MAPPINGS_FILE
HOMEBREW_TAP_SYNCED_VERSIONS_FORMULAE_FILE = "synced_versions_formulae.json"
private_constant :HOMEBREW_TAP_SYNCED_VERSIONS_FORMULAE_FILE
HOMEBREW_TAP_DISABLED_NEW_USR_LOCAL_RELOCATION_FORMULAE_FILE = "disabled_new_usr_local_relocation_formulae.json"
Expand All @@ -40,7 +38,6 @@ class Tap
#{HOMEBREW_TAP_FORMULA_RENAMES_FILE}
#{HOMEBREW_TAP_CASK_RENAMES_FILE}
#{HOMEBREW_TAP_MIGRATIONS_FILE}
#{HOMEBREW_TAP_PYPI_FORMULA_MAPPINGS_FILE}
#{HOMEBREW_TAP_SYNCED_VERSIONS_FORMULAE_FILE}
#{HOMEBREW_TAP_DISABLED_NEW_USR_LOCAL_RELOCATION_FORMULAE_FILE}
#{HOMEBREW_TAP_AUDIT_EXCEPTIONS_DIR}/*.json
Expand Down Expand Up @@ -258,7 +255,6 @@ def clear_cache

@audit_exceptions = nil
@style_exceptions = nil
@pypi_formula_mappings = nil
@synced_versions_formulae = nil

@config = nil
Expand Down Expand Up @@ -1081,18 +1077,6 @@ def style_exceptions
T.nilable(T::Hash[Symbol, T.untyped]))
end

# Hash with pypi formula mappings
sig { overridable.returns(T::Hash[String, T.untyped]) }
def pypi_formula_mappings
return @pypi_formula_mappings if @pypi_formula_mappings

@pypi_formula_mappings = T.let(
T.cast(read_formula_list(path/HOMEBREW_TAP_PYPI_FORMULA_MAPPINGS_FILE), T::Hash[String, T.untyped]),
T.nilable(T::Hash[String, T.untyped]),
)
T.must(@pypi_formula_mappings)
end

# Array with synced versions formulae
sig { overridable.returns(T::Array[T::Array[String]]) }
def synced_versions_formulae
Expand Down Expand Up @@ -1441,14 +1425,6 @@ def style_exceptions
end, T.nilable(T::Hash[Symbol, T.untyped]))
end

sig { override.returns(T::Hash[String, T.untyped]) }
def pypi_formula_mappings
@pypi_formula_mappings ||= T.let(begin
ensure_installed!
super
end, T.nilable(T::Hash[String, T.untyped]))
end

sig { override.returns(T::Array[T::Array[String]]) }
def synced_versions_formulae
@synced_versions_formulae ||= T.let(begin
Expand Down
4 changes: 1 addition & 3 deletions Library/Homebrew/tap_auditor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Homebrew
# Auditor for checking common violations in {Tap}s.
class TapAuditor
attr_reader :name, :path, :formula_names, :formula_aliases, :formula_renames, :cask_tokens,
:tap_audit_exceptions, :tap_style_exceptions, :tap_pypi_formula_mappings, :problems
:tap_audit_exceptions, :tap_style_exceptions, :problems

sig { params(tap: Tap, strict: T.nilable(T::Boolean)).void }
def initialize(tap, strict:)
Expand All @@ -15,7 +15,6 @@ def initialize(tap, strict:)
@path = tap.path
@tap_audit_exceptions = tap.audit_exceptions
@tap_style_exceptions = tap.style_exceptions
@tap_pypi_formula_mappings = tap.pypi_formula_mappings
@tap_synced_versions_formulae = tap.synced_versions_formulae
@tap_autobump = tap.autobump
@tap_official = tap.official?
Expand Down Expand Up @@ -55,7 +54,6 @@ def audit_json_files
def audit_tap_formula_lists
check_formula_list_directory "audit_exceptions", @tap_audit_exceptions
check_formula_list_directory "style_exceptions", @tap_style_exceptions
check_formula_list "pypi_formula_mappings", @tap_pypi_formula_mappings
check_formula_list "formula_renames", @formula_renames.values
check_formula_list ".github/autobump.txt", @tap_autobump unless @tap_official
check_formula_list "synced_versions_formulae", @tap_synced_versions_formulae.flatten
Expand Down
142 changes: 0 additions & 142 deletions Library/Homebrew/test/pypi_packages_spec.rb

This file was deleted.

1 change: 0 additions & 1 deletion Library/Homebrew/test/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,6 @@
CoreTap.instance.path/"tap_migrations.json",
CoreTap.instance.path/"audit_exceptions",
CoreTap.instance.path/"style_exceptions",
CoreTap.instance.path/"pypi_formula_mappings.json",
*Pathname.glob("#{HOMEBREW_CELLAR}/*/"),
HOMEBREW_LIBRARY_PATH/"test/.vscode",
HOMEBREW_LIBRARY_PATH/"test/.cursor",
Expand Down
29 changes: 0 additions & 29 deletions Library/Homebrew/test/tap_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -58,17 +58,6 @@ class Foo < Formula
JSON
end

(path/"pypi_formula_mappings.json").write <<~JSON
{
"formula1": "foo",
"formula2": {
"package_name": "foo",
"extra_packages": ["bar"],
"exclude_packages": ["baz"]
}
}
JSON

[
cmd_file,
manpage_file,
Expand Down Expand Up @@ -619,22 +608,6 @@ def setup_completion(link:)
end
end

describe "#pypi_formula_mappings" do
it "returns the pypi_formula_mappings hash" do
setup_tap_files

expected_result = {
"formula1" => "foo",
"formula2" => {
"package_name" => "foo",
"extra_packages" => ["bar"],
"exclude_packages" => ["baz"],
},
}
expect(homebrew_foo_tap.pypi_formula_mappings).to eq expected_result
end
end

describe "#formula_file?" do
it "matches files from Formula/" do
tap = described_class.fetch("hard/core")
Expand Down Expand Up @@ -767,7 +740,6 @@ class Foo < Formula
tap_migrations.json
audit_exceptions/formula_list.json
style_exceptions/formula_hash.json
pypi_formula_mappings.json
].each do |file|
(path/file).dirname.mkpath
(path/file).write formula_list_file_json
Expand All @@ -788,7 +760,6 @@ class Foo < Formula
expect(core_tap.tap_migrations).to eq formula_list_file_contents
expect(core_tap.audit_exceptions).to eq({ formula_list: formula_list_file_contents })
expect(core_tap.style_exceptions).to eq({ formula_hash: formula_list_file_contents })
expect(core_tap.pypi_formula_mappings).to eq formula_list_file_contents
end
end

Expand Down
Loading
Loading