Hotfix: Revert Python module

This commit is contained in:
Samuel John 2013-06-06 13:18:32 +02:00
parent 4e8aa8637f
commit 1c95045033
3 changed files with 73 additions and 76 deletions

View File

@ -307,7 +307,7 @@ class Formula
def python(options={:allowed_major_versions => [2, 3]}, &block) def python(options={:allowed_major_versions => [2, 3]}, &block)
require 'python_helper' require 'python_helper'
Python::python_helper(options, &block) python_helper(options, &block)
end end
# Explicitly only execute the block for 2.x (if a python 2.x is available) # Explicitly only execute the block for 2.x (if a python 2.x is available)

View File

@ -1,18 +1,17 @@
# The python_helper is used in the Formula class when the user calls # This is used in the Formula class when the user calls
# `python`, `python2` or `python3`. # `python`, `python2` or `python3`.
module Python # This method has a dual nature. For one, it takes a &block and sets up
# This method has a dual nature. For one, it takes a &block and sets up # the ENV such that a Python, as defined in the requirements, is the default.
# the ENV such that a Python, as defined in the requirements, is the default. # If there are multiple `PythonInstalled` requirements, the block is evaluated
# If there are multiple `PythonInstalled` requirements, the block is evaluated # once for each Python. This makes it possible to easily support 2.x and
# once for each Python. This makes it possible to easily support 2.x and # 3.x Python bindings without code duplication in formulae.
# 3.x Python bindings without code duplication in formulae. # If you need to special case stuff, set :allowed_major_versions.
# If you need to special case stuff, set :allowed_major_versions. # Second, inside the block, a formula author may call this method to access
# Second, inside the block, a formula author may call this method to access # certain convienience methods for the currently selected Python, e.g.
# certain convienience methods for the currently selected Python, e.g. # `python.site_packages`.
# `python.site_packages`. def python_helper(options={:allowed_major_versions => [2, 3]}, &block)
def python_helper(options={:allowed_major_versions => [2, 3]}, &block)
if !block_given? and !@current_python.nil? if !block_given? and !@current_python.nil?
# We are already inside of a `python do ... end` block, so just return # We are already inside of a `python do ... end` block, so just return
# the current_python or false if the version.major is not allowed. # the current_python or false if the version.major is not allowed.
@ -67,8 +66,8 @@ module Python
ENV.prepend 'PATH', py.binary.dirname, ':' unless py.from_osx? ENV.prepend 'PATH', py.binary.dirname, ':' unless py.from_osx?
ENV.prepend 'LDFLAGS', "-F#{py.framework}" if py.brewed? ENV.prepend 'LDFLAGS', "-F#{py.framework}" if py.brewed?
# Track the state of the currently selected python for this block, # Track the state of the currently selected python for this block,
# so if this python_helper is called again _inside_ the block, we can # so if this python_helper is called again _inside_ the block,
# just return the right python (see `else`-branch a few lines down): # we can just return the right python (see `else`-branch a few lines down):
@current_python = py @current_python = py
res = instance_eval(&block) res = instance_eval(&block)
@current_python = nil @current_python = nil
@ -79,6 +78,4 @@ module Python
end end
end end
end end
end # enf of python_helper method end # enf of python_helper method
end

View File

@ -129,7 +129,7 @@ class PythonInstalled < Requirement
end end
# Homebrew's global site-packages. The local ones (just `site_packages`) are # Homebrew's global site-packages. The local ones (just `site_packages`) are
# populated by the python_helper method when the `prefix` of a formula is known. # populated by the python_helperg method when the `prefix` of a formula is known.
def global_site_packages def global_site_packages
HOMEBREW_PREFIX/"lib/#{xy}/site-packages" HOMEBREW_PREFIX/"lib/#{xy}/site-packages"
end end