aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/requirements/python_dependency.rb12
1 files changed, 6 insertions, 6 deletions
diff --git a/Library/Homebrew/requirements/python_dependency.rb b/Library/Homebrew/requirements/python_dependency.rb
index 1fb0730da..3e6206857 100644
--- a/Library/Homebrew/requirements/python_dependency.rb
+++ b/Library/Homebrew/requirements/python_dependency.rb
@@ -16,6 +16,7 @@ require 'requirement'
class PythonInstalled < Requirement
attr_reader :min_version
attr_reader :if3then3
+ attr_reader :imports
attr_accessor :site_packages
attr_accessor :binary # The python.rb formula needs to set the binary
@@ -342,15 +343,14 @@ class PythonInstalled < Requirement
binary.to_s
end
+ # Objects of this class are used to represent dependencies on Python and
+ # dependencies on Python modules, so the combination of name + imports is
+ # enough to identify them uniquely.
def eql?(other)
- instance_of?(other.class) && hash == other.hash
+ instance_of?(other.class) && name == other.name && imports == other.imports
end
def hash
- # Requirements are a ComparableSet. So we define our identity by the
- # selected python binary plus the @imports in order to support multiple:
- # depends_on :python => 'module1'
- # depends_on :python => 'module2'
- (binary.to_s+@imports.to_s).hash
+ [name, *imports].hash
end
end