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 ?