Hi Alexander, *,

On Mon, Jun 27, 2011 at 5:14 PM, Alexander Thurgood
<alex.thurg...@gmail.com> wrote:
>
> MacOSX_10.6.7_Intel_no-moz/master/2011-06-27_08.26.21
>
> There is no Python script menu entry in the Tools > Macros > Organise UI
> menu, only Basic, Javascript and Beanshell.

This is caused by

commit 5f1a059d37501f2b26cd387e2b1f096f6272c004
Author: Andreas Becker <atayoo...@googlemail.com>
Date:   Sat May 7 20:35:03 2011 +0100

    Port PyUno to support Python 3

to the URE module.
This patch is bad in a sense as it mixes whitespace changes with
functional changes and introduces bugs at the same time :-(

>From git log -p -b (i.e. ignore whitespace only changes:
--- a/pyuno/source/loader/pythonloader.py
+++ b/pyuno/source/loader/pythonloader.py
@@ -49,16 +49,16 @@ g_loadedComponents = {}
 def checkForPythonPathBesideComponent( url ):
       path = unohelper.fileUrlToSystemPath( url+"/pythonpath.zip" );
       if DEBUG == 1:
-            print "checking for existence of " + encfile( path )
+        print("checking for existence of " + encfile( path ))
       if 1 == os.access( encfile( path ), os.F_OK) and not path in sys.path:
             if DEBUG == 1:
-                  print "adding " + encfile( path ) + " to sys.path"
+            print("adding " + encfile( path ) + " to sys.path")
             sys.path.append( path )

       path = unohelper.fileUrlToSystemPath( url+"/pythonpath" );
       if 1 == os.access( encfile( path ), os.F_OK) and not path in sys.path:
             if DEBUG == 1:
-                  print "adding " + encfile( path ) + " to sys.path"
+            print("adding " + encfile( path ) + " to sys.path")
             sys.path.append( path )

 def encfile(uni):
###########################

So already in the first hunk that is not whitespace-only, it changes
the alignment of the print statement from the last if-clause to the
wrong level.. This is noticable in various places.

But what makes it incompatible with Mac are those:

@@ -113,13 +113,13 @@ class Loader( XImplementationLoader,
XServiceInfo, unohelper.Base ):
                 else:
                       raise RuntimeException( "PythonLoader: Unknown
protocol " +
                                               protocol + " in url "
+url, self )
-          except ImportError, e:
-                raise RuntimeException( "Couldn't load "+url+ " for
reason "+str(e), None)
+        except ImportError as e:
+            raise RuntimeException( "Couldn't load " + url + " for
reason " + str(e), None )
           return None

       def activate( self, implementationName, dummy, locationUrl, regKey ):
          if DEBUG:
-            print "pythonloader.Loader.activate"
+            print("pythonloader.Loader.activate")

          mod = self.getModuleFromUrl( locationUrl )
           implHelper = mod.__dict__.get( "g_ImplementationHelper" , None )
###########################

I.e. "except ImportError as e" is a syntax error in python 2.3, you
need to keep it as "except ImportError, e" - same for various other
places.

So I ask Andreas Becker to either revert and apply a clean version of
the Python 3 relevant changes /only/ (i.e. without the whitespache
changes all over the place), or to go through the whole thing again
and make sure that the indendation still matches the original
versions.

AFAICT the only think that is python 3 relevant is to put the argument
to print in parentheses.

Especially this change:

@@ -104,7 +104,7 @@ class Loader( XImplementationLoader, XServiceInfo,
unohelper.Base ):

                             # compile and execute the module
                             codeobject = compile( src,
encfile(filename), "exec" )
-                            exec codeobject in mod.__dict__
+                    exec(codeobject, mod.__dict__)
                             mod.__file__ = encfile(filename)
                             g_loadedComponents[url] = mod
                       return mod
########
just is not right, is it?

ciao
Christian
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to