From d11973f1cae1d8e25017b09734fbf419342b192a Mon Sep 17 00:00:00 2001 From: Daryl McDaniel Date: Wed, 23 Dec 2015 00:15:45 +0000 Subject: AppPkg/.../Python-2.7.10: AppPkg.dsc, pyconfig.h, PyMod-2.7.10 Apply UEFI-specific changes to files to make them equivalent to the Python 2.7.2 versions. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Daryl McDaniel Reviewed-by: Jaben Carsey Reviewed-by: Erik Bjorge --- AppPkg/AppPkg.dsc | 5 +- .../Python/Python-2.7.10/Ia32/pyconfig.h | 93 ++++++++---- .../Python-2.7.10/PyMod-2.7.10/Lib/ntpath.py | 30 +++- .../Python/Python-2.7.10/PyMod-2.7.10/Lib/os.py | 35 ++++- .../Python/Python-2.7.10/PyMod-2.7.10/Lib/pydoc.py | 17 +++ .../Python/Python-2.7.10/PyMod-2.7.10/Lib/site.py | 165 ++++++--------------- .../Python-2.7.10/PyMod-2.7.10/Modules/_sre.c | 150 ++++++++++--------- .../Python-2.7.10/PyMod-2.7.10/Modules/addrinfo.h | 101 +++++++------ .../PyMod-2.7.10/Modules/errnomodule.c | 57 ++++++- .../PyMod-2.7.10/Modules/expat/expat_external.h | 4 +- .../Python-2.7.10/PyMod-2.7.10/Modules/getpath.c | 143 +++++------------- .../Python-2.7.10/PyMod-2.7.10/Modules/main.c | 61 ++++---- .../PyMod-2.7.10/Modules/selectmodule.c | 43 ++++-- .../PyMod-2.7.10/Modules/zlib/gzguts.h | 10 +- .../PyMod-2.7.10/Modules/zlib/zutil.h | 11 +- .../PyMod-2.7.10/Objects/longobject.c | 14 +- .../PyMod-2.7.10/Objects/stringlib/localeutil.h | 17 ++- .../PyMod-2.7.10/Python/getcopyright.c | 24 ++- .../Python-2.7.10/PyMod-2.7.10/Python/marshal.c | 21 ++- .../Python-2.7.10/PyMod-2.7.10/Python/random.c | 32 +++- .../Python/Python-2.7.10/X64/pyconfig.h | 63 ++++++-- 21 files changed, 640 insertions(+), 456 deletions(-) git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19462 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Python/Python-2.7.10/PyMod-2.7.10/Lib/site.py | 165 ++++++--------------- 1 file changed, 48 insertions(+), 117 deletions(-) (limited to 'AppPkg/Applications/Python/Python-2.7.10/PyMod-2.7.10/Lib/site.py') diff --git a/AppPkg/Applications/Python/Python-2.7.10/PyMod-2.7.10/Lib/site.py b/AppPkg/Applications/Python/Python-2.7.10/PyMod-2.7.10/Lib/site.py index ce60d4944a..e397b9de7c 100644 --- a/AppPkg/Applications/Python/Python-2.7.10/PyMod-2.7.10/Lib/site.py +++ b/AppPkg/Applications/Python/Python-2.7.10/PyMod-2.7.10/Lib/site.py @@ -4,18 +4,18 @@ * This module is automatically imported during initialization. * **************************************************************** +This is a UEFI-specific version of site.py. + In earlier versions of Python (up to 1.5a3), scripts or modules that needed to use site-specific modules would place ``import site'' somewhere near the top of their code. Because of the automatic import, this is no longer necessary (but code that does it still works). -This will append site-specific paths to the module search path. On -Unix (including Mac OSX), it starts with sys.prefix and +This will append site-specific paths to the module search path. It starts with sys.prefix and sys.exec_prefix (if different) and appends lib/python/site-packages as well as lib/site-python. -On other platforms (such as Windows), it tries each of the -prefixes directly, as well as with lib/site-packages appended. The +The resulting directories, if they exist, are appended to sys.path, and also inspected for path configuration files. @@ -27,7 +27,7 @@ sys.path more than once. Blank lines and lines beginning with '#' are skipped. Lines starting with 'import' are executed. For example, suppose sys.prefix and sys.exec_prefix are set to -/usr/local and there is a directory /usr/local/lib/python2.5/site-packages +/Efi/StdLib and there is a directory /Efi/StdLib/lib/python27.10/site-packages with three subdirectories, foo, bar and spam, and two path configuration files, foo.pth and bar.pth. Assume foo.pth contains the following: @@ -44,8 +44,8 @@ and bar.pth contains: Then the following directories are added to sys.path, in this order: - /usr/local/lib/python2.5/site-packages/bar - /usr/local/lib/python2.5/site-packages/foo + /Efi/StdLib/lib/python27.10/site-packages/bar + /Efi/StdLib/lib/python27.10/site-packages/foo Note that bletch is omitted because it doesn't exist; bar precedes foo because bar.pth comes alphabetically before foo.pth; and spam is @@ -56,6 +56,15 @@ named sitecustomize, which can perform arbitrary additional site-specific customizations. If this import fails with an ImportError exception, it is silently ignored. +Copyright (c) 2015, Daryl McDaniel. All rights reserved.
+Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.
+This program and the accompanying materials are licensed and made available under +the terms and conditions of the BSD License that accompanies this distribution. +The full text of the license may be found at +http://opensource.org/licenses/bsd-license. + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. """ import sys @@ -67,7 +76,7 @@ import traceback PREFIXES = [sys.prefix, sys.exec_prefix] # Enable per user site-packages directory # set it to False to disable the feature or True to force the feature -ENABLE_USER_SITE = None +ENABLE_USER_SITE = False # for distutils.commands.install # These values are initialized by the getuserbase() and getusersitepackages() @@ -246,12 +255,6 @@ def getusersitepackages(): from sysconfig import get_path import os - if sys.platform == 'darwin': - from sysconfig import get_config_var - if get_config_var('PYTHONFRAMEWORK'): - USER_SITE = get_path('purelib', 'osx_framework_user') - return USER_SITE - USER_SITE = get_path('purelib', '%s_user' % os.name) return USER_SITE @@ -261,11 +264,11 @@ def addusersitepackages(known_paths): Each user has its own python directory with site-packages in the home directory. """ - # get the per user site-package path - # this call will also make sure USER_BASE and USER_SITE are set - user_site = getusersitepackages() - if ENABLE_USER_SITE and os.path.isdir(user_site): + # get the per user site-package path + # this call will also make sure USER_BASE and USER_SITE are set + user_site = getusersitepackages() + addsitedir(user_site, known_paths) return known_paths @@ -285,25 +288,16 @@ def getsitepackages(): continue seen.add(prefix) - if sys.platform in ('os2emx', 'riscos'): - sitepackages.append(os.path.join(prefix, "Lib", "site-packages")) - elif os.sep == '/': - sitepackages.append(os.path.join(prefix, "lib", - "python" + sys.version[:3], - "site-packages")) - sitepackages.append(os.path.join(prefix, "lib", "site-python")) + ix = sys.version.find(' ') + if ix != -1: + micro = sys.version[4:ix] else: - sitepackages.append(prefix) - sitepackages.append(os.path.join(prefix, "lib", "site-packages")) - if sys.platform == "darwin": - # for framework builds *only* we add the standard Apple - # locations. - from sysconfig import get_config_var - framework = get_config_var("PYTHONFRAMEWORK") - if framework: - sitepackages.append( - os.path.join("/Library", framework, - sys.version[:3], "site-packages")) + micro = '0' + + sitepackages.append(os.path.join(prefix, "lib", + "python" + sys.version[0] + sys.version[2] + '.' + micro, + "site-packages")) + sitepackages.append(os.path.join(prefix, "lib", "site-python")) return sitepackages def addsitepackages(known_paths): @@ -315,20 +309,20 @@ def addsitepackages(known_paths): return known_paths def setBEGINLIBPATH(): - """The OS/2 EMX port has optional extension modules that do double duty - as DLLs (and must use the .DLL file extension) for other extensions. + """The UEFI port has optional extension modules that do double duty + as DLLs (even though they have .efi file extensions) for other extensions. The library search path needs to be amended so these will be found during module import. Use BEGINLIBPATH so that these are at the start of the library search path. """ dllpath = os.path.join(sys.prefix, "Lib", "lib-dynload") - libpath = os.environ['BEGINLIBPATH'].split(';') + libpath = os.environ['BEGINLIBPATH'].split(os.path.pathsep) if libpath[-1]: libpath.append(dllpath) else: libpath[-1] = dllpath - os.environ['BEGINLIBPATH'] = ';'.join(libpath) + os.environ['BEGINLIBPATH'] = os.path.pathsep.join(libpath) def setquit(): @@ -338,12 +332,7 @@ def setquit(): The repr of each object contains a hint at how it works. """ - if os.sep == ':': - eof = 'Cmd-Q' - elif os.sep == '\\': - eof = 'Ctrl-Z plus Return' - else: - eof = 'Ctrl-D (i.e. EOF)' + eof = 'Ctrl-D (i.e. EOF)' class Quitter(object): def __init__(self, name): @@ -426,12 +415,7 @@ class _Printer(object): def setcopyright(): """Set 'copyright' and 'credits' in __builtin__""" __builtin__.copyright = _Printer("copyright", sys.copyright) - if sys.platform[:4] == 'java': - __builtin__.credits = _Printer( - "credits", - "Jython is maintained by the Jython developers (www.jython.org).") - else: - __builtin__.credits = _Printer("credits", """\ + __builtin__.credits = _Printer("credits", """\ Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands for supporting Python development. See www.python.org for more information.""") here = os.path.dirname(os.__file__) @@ -457,21 +441,6 @@ class _Helper(object): def sethelper(): __builtin__.help = _Helper() -def aliasmbcs(): - """On Windows, some default encodings are not provided by Python, - while they are always available as "mbcs" in each locale. Make - them usable by aliasing to "mbcs" in such a case.""" - if sys.platform == 'win32': - import locale, codecs - enc = locale.getdefaultlocale()[1] - if enc.startswith('cp'): # "cp***" ? - try: - codecs.lookup(enc) - except LookupError: - import encodings - encodings._cache[enc] = encodings._unknown - encodings.aliases.aliases[enc] = 'mbcs' - def setencoding(): """Set the string encoding used by the Unicode implementation. The default is 'ascii', but if you're willing to experiment, you can @@ -529,16 +498,11 @@ def main(): ENABLE_USER_SITE = check_enableusersite() known_paths = addusersitepackages(known_paths) known_paths = addsitepackages(known_paths) - if sys.platform == 'os2emx': - setBEGINLIBPATH() setquit() setcopyright() sethelper() - aliasmbcs() setencoding() execsitecustomize() - if ENABLE_USER_SITE: - execusercustomize() # Remove sys.setdefaultencoding() so that users cannot change the # encoding after initialization. The test for presence is needed when # this module is run as a script, because this code is executed twice. @@ -549,52 +513,19 @@ main() def _script(): help = """\ - %s [--user-base] [--user-site] - - Without arguments print some useful information - With arguments print the value of USER_BASE and/or USER_SITE separated - by '%s'. - - Exit codes with --user-base or --user-site: - 0 - user site directory is enabled - 1 - user site directory is disabled by user - 2 - uses site directory is disabled by super user - or for security reasons - >2 - unknown error + %s + + Path elements are normally separated by '%s'. """ - args = sys.argv[1:] - if not args: - print "sys.path = [" - for dir in sys.path: - print " %r," % (dir,) - print "]" - print "USER_BASE: %r (%s)" % (USER_BASE, - "exists" if os.path.isdir(USER_BASE) else "doesn't exist") - print "USER_SITE: %r (%s)" % (USER_SITE, - "exists" if os.path.isdir(USER_SITE) else "doesn't exist") - print "ENABLE_USER_SITE: %r" % ENABLE_USER_SITE - sys.exit(0) - - buffer = [] - if '--user-base' in args: - buffer.append(USER_BASE) - if '--user-site' in args: - buffer.append(USER_SITE) - - if buffer: - print os.pathsep.join(buffer) - if ENABLE_USER_SITE: - sys.exit(0) - elif ENABLE_USER_SITE is False: - sys.exit(1) - elif ENABLE_USER_SITE is None: - sys.exit(2) - else: - sys.exit(3) - else: - import textwrap - print textwrap.dedent(help % (sys.argv[0], os.pathsep)) - sys.exit(10) + + print "sys.path = [" + for dir in sys.path: + print " %r," % (dir,) + print "]" + + import textwrap + print textwrap.dedent(help % (sys.argv[0], os.pathsep)) + sys.exit(0) if __name__ == '__main__': _script() -- cgit v1.2.3