Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/pycompat.py @ 45727:d4c4391aa7f2
pycompat: add an entry for unnamedtmpfile
I am going to use unnamed temporary files to pass arbitrarily large input data
to worker creating bundles. To do so, I need a unified API that work on py2 and
py3.
Differential Revision: https://phab.mercurial-scm.org/D9211
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 14 Oct 2020 17:51:56 +0200 |
parents | d1072cba8aff |
children | e3d595b7fbaa |
comparison
equal
deleted
inserted
replaced
45726:d1072cba8aff | 45727:d4c4391aa7f2 |
---|---|
504 # text=True is not supported; use util.from/tonativeeol() instead | 504 # text=True is not supported; use util.from/tonativeeol() instead |
505 def mkstemp(suffix=b'', prefix=b'tmp', dir=None): | 505 def mkstemp(suffix=b'', prefix=b'tmp', dir=None): |
506 return tempfile.mkstemp(suffix, prefix, dir) | 506 return tempfile.mkstemp(suffix, prefix, dir) |
507 | 507 |
508 | 508 |
509 # TemporaryFile does not support an "encoding=" argument on python2. | |
510 # This wrapper file are always open in byte mode. | |
511 def unnamedtempfile(mode=None, *args, **kwargs): | |
512 if mode is None: | |
513 mode = b'w+b' | |
514 else: | |
515 mode = sysstr(mode) | |
516 assert 'b' in mode | |
517 return tempfile.TemporaryFile(mode, *args, **kwargs) | |
518 | |
519 | |
509 # NamedTemporaryFile does not support an "encoding=" argument on python2. | 520 # NamedTemporaryFile does not support an "encoding=" argument on python2. |
510 # This wrapper file are always open in byte mode. | 521 # This wrapper file are always open in byte mode. |
511 def namedtempfile( | 522 def namedtempfile( |
512 mode=b'w+b', bufsize=-1, suffix=b'', prefix=b'tmp', dir=None, delete=True | 523 mode=b'w+b', bufsize=-1, suffix=b'', prefix=b'tmp', dir=None, delete=True |
513 ): | 524 ): |