[pypy-svn] r39233 - in pypy/dist/pypy: bin translator/goal

ac at codespeak.net ac at codespeak.net
Tue Feb 20 14:10:17 CET 2007


Author: ac
Date: Tue Feb 20 14:10:15 2007
New Revision: 39233

Modified:
   pypy/dist/pypy/bin/py.py
   pypy/dist/pypy/translator/goal/app_main.py
Log:
Implement -S (don't 'import site') option.

Modified: pypy/dist/pypy/bin/py.py
==============================================================================
--- pypy/dist/pypy/bin/py.py	(original)
+++ pypy/dist/pypy/bin/py.py	Tue Feb 20 14:10:15 2007
@@ -29,6 +29,8 @@
     BoolOption("optimize",
                "dummy optimization flag for compatibility with CPython",
                default=False, cmdline="-O"),
+    BoolOption("no_site_import", "do not 'import site' on initialization",
+               default=False, cmdline="-S"),
     StrOption("runmodule",
               "library module to be run as a script (terminates option list)",
               default=None, cmdline="-m"),
@@ -38,14 +40,15 @@
     ])
 
 pypy_init = gateway.applevel('''
-def pypy_init():
-    try:
-        import site
-    except:
-        import sys
-        print >> sys.stderr, "import site' failed"
-
+def pypy_init(import_site):
+    if import_site:
+        try:
+            import site
+        except:
+            import sys
+            print >> sys.stderr, "import site' failed"
 ''').interphook('pypy_init')
+
 def main_(argv=None):
     starttime = time.time()
     config, parser = option.get_standard_options()
@@ -99,7 +102,7 @@
     try:
         def do_start():
             space.startup()
-            pypy_init(space)
+            pypy_init(space, space.wrap(not interactiveconfig.no_site_import))
         if main.run_toplevel(space, do_start,
                              verbose=interactiveconfig.verbose):
             # compile and run it

Modified: pypy/dist/pypy/translator/goal/app_main.py
==============================================================================
--- pypy/dist/pypy/translator/goal/app_main.py	(original)
+++ pypy/dist/pypy/translator/goal/app_main.py	Tue Feb 20 14:10:15 2007
@@ -6,6 +6,7 @@
   -i           inspect interactively after running script
   -O           dummy optimization flag for compatibility with C Python
   -c CMD       program passed in as CMD (terminates option list)
+  -S           do not 'import site' on initialization
   -u           unbuffered binary stdout and stderr
   -h, --help   show this help message and exit
   --version    print the PyPy version
@@ -172,6 +173,7 @@
 
     go_interactive = False
     run_command = False
+    import_site = True
     i = 0
     while i < len(argv):
         arg = argv[i]
@@ -198,6 +200,8 @@
         elif arg == '-h' or arg == '--help':
             print_help()
             return 0
+        elif arg == '-S':
+            import_site = False
         elif arg == '--':
             i += 1
             break     # terminates option list
@@ -214,10 +218,11 @@
     mainmodule = type(sys)('__main__')
     sys.modules['__main__'] = mainmodule
 
-    try:
-        import site
-    except:
-        print >> sys.stderr, "import site' failed"
+    if import_site:
+        try:
+            import site
+        except:
+            print >> sys.stderr, "import site' failed"
 
 
     # set up the Ctrl-C => KeyboardInterrupt signal handler, if the



More information about the Pypy-commit mailing list