You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by da...@apache.org on 2020/01/25 09:53:38 UTC

[openoffice] 02/06: scripting: add Python 3 support to the Python provider

This is an automated email from the ASF dual-hosted git repository.

damjan pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/openoffice.git

commit 4f686187ecfc86b8d293f1b6c9a49fee4b0bf393
Author: Damjan Jovanovic <da...@apache.org>
AuthorDate: Sat Jan 18 09:52:51 2020 +0200

    scripting: add Python 3 support to the Python provider
    
    Patch by: me
---
 main/scripting/source/pyprov/pythonscript.py | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/main/scripting/source/pyprov/pythonscript.py b/main/scripting/source/pyprov/pythonscript.py
index 23e82b5..af01bb0 100644
--- a/main/scripting/source/pyprov/pythonscript.py
+++ b/main/scripting/source/pyprov/pythonscript.py
@@ -56,7 +56,10 @@ ENABLE_EDIT_DIALOG=False                    # offers a minimal editor for editin
 #-------------------------------------------------------------------
 
 def encfile(uni):
-    return uni.encode( sys.getfilesystemencoding())
+    if sys.version_info[0] > 2:
+        return uni
+    else:
+        return uni.encode( sys.getfilesystemencoding())
 
 def lastException2String():
     (excType,excInstance,excTraceback) = sys.exc_info()
@@ -81,7 +84,7 @@ def getLogTarget():
             userInstallation =  pathSubst.getSubstituteVariableValue( "user" )
             if len( userInstallation ) > 0:
                 systemPath = uno.fileUrlToSystemPath( userInstallation + "/Scripts/python/log.txt" )
-                ret = file( systemPath , "a" )
+                ret = open( systemPath , "a" )
         except Exception as e:
             print("Exception during creation of pythonscript logfile: "+ lastException2String() + "\n, delagating log to stdout\n")
     return ret
@@ -153,13 +156,16 @@ g_implName = "org.openoffice.pyuno.LanguageScriptProviderFor"+LANGUAGENAME
 BLOCK_SIZE = 65536
 def readTextFromStream( inputStream ):
     # read the file
-    code = uno.ByteSequence( "" )
+    code = uno.ByteSequence( b"" )
     while True:
         read,out = inputStream.readBytes( None , BLOCK_SIZE )
         code = code + out
         if read < BLOCK_SIZE:
             break
-    return code.value
+    if sys.version_info[0] > 2:
+        return str( code.value, 'utf-8' )
+    else:
+        return code.value
 
 def toIniName( str ):
     # TODO: what is the official way to get to know whether i am on the windows platform ?