From befb3ea8a88dbc7d54155c3ffaa4e6c485775015 Mon Sep 17 00:00:00 2001 From: Clemens Weissbacher <4752766+weimens@users.noreply.github.com> Date: Mon, 29 Oct 2018 17:17:53 +0100 Subject: [PATCH] py3: OpenSCAD: use io.open more explicit --- src/Mod/OpenSCAD/OpenSCADUtils.py | 7 ++----- src/Mod/OpenSCAD/exportCSG.py | 6 ++++-- src/Mod/OpenSCAD/importCSG.py | 6 ++---- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/Mod/OpenSCAD/OpenSCADUtils.py b/src/Mod/OpenSCAD/OpenSCADUtils.py index 2a323390d4..4fbac7d018 100644 --- a/src/Mod/OpenSCAD/OpenSCADUtils.py +++ b/src/Mod/OpenSCAD/OpenSCADUtils.py @@ -41,10 +41,7 @@ except AttributeError: from PySide import QtGui return QtGui.QApplication.translate(context, text, None) -try: - from io import open -except ImportError: - from codecs import open +import io try: import FreeCAD @@ -180,7 +177,7 @@ def callopenscadstring(scadstr,outputext='csg'): import os,tempfile,time dir1=tempfile.gettempdir() inputfilename=os.path.join(dir1,'%s.scad' % next(tempfilenamegen)) - inputfile = open(inputfilename,'w', encoding="utf8") + inputfile = io.open(inputfilename,'w', encoding="utf8") inputfile.write(scadstr) inputfile.close() outputfilename = callopenscad(inputfilename,outputext=outputext,\ diff --git a/src/Mod/OpenSCAD/exportCSG.py b/src/Mod/OpenSCAD/exportCSG.py index cb576b1ae3..40aa8d42e1 100644 --- a/src/Mod/OpenSCAD/exportCSG.py +++ b/src/Mod/OpenSCAD/exportCSG.py @@ -50,7 +50,9 @@ convexity = 'convexity = %d' % conv #*************************************************************************** # Radius values not fixed for value apart from cylinder & Cone # no doubt there will be a problem when they do implement Value -pythonopen = open +if open.__module__ in ['__builtin__', 'io']: + pythonopen = open # to distinguish python built-in open function from the one declared here + def center(b): if b == 2: @@ -247,7 +249,7 @@ def export(exportList,filename): # process Objects print("\nStart Export 0.1d\n") print("Open Output File") - csg = pythonopen(filename,'w', encoding="utf8") + csg = pythonopen(filename,'w') print("Write Initial Output") # Not sure if comments as per scad are allowed in csg file csg.write("// CSG file generated from FreeCAD %s\n" % \ diff --git a/src/Mod/OpenSCAD/importCSG.py b/src/Mod/OpenSCAD/importCSG.py index 5c7aa7618b..bacc556182 100644 --- a/src/Mod/OpenSCAD/importCSG.py +++ b/src/Mod/OpenSCAD/importCSG.py @@ -33,7 +33,7 @@ __url__ = ["http://www.sloan-home.co.uk/ImportCSG"] printverbose = False -import FreeCAD, os, sys +import FreeCAD, io, os, sys if FreeCAD.GuiUp: import FreeCADGui gui = True @@ -52,8 +52,6 @@ from OpenSCADUtils import * params = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/OpenSCAD") printverbose = params.GetBool('printVerbose',False) -pythonopen = open - # Get the token map from the lexer. This is required. import tokrules from tokrules import tokens @@ -135,7 +133,7 @@ def processcsg(filename): if printverbose: print('Parser Loaded') # Give the lexer some input #f=open('test.scad', 'r') - f = pythonopen(filename, 'r', encoding="utf8") + f = io.open(filename, 'r', encoding="utf8") #lexer.input(f.read()) if printverbose: print('Start Parser')