This commit is contained in:
ndparker 2014-11-02 00:14:32 +01:00
parent 4472ccade2
commit ac31f03644
7 changed files with 41 additions and 32 deletions

View File

@ -41,7 +41,7 @@ def _cleanup_epydoc(target):
""" """
search = _re.compile(r'<table[^<>]+width="100%%"').search search = _re.compile(r'<table[^<>]+width="100%%"').search
for filename in _shell.files(target, '*.html'): for filename in _shell.files(target, '*.html'):
fp = open(filename, 'r') fp = open(filename, 'r', encoding='latin-1')
try: try:
html = fp.read() html = fp.read()
finally: finally:
@ -53,7 +53,7 @@ def _cleanup_epydoc(target):
if end >= 0: if end >= 0:
end += len('</table>') + 1 end += len('</table>') + 1
html = html[:start] + html[end:] html = html[:start] + html[end:]
fp = open(filename, 'w') fp = open(filename, 'w', encoding='latin-1')
try: try:
fp.write(html) fp.write(html)
finally: finally:

View File

@ -179,7 +179,7 @@ class ConfTest(object):
""" """
self._tempdir = tempdir = _tempfile.mkdtemp() self._tempdir = tempdir = _tempfile.mkdtemp()
src = _os.path.join(tempdir, 'conftest.c') src = _os.path.join(tempdir, 'conftest.c')
fp = open(src, 'w') fp = open(src, 'w', encoding='utf-8')
try: try:
fp.write(source) fp.write(source)
finally: finally:

View File

@ -63,7 +63,7 @@ class MakefileTarget(_make.Target):
names.append(name) names.append(name)
names.sort() names.sort()
fp = open(_shell.native('Makefile'), 'w') fp = open(_shell.native('Makefile'), 'w', encoding='utf-8')
print(decorate("Generated Makefile, DO NOT EDIT"), file=fp) print(decorate("Generated Makefile, DO NOT EDIT"), file=fp)
print(decorate("python %s %s" % ( print(decorate("python %s %s" % (
_os.path.basename(script), self.NAME _os.path.basename(script), self.NAME

View File

@ -187,7 +187,7 @@ class Distribution(_make.Target):
return sig.hexdigest() return sig.hexdigest()
param = {'sig': sig.hexdigest(), 'file': _os.path.basename(filename)} param = {'sig': sig.hexdigest(), 'file': _os.path.basename(filename)}
fp = open("%s.%s" % (filename, name), "w") fp = open("%s.%s" % (filename, name), "w", encoding='utf-8')
fp.write("%(sig)s *%(file)s\n" % param) fp.write("%(sig)s *%(file)s\n" % param)
fp.close() fp.close()
@ -265,9 +265,9 @@ class Distribution(_make.Target):
sig.seek(0, 0) sig.seek(0, 0)
if detach: if detach:
open("%s.asc" % filename, "w").write(sig.read()) open("%s.asc" % filename, "w", encoding='utf-8').write(sig.read())
else: else:
open(filename, "w").write(sig.read()) open(filename, "w", encoding='utf-8').write(sig.read())
return True return True
@ -309,7 +309,7 @@ class Manifest(_make.Target):
def run(self): def run(self):
_term.green("Creating %(name)s...", name=self.NAME) _term.green("Creating %(name)s...", name=self.NAME)
dest = _shell.native(self.NAME) dest = _shell.native(self.NAME)
dest = open(dest, 'w') dest = open(dest, 'w', encoding='utf-8')
for name in self.manifest_names(): for name in self.manifest_names():
dest.write("%s\n" % name) dest.write("%s\n" % name)
dest.close() dest.close()

View File

@ -88,7 +88,7 @@ def find_description(docs):
summary = None summary = None
filename = docs.get('meta.summary', 'SUMMARY').strip() filename = docs.get('meta.summary', 'SUMMARY').strip()
if filename and _os.path.isfile(filename): if filename and _os.path.isfile(filename):
fp = open(filename) fp = open(filename, encoding='utf-8')
try: try:
try: try:
summary = fp.read().strip().splitlines()[0].rstrip() summary = fp.read().strip().splitlines()[0].rstrip()
@ -100,7 +100,7 @@ def find_description(docs):
description = None description = None
filename = docs.get('meta.description', 'DESCRIPTION').strip() filename = docs.get('meta.description', 'DESCRIPTION').strip()
if filename and _os.path.isfile(filename): if filename and _os.path.isfile(filename):
fp = open(filename) fp = open(filename, encoding='utf-8')
try: try:
description = fp.read().rstrip() description = fp.read().rstrip()
finally: finally:
@ -126,7 +126,7 @@ def find_classifiers(docs):
""" """
filename = docs.get('meta.classifiers', 'CLASSIFIERS').strip() filename = docs.get('meta.classifiers', 'CLASSIFIERS').strip()
if filename and _os.path.isfile(filename): if filename and _os.path.isfile(filename):
fp = open(filename) fp = open(filename, encoding='utf-8')
try: try:
content = fp.read() content = fp.read()
finally: finally:
@ -145,7 +145,7 @@ def find_provides(docs):
""" """
filename = docs.get('meta.provides', 'PROVIDES').strip() filename = docs.get('meta.provides', 'PROVIDES').strip()
if filename and _os.path.isfile(filename): if filename and _os.path.isfile(filename):
fp = open(filename) fp = open(filename, encoding='utf-8')
try: try:
content = fp.read() content = fp.read()
finally: finally:
@ -164,7 +164,7 @@ def find_license(docs):
""" """
filename = docs.get('meta.license', 'LICENSE').strip() filename = docs.get('meta.license', 'LICENSE').strip()
if filename and _os.path.isfile(filename): if filename and _os.path.isfile(filename):
fp = open(filename) fp = open(filename, encoding='utf-8')
try: try:
return fp.read().rstrip() return fp.read().rstrip()
finally: finally:
@ -339,7 +339,7 @@ def run(config=('package.cfg',), ext=None, script_args=None, manifest_only=0):
ext = [] ext = []
cfg = _util.SafeConfigParser() cfg = _util.SafeConfigParser()
cfg.read(config) cfg.read(config, encoding='utf-8')
pkg = dict(cfg.items('package')) pkg = dict(cfg.items('package'))
python_min = pkg.get('python.min') or None python_min = pkg.get('python.min') or None
python_max = pkg.get('python.max') or None python_max = pkg.get('python.max') or None

View File

@ -204,7 +204,7 @@ sys.exit(result & 7)
'outfile': repr(_pickle.dumps(_os.path.abspath(outfile))), 'outfile': repr(_pickle.dumps(_os.path.abspath(outfile))),
'argv': repr(_pickle.dumps(argv)), 'argv': repr(_pickle.dumps(argv)),
'env': repr(_pickle.dumps(env)), 'env': repr(_pickle.dumps(env)),
})) }).encode('utf-8'))
fd, _ = None, _os.close(fd) fd, _ = None, _os.close(fd)
if _sys.platform == 'win32': if _sys.platform == 'win32':
argv = [] argv = []

43
make.py
View File

@ -1,7 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: ascii -*- # -*- coding: ascii -*-
# #
# Copyright 2006 - 2013 # Copyright 2006 - 2014
# Andr\xe9 Malo or his licensors, as applicable # Andr\xe9 Malo or his licensors, as applicable
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -38,6 +38,15 @@ from _setup import term
from _setup.make import targets, default_targets from _setup.make import targets, default_targets
if _sys.version_info[0] == 3:
def textopen(*args):
return open(*args, encoding='utf-8')
cfgread = dict(encoding='utf-8')
else:
textopen = open
cfgread = {}
class Target(make.Target): class Target(make.Target):
def init(self): def init(self):
self.dirs = { self.dirs = {
@ -246,7 +255,7 @@ class Website(Target):
def run(self): def run(self):
from _setup.util import SafeConfigParser as parser from _setup.util import SafeConfigParser as parser
parser = parser() parser = parser()
parser.read('package.cfg') parser.read('package.cfg', **cfgread)
strversion = parser.get('package', 'version.number') strversion = parser.get('package', 'version.number')
shortversion = tuple(map(int, strversion.split('.')[:2])) shortversion = tuple(map(int, strversion.split('.')[:2]))
@ -261,19 +270,19 @@ class Website(Target):
filename = _os.path.join( filename = _os.path.join(
self.dirs['_website'], 'src', 'website_download.txt' self.dirs['_website'], 'src', 'website_download.txt'
) )
fp = open(filename) fp = textopen(filename)
try: try:
download = fp.read() download = fp.read()
finally: finally:
fp.close() fp.close()
filename = _os.path.join(self.dirs['_website'], 'src', 'index.txt') filename = _os.path.join(self.dirs['_website'], 'src', 'index.txt')
fp = open(filename) fp = textopen(filename)
try: try:
indexlines = fp.readlines() indexlines = fp.readlines()
finally: finally:
fp.close() fp.close()
fp = open(filename, 'w') fp = textopen(filename, 'w')
try: try:
for line in indexlines: for line in indexlines:
if line.startswith('.. placeholder: Download'): if line.startswith('.. placeholder: Download'):
@ -292,7 +301,7 @@ class Website(Target):
self.dirs['_website'], 'src', 'doc-%d.%d' % shortversion self.dirs['_website'], 'src', 'doc-%d.%d' % shortversion
) )
) )
fp = open(_os.path.join( fp = textopen(_os.path.join(
self.dirs['_website'], 'src', 'conf.py' self.dirs['_website'], 'src', 'conf.py'
), 'a') ), 'a')
try: try:
@ -344,7 +353,7 @@ class SVNRelease(Target):
""" Tag release """ """ Tag release """
from _setup.util import SafeConfigParser as parser from _setup.util import SafeConfigParser as parser
parser = parser() parser = parser()
parser.read('package.cfg') parser.read('package.cfg', **cfgread)
strversion = parser.get('package', 'version.number') strversion = parser.get('package', 'version.number')
version = strversion version = strversion
trunk_url = self._repo_url() trunk_url = self._repo_url()
@ -422,7 +431,7 @@ class GitRelease(Target):
""" Tag release """ """ Tag release """
from _setup.util import SafeConfigParser as parser from _setup.util import SafeConfigParser as parser
parser = parser() parser = parser()
parser.read('package.cfg') parser.read('package.cfg', **cfgread)
strversion = parser.get('package', 'version.number') strversion = parser.get('package', 'version.number')
version = strversion version = strversion
git = shell.frompath('git') git = shell.frompath('git')
@ -478,7 +487,7 @@ class Version(Target):
def run(self): def run(self):
from _setup.util import SafeConfigParser as parser from _setup.util import SafeConfigParser as parser
parser = parser() parser = parser()
parser.read('package.cfg') parser.read('package.cfg', **cfgread)
strversion = parser.get('package', 'version.number') strversion = parser.get('package', 'version.number')
self._version_init(strversion) self._version_init(strversion)
@ -496,12 +505,12 @@ class Version(Target):
def _version_init(self, strversion): def _version_init(self, strversion):
""" Modify version in __init__ """ """ Modify version in __init__ """
filename = _os.path.join(self.dirs['lib'], 'rjsmin.py') filename = _os.path.join(self.dirs['lib'], 'rjsmin.py')
fp = open(filename) fp = textopen(filename)
try: try:
initlines = fp.readlines() initlines = fp.readlines()
finally: finally:
fp.close() fp.close()
fp = open(filename, 'w') fp = textopen(filename, 'w')
replaced = False replaced = False
try: try:
for line in initlines: for line in initlines:
@ -516,12 +525,12 @@ class Version(Target):
def _version_changes(self, strversion): def _version_changes(self, strversion):
""" Modify version in changes """ """ Modify version in changes """
filename = _os.path.join(shell.native(self.dirs['docs']), 'CHANGES') filename = _os.path.join(shell.native(self.dirs['docs']), 'CHANGES')
fp = open(filename) fp = textopen(filename)
try: try:
initlines = fp.readlines() initlines = fp.readlines()
finally: finally:
fp.close() fp.close()
fp = open(filename, 'w') fp = textopen(filename, 'w')
try: try:
for line in initlines: for line in initlines:
if line.rstrip() == "Changes with version": if line.rstrip() == "Changes with version":
@ -535,13 +544,13 @@ class Version(Target):
filename = _os.path.join(self.dirs['userdoc_source'], 'conf.py') filename = _os.path.join(self.dirs['userdoc_source'], 'conf.py')
shortversion = '.'.join(strversion.split('.')[:2]) shortversion = '.'.join(strversion.split('.')[:2])
longversion = strversion longversion = strversion
fp = open(filename) fp = textopen(filename)
try: try:
initlines = fp.readlines() initlines = fp.readlines()
finally: finally:
fp.close() fp.close()
replaced = 0 replaced = 0
fp = open(filename, 'w') fp = textopen(filename, 'w')
try: try:
for line in initlines: for line in initlines:
if line.startswith('version'): if line.startswith('version'):
@ -561,13 +570,13 @@ class Version(Target):
self.dirs['userdoc_source'], 'website_download.txt' self.dirs['userdoc_source'], 'website_download.txt'
) )
VERSION, PATH = strversion, '' VERSION, PATH = strversion, ''
fp = open(filename + '.in') fp = textopen(filename + '.in')
try: try:
dllines = fp.readlines() dllines = fp.readlines()
finally: finally:
fp.close() fp.close()
instable = [] instable = []
fp = open(filename, 'w') fp = textopen(filename, 'w')
try: try:
for line in dllines: for line in dllines:
if instable: if instable: