Permalink
Cannot retrieve contributors at this time
Fetching contributors…

""" | |
web2py.site_37.py | |
Source: | |
This is the 3.4 PyInstaller's fake site.py | |
(see https://github.com/pyinstaller/pyinstaller/blob/develop/PyInstaller/fake-modules/site.py) | |
with the addition of the original 3.7 cpython code (see https://github.com/python/cpython/blob/3.7/Lib/site.py ) | |
and adapted for reducing the size of the resulting frozen code | |
Purpose: | |
having back additional commands (mainly help and quit) in the python shell | |
Usage: | |
after installing PyInstaller, rename this file to site.py and overwrite the existing PyInstaller one; | |
on Windows 10: C:/users/my_name/AppData/Local/Programs/Python/Python37/Lib/site-packages/PyInstaller/fake-modules/site.py | |
on Mac: /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/PyInstaller/fake-modules/site.py | |
""" | |
#----------------------------------------------------------------------------- | |
# Copyright (c) 2013-2018, PyInstaller Development Team. | |
# | |
# Distributed under the terms of the GNU General Public License with exception | |
# for distributing bootloader. | |
# | |
# The full license is in the file COPYING.txt, distributed with this software. | |
#----------------------------------------------------------------------------- | |
""" | |
This is a fake 'site' module available in default Python Library. | |
The real 'site' does some magic to find paths to other possible | |
Python modules. We do not want this behaviour for frozen applications. | |
Fake 'site' makes PyInstaller to work with distutils and to work inside | |
virtualenv environment. | |
""" | |
# Marker to be used in our test-suite. | |
__pyinstaller__faked__site__module__ = True | |
# TODO test the following code stub from real 'site' module. | |
# Prefixes for site-packages; add additional prefixes like /usr/local here | |
PREFIXES = [] | |
# Enable per user site-packages directory | |
# set it to False to disable the feature or True to force the feature | |
ENABLE_USER_SITE = False | |
# For distutils.commands.install | |
# These values are initialized by the getuserbase() and getusersitepackages() | |
# functions, through the main() function when Python starts. | |
# Issue #1699: Freezing pip requires 'site.USER_SITE' to be a 'str' not None. | |
USER_SITE = '' | |
USER_BASE = None | |
# | |
# The following has been borrowed from https://github.com/python/cpython/blob/3.7/Lib/site.py | |
# and adapted for reducing the size of the frozen code | |
# | |
import os | |
import sys | |
import builtins | |
import _sitebuiltins | |
def setquit(): | |
"""Define new builtins 'quit' and 'exit'. | |
These are objects which make the interpreter exit when called. | |
The repr of each object contains a hint at how it works. | |
""" | |
if os.sep == '\\': | |
eof = 'Ctrl-Z plus Return' | |
else: | |
eof = 'Ctrl-D (i.e. EOF)' | |
builtins.quit = _sitebuiltins.Quitter('quit', eof) | |
builtins.exit = _sitebuiltins.Quitter('exit', eof) | |
def setcopyright(): | |
"""Set 'copyright' and 'credits' in builtins""" | |
builtins.copyright = _sitebuiltins._Printer("copyright", sys.copyright) | |
if sys.platform[:4] == 'java': | |
builtins.credits = _sitebuiltins._Printer( | |
"credits", | |
"Jython is maintained by the Jython developers (www.jython.org).") | |
else: | |
builtins.credits = _sitebuiltins._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.""") | |
files, dirs = [], [] | |
builtins.license = _sitebuiltins._Printer( | |
"license", | |
"See https://www.python.org/psf/license/", | |
files, dirs) | |
def sethelper(): | |
builtins.help = _sitebuiltins._Helper() | |
def main(): | |
"""Add standard site-specific directories to the module search path. | |
This function is called automatically when this module is imported, | |
unless the python interpreter was started with the -S flag. | |
""" | |
setquit() | |
setcopyright() | |
sethelper() | |
main() | |