Skip to content

Commit

Permalink
WIP: Stop using eggs, start using prebuilt wheels.
Browse files Browse the repository at this point in the history
  • Loading branch information
natefoo committed Jul 4, 2015
1 parent 55f6ce0 commit 633061f
Show file tree
Hide file tree
Showing 34 changed files with 129 additions and 5,323 deletions.
79 changes: 2 additions & 77 deletions lib/galaxy/__init__.py
Expand Up @@ -2,82 +2,9 @@
Galaxy root package -- this is a namespace package.
"""

__import__( "pkg_resources" ).declare_namespace( __name__ )
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

import re
import os
import sys
import platform

import pkg_resources

# patch get_platform() for better ABI recognition
def _get_build_platform():
plat = pkg_resources._get_build_platform()
if sys.platform == 'darwin':
# Assert OS X version is new enough
current_minor_ver = int( platform.mac_ver()[0].split( '.' )[1] )
assert current_minor_ver >= 6, 'Galaxy is not compatible with Mac OS X < 10.6 (your version is %s)' % platform.mac_ver()[0]
# Python build target may be even older, but this will prevent it from
# fetching our 10.6+ eggs, so fix if necessary (newer versions will be
# fine)
plat_split = plat.split( '-' )
build_minor_ver = int( plat_split[1].split( '.' )[1] )
if build_minor_ver < 6:
plat_split[1] = '10.6'
# Our intel (dual arch) eggs will work fine on single-arch builds
if plat_split[-1] in ( 'i386', 'x86_64' ):
plat_split[-1] = 'intel'
# Ditto universal (if you're not on PPC)
if plat_split[-1] == 'universal' and platform.processor() != 'powerpc':
plat_split[-1] = 'intel'
plat = '-'.join( plat_split )
elif sys.platform == "linux2" and sys.maxint < 2**31 and plat.endswith( '-x86_64' ):
# 32 bit Python on 64 bit Linux
plat = plat.replace( '-x86_64', '-i686' )
if not (plat.endswith('-ucs2') or plat.endswith('-ucs4')):
if sys.maxunicode > 2**16:
plat += '-ucs4'
else:
plat += '-ucs2'
return plat
try:
assert pkg_resources._get_build_platform
except:
pkg_resources._get_build_platform = pkg_resources.get_build_platform
pkg_resources.get_build_platform = _get_build_platform
pkg_resources.get_platform = _get_build_platform

# patch to insert eggs at the beginning of sys.path instead of at the end
def _insert_on(self, path, loc = None):
"""Insert self.location in path before its nearest parent directory"""

loc = loc or self.location
if not loc:
return

nloc = pkg_resources._normalize_cached(loc)
npath= [(p and pkg_resources._normalize_cached(p) or p) for p in path]

if path is sys.path:
self.check_version_conflict()
path.insert(0, loc)

# remove dups
while 1:
try:
np = npath.index(nloc, 1)
except ValueError:
break
else:
del npath[np], path[np]

return
try:
assert pkg_resources.Distribution._insert_on
except:
pkg_resources.Distribution._insert_on = pkg_resources.Distribution.insert_on
pkg_resources.Distribution.insert_on = _insert_on

# compat: BadZipFile introduced in Python 2.7
import zipfile
Expand All @@ -91,5 +18,3 @@ class NullHandler( logging.Handler ):
def emit( self, record ):
pass
logging.NullHandler = NullHandler

import galaxy.eggs

0 comments on commit 633061f

Please sign in to comment.