Updated to python 3 compatible code

master
Graham Eades 2020-03-02 18:01:27 +00:00
parent fcd6e4863a
commit 6f22b5eb6e
5 changed files with 31 additions and 27 deletions

View File

@ -7,7 +7,7 @@ import hashlib
from functools import reduce from functools import reduce
from operator import add from operator import add
from itertools import izip #from itertools import izip
import main import main
@ -63,7 +63,7 @@ class BackendBuilder(object):
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
def writeToFolder (self, folder, filename, content): def writeToFolder (self, folder, filename, content):
file = open(os.path.join(folder, filename), 'w') file = open(os.path.join(folder, filename), 'wb')
file.write(content.encode('utf-8')) file.write(content.encode('utf-8'))
file.close() file.close()
@ -81,19 +81,19 @@ class BackendBuilder(object):
def formatMAC (self, value): def formatMAC (self, value):
x = iter(value) x = iter(value)
return ' '.join([reduce(add, tup) for tup in izip(x, x, x, x)]) return ' '.join([reduce(add, tup) for tup in zip(x, x, x, x)])
def logChecksums (self, content, message): def logChecksums (self, content, message):
md5Digest = self.formatMAC(hashlib.md5(content.encode('utf-8')).hexdigest()) md5Digest = self.formatMAC(hashlib.md5(content.encode('utf-8')).hexdigest())
shaDigest = self.formatMAC(hashlib.sha1(content.encode('utf-8')).hexdigest()) shaDigest = self.formatMAC(hashlib.sha1(content.encode('utf-8')).hexdigest())
sha256Digest = self.formatMAC(hashlib.sha256(content.encode('utf-8')).hexdigest()) sha256Digest = self.formatMAC(hashlib.sha256(content.encode('utf-8')).hexdigest())
print "-----" print ( "-----" )
print message + ": " + md5Digest + " (md5)" print ( message + ": " + md5Digest + " (md5)" )
print message + ": " + shaDigest + " (sha1)" print ( message + ": " + shaDigest + " (sha1)" )
print message + ": " + sha256Digest + " (sha256)" print ( message + ": " + sha256Digest + " (sha256)" )
print "file size: " + "{:,}".format(len(content)) print ( "file size: " + "{:,}".format(len(content)) )
print "=====" print ( "=====" )
def shouldCompileCode (self): def shouldCompileCode (self):
@ -101,7 +101,7 @@ class BackendBuilder(object):
def run (self): def run (self):
print self.name() + " - RUN" print ( self.name() + " - RUN" )
if self.shouldCompileCode(): if self.shouldCompileCode():
self.compileCode() self.compileCode()

View File

@ -4,7 +4,7 @@
"""`cssmin` - A Python port of the YUI CSS compressor.""" """`cssmin` - A Python port of the YUI CSS compressor."""
from StringIO import StringIO # The pure-Python StringIO supports unicode. from io import StringIO # The pure-Python StringIO supports unicode.
import re import re

View File

@ -6,7 +6,7 @@ import cssmin
import jsmin import jsmin
import codecs import codecs
import shutil import shutil
import StringIO from io import StringIO
import urllib import urllib
import main import main
@ -146,7 +146,7 @@ class FrontendBuilder(object):
def template (self): def template (self):
processedFile = 'html_template' processedFile = 'html_template'
if not self.processedFiles.has_key(processedFile): if processedFile not in self.processedFiles:
# self.processedFiles[processedFile] = self.loadFilesContent('html', ['index_template.html']) # self.processedFiles[processedFile] = self.loadFilesContent('html', ['index_template.html'])
self.processedFiles[processedFile] = self.loadFilesContent('html', [self.settings['html.template']]) self.processedFiles[processedFile] = self.loadFilesContent('html', [self.settings['html.template']])
@ -218,8 +218,8 @@ class FrontendBuilder(object):
def compressJS_jsmin (self, js, description): def compressJS_jsmin (self, js, description):
self.log("compressing " + description + " code") self.log("compressing " + description + " code")
original = StringIO.StringIO(js) original = StringIO(js)
output = StringIO.StringIO() output = StringIO()
jsMinifier = jsmin.JavascriptMinify() jsMinifier = jsmin.JavascriptMinify()
jsMinifier.minify(original, output) jsMinifier.minify(original, output)
@ -287,7 +287,8 @@ class FrontendBuilder(object):
def bookmarklet (self): def bookmarklet (self):
cacheKey = 'bookmarklet' cacheKey = 'bookmarklet'
if not self.processedFiles.has_key(cacheKey): # if not self.processedFiles.has_key(cacheKey):
if 'bookmarklet' not in self.processedFiles:
result = 'bookmarklet="' + self.packBookmarklet(self.loadFilesContent('js', ['Bookmarklet.js']), "regular") + '";bookmarklet_ie="' + self.packBookmarklet(self.loadFilesContent('js', ['Bookmarklet_IE.js']), "IE") + '";' result = 'bookmarklet="' + self.packBookmarklet(self.loadFilesContent('js', ['Bookmarklet.js']), "regular") + '";bookmarklet_ie="' + self.packBookmarklet(self.loadFilesContent('js', ['Bookmarklet_IE.js']), "IE") + '";'
self.processedFiles[cacheKey] = result self.processedFiles[cacheKey] = result
else: else:
@ -316,7 +317,8 @@ class FrontendBuilder(object):
def assembleCopyrightHeader (self): def assembleCopyrightHeader (self):
processedFile = 'copyright' processedFile = 'copyright'
if not self.processedFiles.has_key(processedFile): # if not self.processedFiles.has_key(processedFile):
if 'copyright' not in self.processedFiles:
#self.log("assembling copyright header") #self.log("assembling copyright header")
copyrightValues = self.settings['copyright.values'] copyrightValues = self.settings['copyright.values']
license = self.loadFilesContent('../../properties', ['license.txt']) license = self.loadFilesContent('../../properties', ['license.txt'])
@ -351,7 +353,8 @@ class FrontendBuilder(object):
def assembleVersion (self, pageTitle, copyright, css, js, jsLoadMode, version, versionType): def assembleVersion (self, pageTitle, copyright, css, js, jsLoadMode, version, versionType):
cacheKey = version + "-" + versionType cacheKey = version + "-" + versionType
if not self.processedFiles.has_key(cacheKey): # if not self.processedFiles.has_key(cacheKey):
if cacheKey not in self.processedFiles:
result = self.replaceTemplatePlaceholders(pageTitle, copyright, css, js, jsLoadMode, version, versionType) result = self.replaceTemplatePlaceholders(pageTitle, copyright, css, js, jsLoadMode, version, versionType)
self.processedFiles[cacheKey] = result self.processedFiles[cacheKey] = result
else: else:

View File

@ -30,7 +30,7 @@ class DeltaBuilder(FrontendBuilder):
content = content.replace('@request.path@', backendSettings['request.path']) content = content.replace('@request.path@', backendSettings['request.path'])
dst = self.absolutePathForTargetFile(targetFolder, '', resource['target']) dst = self.absolutePathForTargetFile(targetFolder, '', resource['target'])
file = open(dst, 'w') file = open(dst, 'wb')
file.write(content.encode('utf-8')) file.write(content.encode('utf-8'))
file.close() file.close()

View File

@ -33,7 +33,7 @@ import os, os.path, shutil
# SOFTWARE. # SOFTWARE.
# */ # */
from StringIO import StringIO from io import StringIO
def jsmin(js): def jsmin(js):
ins = StringIO(js) ins = StringIO(js)
@ -224,7 +224,7 @@ def compress(in_files, out_file, in_type='js', verbose=False, temp_file='.temp')
temp.write(data) temp.write(data)
print ' + %s' % f print ( ' + %s' % f )
temp.close() temp.close()
out = open(out_file, 'w') out = open(out_file, 'w')
@ -237,10 +237,11 @@ def compress(in_files, out_file, in_type='js', verbose=False, temp_file='.temp')
org_size = os.path.getsize(temp_file) org_size = os.path.getsize(temp_file)
new_size = os.path.getsize(out_file) new_size = os.path.getsize(out_file)
print '=> %s' % out_file print ( '=> %s' % out_file )
print 'Original: %.2f kB' % (org_size / 1024.0) print ( 'Original: %.2f kB' )% (org_size / 1024.0)
print 'Compressed: %.2f kB' % (new_size / 1024.0) print ( 'Compressed: %.2f kB' )% (new_size / 1024.0)
print 'Reduction: %.1f%%' % (float(org_size - new_size) / org_size * 100) # print ( 'Reduction: %.1f%%' % (f )loat(org_size - new_size) / org_size * 100)
print '' print ( 'Reduction: %.1f%%' % (org_size - new_size) / org_size * 100)
print ( '' )
os.remove(temp_file) os.remove(temp_file)