formatter: add helper to create a formatter optionally backed by file
To make things simple, openformatter() and maybereopen() have no support
for a plain object API. Callers must use the "with" statement.
Unlike cmdutil.makefileobj(), append mode ('ab') isn't supported by these
functions. This is because JSON output can't be simply concatenated. Perhaps
cmdutil.export() will have to build a {filename: [revs...]} map first and
write revs per file.
from __future__ import absolute_import
from mercurial import (
util,
)
# XXX: we should probably offer a devel option to do this in blackbox directly
def getuser():
return 'bob'
def getpid():
return 5000
# mock the date and user apis so the output is always the same
def uisetup(ui):
util.getuser = getuser
util.getpid = getpid