Author: Ronny Pfannschmidt <ronny.pfannschm...@gmx.de> Branch: stdlib-unification/py3k Changeset: r54363:4e795faa4933 Date: 2012-04-14 12:05 +0200 http://bitbucket.org/pypy/pypy/changeset/4e795faa4933/
Log: merge from stdlib-unification diff --git a/pypy/tool/clean_old_branches.py b/pypy/tool/clean_old_branches.py --- a/pypy/tool/clean_old_branches.py +++ b/pypy/tool/clean_old_branches.py @@ -4,30 +4,28 @@ called 'closed-branch'. It reduces the number of heads. """ -import os, sys +import os +import sys +import commands -if not os.listdir('.hg'): +if not os.path.isdir('.hg'): print 'Must run this script from the top-level directory.' sys.exit(1) -def heads(args): - g = os.popen(r"hg heads --topo %s --template '{node|short}:{branches}\n'" - % args, 'r') - result = g.read() - g.close() +def heads(): + result = commands.getoutput( + "hg heads --topo --closed --template '{node|short}:{branches}:{extras}\n'") result = result.splitlines(False) + result = [s.split(':', 2) for s in result] for line in result: - if len(line.split(':', 1)) != 2: + if len(line) != 3: raise ValueError("'result' contains: %r" % line) - result = [s.split(':', 1) for s in result] - result = [(head, branch) for (head, branch) in result - if branch not in ['', 'closed-branches']] + result = [(head, branch) for (head, branch, extra) in result + if branch not in ['', 'closed-branches'] and 'close' in extra] return result -all_heads = heads("--closed") -opened_heads = heads("") -closed_heads = [s for s in all_heads if s not in opened_heads] +closed_heads = heads() if not closed_heads: print >> sys.stderr, 'no dangling closed heads.' @@ -56,16 +54,14 @@ print '*** error %r' % (err,) sys.exit(1) +print '*** switching to closed branches *** ' +do("hg up --clean closed-branches") +do("hg --config extensions.purge= purge --all") + for head, branch in closed_heads: print print '***** %s ***** %s *****' % (branch, head) - do("hg up --clean closed-branches") - do("hg --config extensions.purge= purge --all") - do("hg merge -y %s" % head) - for fn in os.listdir('.'): - if fn.lower() != '.hg': - do("rm -fr -- '%s'" % fn) - do("hg rm --after -- '%s' || true" % fn) + do("hg debugsetparents closed-branches %s" % head) do("hg ci -m'Merge closed head %s on branch %s'" % (head, branch)) print diff --git a/pypy/tool/test/test_udir.py b/pypy/tool/test/test_udir.py --- a/pypy/tool/test/test_udir.py +++ b/pypy/tool/test/test_udir.py @@ -13,6 +13,8 @@ def test_make_udir_with_basename(): root = str(udir.udir.ensure('make_udir2', dir=1)) p1 = udir.make_udir(dir=root, basename='foobar') + def assert_relto(path, root, expected): + assert path.relto(root) == expected, path.relto(root) assert p1.relto(root) == 'usession-foobar-0' p1 = udir.make_udir(dir=root, basename='-foobar') assert p1.relto(root) == 'usession-foobar-1' @@ -24,3 +26,5 @@ assert p1.relto(root) == 'usession-0' p1 = udir.make_udir(dir=root, basename='-') assert p1.relto(root) == 'usession-1' + p1 = udir.make_udir(dir=root, basename='fun/bar') + assert p1.relto(root) == 'usession-fun--bar-0' diff --git a/pypy/tool/udir.py b/pypy/tool/udir.py --- a/pypy/tool/udir.py +++ b/pypy/tool/udir.py @@ -41,6 +41,7 @@ basename = basename.encode(sys.getdefaultencoding()) else: basename = '' + basename = basename.replace('/', '--') if not basename.startswith('-'): basename = '-' + basename if not basename.endswith('-'): diff --git a/pypy/translator/driver.py b/pypy/translator/driver.py --- a/pypy/translator/driver.py +++ b/pypy/translator/driver.py @@ -115,12 +115,10 @@ backend, ts = self.get_backend_and_type_system() for task in self.tasks: explicit_task = task - parts = task.split('_') - if len(parts) == 1: - if task in ('annotate',): - expose_task(task) + if task == 'annotate': + expose_task(task) else: - task, postfix = parts + task, postfix = task.split('_') if task in ('rtype', 'backendopt', 'llinterpret', 'pyjitpl'): if ts: _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit