aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/requirements/python_dependency.rb
AgeCommit message (Collapse)Author
2013-10-15Avoid the need to defensively flatten tags arrayJack Nagel
2013-09-14Rename PythonInstalled to PythonDependency.Mike McQuaid
Make it more consistent with other requirements.
2013-09-03PythonInstalled: Allow formulae to set/append PYTHONPATHSamuel John
Improve robustness of `PYTHONPATH` by first unsetting it (during `satisfy`) so that the `PythonInstalled` can get the `python.version` and so forth and then, after that, setting the `PYTHONPATH` to our `global_site_packages`. In the `python_helper` we append to the `PYTHONPATH` so if that var has been set in a formula, it is respected. Brew audit does no longer complain about setting the `ENV['PYTHONPATH']`.
2013-09-03PythonInstalled: Adding a private_site_packagesSamuel John
that live in the `libexec` dir of a `Cellar`.
2013-08-27PythonInstalled, name includes modulesSamuel John
If `depends_on :python => ['modulename', :optional]` then the generated option is now `--with-python-modulename`, so that it is possible to actually make depending on python modules optional. Further, `brew options` becomes more meaningful.
2013-08-23PythonInstalled: Unset PYTHONPATH for `satisfied?`Samuel John
When a formula `depends_on :python` *and* `depends_on :python3` the `modify_build_environment` method sets the PYTHONPATH and the Python 3.x requirement then fails because it finds the sitecustomize.py from Python 2.x in the PYTHONPATH.
2013-08-19Use ENV.prepend_pathJack Nagel
2013-08-19Use ENV.append_pathJack Nagel
2013-08-19which in requirements always uses ORIGINAL_PATHS nowJack Nagel
Fixes #22002.
2013-08-19Use File::PATH_SEPARATOR globally instead of ':'Amos Wenger
On Unix, the path separator is ':', whereas on Windows, it is ';'. This is the first of a series of patch to bring macbrew's and winbrew's codebases closer together. The main places the magic constant ':' was being used were: - the $PATH environment variable - CMAKE-related environment variables - pkg-config related environment variables Closes #21921. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-08-15Unlinked brewed python -> use system pythonSamuel John
Up to now a brewed Python, even if not linked, was preferred over and external Python, so that you had to completely `brew rm python` to have a formula link against external (mostly system) Python. From now on it is okay to `brew unlink python`.
2013-08-14Iterate over these directly rather than mapping firstJack Nagel
2013-08-14Return value of modify_build_environment is unimportantJack Nagel
2013-08-14Reverse conditionalJack Nagel
2013-08-14Collapse to one-linerJack Nagel
2013-08-14No need to map, all? takes a blockJack Nagel
2013-08-14Add missing falseJack Nagel
2013-08-14Remove stray spaceJack Nagel
2013-08-10Allow specifying a custom PATH for which methodJack Nagel
Closes #21794.
2013-08-08Python: Exit if PYTHONPATH is wrongSamuel John
In our sitecustomize.py we instruct python to exit with an error message if the PYTHONPATH is pointing to a wrong homebrew site-packages dir. With wrong meaning another major python version. If you set the PYTHONPATH to include $(brew --prefix)/lib/python2.7/site-packages and start python3, it may pick up modules from there, wich can result in errors for non pure python modules (such as PyQt).
2013-08-08For brewed python, make sure to unset the PYTHONPATHSamuel John
during building of python software inside of a `python do … end` block.
2013-08-03Remove ARCHFLAGS fixme from Python dependencyAdam Vandenberg
This will be handled by env/superenv, not Python.
2013-07-22Silence warningsJack Nagel
2013-07-22Fix python dependency hash equalityJack Nagel
eql? should not depend on the hash value as hash values of uneql objects can collide, but eql values may only collide for objects that are actually eql. Further, python dependencies are uniquely identified by the combination of the name and imports attributes, so there is no reason to involved the expensive binary computation for simple equality checks. Fixes #20840.
2013-07-22Remove redundant reader methodJack Nagel
2013-07-17Typo in commentsSamuel John
2013-07-16Allow specifying version in depends_on :pythonSamuel John
Note, in the explict form: PythonInstalled.new('2.7') => :recommended the tag :recommended is ignored (not a limitation of PythonInstalled itself). One solution was to write PythonInstalled.new('2.7', [:recommended]) but that is not as beautiful as we like it. Therefore, now it is possible to: depends_on :python => ['2.7', :recommended] Only the first tag is attempted to be parsed as a version specifyer "x" or "x.y" or "x.y.z"...
2013-06-27Use old #eql? for python reqs, for nowJack Nagel
2013-06-19depends_on :python => 'module' allow user packagesSamuel John
Some prefer to install with `--user` into their home. For example to avoid `sudo` with system's python. Now Homebrew can use those modules to satisfy a python dependency on a certain module.
2013-06-18Python module deps, ext. python fix and 10.6 fixSamuel John
* Fixes #20572 by tweaking the logic that decides which python is used by the `python` object inside a formula. There was a bug when on 10.6 there is no Python 2.7 but a :recommended Python was still treated as being available. * Use the user's PATH when looking for an external Python. Until now only brewed or OS X system's python have been found by `depends_on :python`. But now we support any Python in PATH (e.g. pyenv's python). * Further, instead of handling python modules and import tests in LanguageModuleDependency, these are now handled by: depends_on :python => 'numpy' # for example The old style depends_on 'numpy' => :python is still supported and is only an alias for the newer style (only for :python, the other languages are not altered by this commit). The reasoning is that if a formula requires a python module, it basically also needs python itself - and further that specific version of python has to provide the module. So the `PythonInstalled` is the natural place to check for the availability of a python module. Using a python module and other tags like :optional or :recommended is done like so: depends_on :python => [:optional, 'numpy'] Specifying another PyPi (Python Package index) name than the module import name is seldom used but supported, too: depends_on :python => ['enchant'=>'pyenchant'] A last note: For clarity, you can define multiple depends_on statements with different modules to be importable.`
2013-06-14Remove Version#to_a aliasJack Nagel
Exposing this as "to_a" was a mistake, versions are not arrays and it causes incorrect behavior when splatted or using Kernel#Array(). Use the more correct name "tokens" instead.
2013-06-09PythonInstalled: Fix libdir for Python 3.xSamuel John
2013-06-07Python: Don't print warning about PYTHONPATHSamuel John
Authors should use `python.standard_caveats` instead. * Accessor for python.binary * Made `python.brewed?` more robust if no python found at all * python.brewed? is more relaxed now and allows older versions of the Python formula. * Only print about wrining sitecustomize.py and distutils.cfg if verbose and debug.
2013-06-06Hotfix: Revert Python moduleSamuel John
2013-06-06PythonInstalled: Don't require superenvSamuel John
* The python do ... end block does no longer require 'superenv' but saves and restores the ENV by using ENV.to_hash and `ensure`. This should resolve some build problems with formulae using `env :std`! * `python_helper` is now in a module `Python`. * Imporoved some comments in python_dependency.rb
2013-06-05depends_on :python sets PYTHONPATH internallySamuel John
This applies only to non-brewed python: The user will still have to set his PYTHONPATH in order to import python modules in an external python interpreter. However, a warning will be displayed, now. Further, during the build, the PYTHONPATH will be set to Homebrew's global site-packages so that software (like PyQt and others) that need to `import sipconfig` in python can find the brewed sip and its python module.
2013-06-05Python add -F#{python.framework} for brewed PythonSamuel John
Since Python has been removed from superenv and added as an explicit `depends_on :python`, we should add `-F#{HOMEBREW_PREFIX}/opt/python/Framewoks` so that build tools that don't use `python-config --ldflags` (as they should!) can link against brewed Python.
2013-06-04Python: Don't use named tuples to get the versionSamuel John
sys.version_info.major is only possible on 2.7+ or so. Therefore, we now use [0] instead.
2013-06-03depends_on :python Default to min vers 2.6 not 2.7Samuel John
To support system python on OS X
2013-06-03Python 2.x and 3.x supportSamuel John
New `depends_on :python` Dependency. New `depends_on :python3` Dependency. To avoid having multiple formulae with endings -py2 and -py3, we will handle support for different pythons (2.x vs. 3.x) in the same formula. Further brewed vs. external python will be transparently supported. The formula also gets a new object `python`, which is false if no Python is available or the user has disabled it. Otherwise it is defined and provides several support methods: python.site_packages # the site-packages in the formula's Cellar python.global_site_packages python.binary # the full path to the python binary python.prefix python.version python.version.major python.version.minor python.xy # => e.g. "python2.7" python.incdir # includes of python python.libdir # the python dylib library python.pkg_config_path # used internally by brew python.from_osx? python.framework? python.universal? python.pypy? python.standard_caveats # Text to set PYTHONPATH for python.from_osx? python.if3then3 # => "" for 2.x and to "3" for 3.x. Further, to avoid code duplication, `python` takes an optional block that is run twice if the formula defines depends_on :python AND :python3. python do system python, 'setup.py', "--prefix=#{prefix}" end Read more in the Homebrew wiki.