Ensure that bin/tahoe and setup.py fail quickly on Python 3.3+. fixes #1775
authorDavid-Sarah Hopwood <david-sarah@jacaranda.org>
Fri, 15 Mar 2013 04:28:35 +0000 (04:28 +0000)
committerDavid-Sarah Hopwood <david-sarah@jacaranda.org>
Fri, 15 Mar 2013 04:28:35 +0000 (04:28 +0000)
Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
bin/tahoe-script.template
setup.py

index 5f144b22d56d13a1e22d0472c4fc430282b4b1e4..abcdaa0129f565bce8255036961da255f1080876 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/false # You must specify a python interpreter.
-u"Tahoe-LAFS does not run under Python 3. Please use a version of Python between 2.5 and 2.7.x inclusive."
+ur"Tahoe-LAFS does not run under Python 3. Please use a version of Python between 2.5 and 2.7.x inclusive."
 
 import sys, os, subprocess
 
@@ -21,13 +21,13 @@ distribution, and only if you have already run "python setup.py build".
 # look for Tahoe.home .
 homemarker = os.path.join(base, "Tahoe.home")
 if not os.path.exists(homemarker):
-    print whoami
-    print '''\
+    print(whoami)
+    print('''\
 I just tried to run and found that I am not living in such a directory, so I
 am stopping now. To run Tahoe after it has been is installed, please execute
 my brother, who gets installed into the appropriate place for executables
 when you run "make install" (perhaps as "%s").
-''' % (perhaps_installed_tahoe,)
+''' % (perhaps_installed_tahoe,))
     sys.exit(1)
 
 # we've found our home. Put the tahoe support/lib etc. in our PYTHONPATH.
@@ -104,25 +104,25 @@ else:
     command = prefix + [script] + args
 
     if not os.path.exists(script):
-        print whoami
-        print '''\
+        print(whoami)
+        print('''\
 I could not find the support script
 "%s".
 
 To run an installed version of Tahoe-LAFS, please execute the "tahoe"
 script that is installed into the appropriate place for executables
 when you run "python setup.py install" (perhaps as "%s").
-''' % (script, perhaps_installed_tahoe)
+''' % (script, perhaps_installed_tahoe))
         sys.exit(1)
 
 try:
     res = subprocess.call(command, env=os.environ)
-except Exception, le:
-    print whoami
-    print '''\
+except Exception as le:
+    print(whoami)
+    print('''\
 I just tried to invoke "%s"
 and got an exception.
-''' % (runner,)
+''' % (runner,))
     raise
 else:
     sys.exit(res)
index bbb662df4140e3775d96969851f96f3cbfed3821..6276151b66395b8d071a87b18517ed08c873ad98 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
 #! /usr/bin/env python
 # -*- coding: utf-8 -*-
-u"Tahoe-LAFS does not run under Python 3. Please use a version of Python between 2.5 and 2.7.x inclusive."
+ur"Tahoe-LAFS does not run under Python 3. Please use a version of Python between 2.5 and 2.7.x inclusive."
 
 # Tahoe-LAFS -- secure, distributed storage grid
 #
@@ -49,7 +49,7 @@ except EnvironmentError:
     open(APPNAMEFILE, "w").write(APPNAMEFILESTR)
 else:
     if curappnamefilestr.strip() != APPNAMEFILESTR:
-        print "Error -- this setup.py file is configured with the 'application name' to be '%s', but there is already a file in place in '%s' which contains the contents '%s'.  If the file is wrong, please remove it and setup.py will regenerate it and write '%s' into it." % (APPNAME, APPNAMEFILE, curappnamefilestr, APPNAMEFILESTR)
+        print("Error -- this setup.py file is configured with the 'application name' to be '%s', but there is already a file in place in '%s' which contains the contents '%s'.  If the file is wrong, please remove it and setup.py will regenerate it and write '%s' into it." % (APPNAME, APPNAMEFILE, curappnamefilestr, APPNAMEFILESTR))
         sys.exit(-1)
 
 # setuptools/zetuptoolz looks in __main__.__requires__ for a list of
@@ -279,15 +279,15 @@ def run_command(args, cwd=None, verbose=False):
     try:
         # remember shell=False, so use git.cmd on windows, not just git
         p = subprocess.Popen(args, stdout=subprocess.PIPE, cwd=cwd)
-    except EnvironmentError, e:
+    except EnvironmentError as e:
         if verbose:
-            print "unable to run %s" % args[0]
-            print e
+            print("unable to run %s" % args[0])
+            print(e)
         return None
     stdout = p.communicate()[0].strip()
     if p.returncode != 0:
         if verbose:
-            print "unable to run %s (error)" % args[0]
+            print("unable to run %s (error)" % args[0])
         return None
     return stdout
 
@@ -326,7 +326,7 @@ def versions_from_git(tag_prefix, verbose=False):
         return {}
     if not stdout.startswith(tag_prefix):
         if verbose:
-            print "tag '%s' doesn't start with prefix '%s'" % (stdout, tag_prefix)
+            print("tag '%s' doesn't start with prefix '%s'" % (stdout, tag_prefix))
         return {}
     version = stdout[len(tag_prefix):]
     pieces = version.split("-")
@@ -359,7 +359,7 @@ class UpdateVersion(Command):
         elif os.path.isdir(os.path.join(basedir, ".git")):
             verstr = self.try_from_git(target)
         else:
-            print "no version-control data found, leaving _version.py alone"
+            print("no version-control data found, leaving _version.py alone")
             return
         if verstr:
             self.distribution.metadata.version = verstr
@@ -384,7 +384,7 @@ class UpdateVersion(Command):
                           "normalized": versions["normalized"],
                           "full": versions["full"] })
                 f.close()
-                print "git-version: wrote '%s' into '%s'" % (versions["version"], fn)
+                print("git-version: wrote '%s' into '%s'" % (versions["version"], fn))
         return versions.get("normalized", None)