##// END OF EJS Templates
typing: correct pytype mistakes in `mercurial/vfs.py`...
typing: correct pytype mistakes in `mercurial/vfs.py` With the previous changes in this series (prior to merging the *.pyi file), this wasn't too bad- the only definitively wrong things were the `data` argument to `writelines()`, and the return type on `backgroundclosing()` (both of these errors were dropped in the previous commit; for some reason pytype doesn't like `contextlib._GeneratorContextManager`, even though that's what it determined it is): File "/mnt/c/Users/Matt/hg/mercurial/vfs.py", line 411, in abstractvfs: Bad return type 'contextlib._GeneratorContextManager' for generator function abstractvfs.backgroundclosing [bad-yield-annotation] Expected Generator, Iterable or Iterator PyCharm thinks this is `Generator[backgroundfilecloser], Any, None]`, which can be reduced to `Iterator[backgroundfilecloser]`, but pytype flagged the line that calls `yield` without an argument unless it's also `Optional`. PyCharm is happy either way. For some reason, `Iterable` didn't work for pytype: File "/mnt/c/Users/Matt/hg/mercurial/vfs.py", line 390, in abstractvfs: Function contextlib.contextmanager was called with the wrong arguments [wrong-arg-types] Expected: (func: Callable[[Any], Iterator]) Actually passed: (func: Callable[[Any, Any, Any], Iterable[Optional[Any]]]) Attributes of protocol Iterator[_T_co] are not implemented on Iterable[Optional[Any]]: __next__

File last commit:

r34715:f4aeb952 default
r52784:ad83e4f9 default
Show More
map-cmdline.compact
31 lines | 1018 B | text/plain | TextLexer
[templates]
ldate = '{label("log.date",
"{date|isodate}")}'
ldesc = '{label('ui.note log.description',
'{desc|strip}')}'
ldescfirst = '{label('ui.note log.description',
'{desc|firstline|strip}')}'
changeset = '{lrev}{tags}{bookmarks}{parents} {lnode} {ldate} {luser}\n {ldescfirst}\n\n'
changeset_quiet = '{lrev}:{lnode}\n'
changeset_verbose = '{lrev}{tags}{parents} {lnode} {ldate} {lauthor}\n {ldesc}\n\n'
lrev = '{label("log.changeset changeset.{phase}",
"{rev}")}'
lnode = '{label("log.node",
"{node|short}")}'
lauthor = '{label("log.user",
"{author}")}'
luser = '{label("log.user",
"{author|user}")}'
start_tags = '['
tag = '{label("log.tag",
"{tag},")}'
last_tag = '{tag}]'
start_parents = ':'
parent = '{lrev},'
last_parent = '{lrev}'
start_bookmarks = '['
bookmark = '{label("log.bookmark",
"{bookmark},")}'
last_bookmark = '{bookmark}]'