patch: make extract() a context manager (API)
Previously, this function was creating a temporary file and relying
on callers to unlink it. Yuck.
We convert the function to a context manager and tie the lifetime of
the temporary file to that of the context manager. This changed
indentation not only from the context manager, but also from the
elination of try blocks. It was just easier to split the heart of
extract() into its own function.
The single consumer of this function has been refactored to use it as
a context manager. Code for cleaning up the file in tryimportone()
has also been removed.
.. api::
``patch.extract()`` is now a context manager. Callers no longer have
to worry about deleting the temporary file it creates, as the file is
tied to the lifetime of the context manager.
Differential Revision: https://phab.mercurial-scm.org/D3306
#require test-repo pylint hg10
Run pylint for known rules we care about.
-----------------------------------------
There should be no recorded failures; fix the codebase before introducing a
new check.
Current checks:
- W0102: no mutable default argument
$ touch $TESTTMP/fakerc
$ pylint --rcfile=$TESTTMP/fakerc --disable=all \
> --enable=W0102,C0321 \
> --reports=no \
> --ignore=thirdparty \
> mercurial hgdemandimport hgext hgext3rd
(?)
------------------------------------ (?)
Your code has been rated at 10.00/10 (?)
(?)