##// END OF EJS Templates
pytype: stop excluding mercurial/ui.py...
pytype: stop excluding mercurial/ui.py ui.extractchoices() is perhaps making assumptions that it shouldn't about the pattern always matching, but presumably we have test coverage for that. PyCharm flags the updated classes with a warning "Class xxx must implement all abstract methods", and suggests adding `abc.ABC` to the superclasses. I'm not sure why, unless it doesn't recognize the `__getattr__()` delegation pattern. Additionally, we can't unconditionally subclass `typing.BinaryIO` because that defeats the `__getattr__` delegation to the wrapped object at runtime. Instead, it has to only subclass during the type checking phase[1]. In any event, this fixes: File "/mnt/c/Users/Matt/hg/mercurial/ui.py", line 1518, in _runpager: Function subprocess.Popen.__new__ was called with the wrong arguments [wrong-arg-types] Expected: (cls, args, bufsize, executable, stdin, stdout: Optional[Union[IO, int]] = ..., ...) Actually passed: (cls, args, bufsize, stdin, stdout: Union[mercurial.utils.procutil.WriteAllWrapper, mercurial.windows.winstdout], ...) File "/mnt/c/Users/Matt/hg/mercurial/ui.py", line 1798, in extractchoices: No attribute 'group' on None [attribute-error] In Optional[Match[bytes]] File "/mnt/c/Users/Matt/hg/mercurial/ui.py", line 1799, in extractchoices: No attribute 'group' on None [attribute-error] In Optional[Match[bytes]] [1] https://stackoverflow.com/q/71365594

File last commit:

r49730:6000f5b2 default
r50688:8147abc0 default
Show More
runrst
68 lines | 2.0 KiB | text/plain | TextLexer
Gregory Szorc
global: use python3 in shebangs...
r46434 #!/usr/bin/env python3
Martin Geisler
doc: add generic frontend to rst2man and rst2html...
r10971 #
# runrst - register custom roles and run correct writer
#
Raphaël Gomès
contributor: change mentions of mpm to olivia...
r47575 # Copyright 2010 Olivia Mackall <olivia@selenic.com> and others
Martin Geisler
doc: add generic frontend to rst2man and rst2html...
r10971 #
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
"""usage: %s WRITER args...
where WRITER is the name of a Docutils writer such as 'html' or 'manpage'
"""
Yuya Nishihara
doc: use modern import style in runrst
r39508
Martin Geisler
doc: add generic frontend to rst2man and rst2html...
r10971 import sys
Gregory Szorc
black: blacken scripts...
r44089
Nicolas Dumazet
runrst: try to be more helpful if docutils is not installed
r11707 try:
Yuya Nishihara
doc: use modern import style in runrst
r39508 import docutils.core as core
import docutils.nodes as nodes
import docutils.utils as utils
import docutils.parsers.rst.roles as roles
Nicolas Dumazet
runrst: try to be more helpful if docutils is not installed
r11707 except ImportError:
Gregory Szorc
black: blacken scripts...
r44089 sys.stderr.write(
"abort: couldn't generate documentation: docutils "
"module is missing\n"
)
sys.stderr.write(
"please install python-docutils or see "
"http://docutils.sourceforge.net/\n"
)
Nicolas Dumazet
runrst: try to be more helpful if docutils is not installed
r11707 sys.exit(-1)
Martin Geisler
doc, minirst: support hg interpreted text role
r10972
Gregory Szorc
black: blacken scripts...
r44089
Gregory Szorc
doc: don't use mutable default arguments...
r44088 def role_hg(name, rawtext, text, lineno, inliner, options=None, content=None):
Martin Geisler
doc: make links for hg role...
r10974 text = "hg " + utils.unescape(text)
linktext = nodes.literal(rawtext, text)
parts = text.split()
cmd, args = parts[1], parts[2:]
FUJIWARA Katsunori
doc: translate from :hg:`help config` to a valid link to hgrc.5.html...
r28075 refuri = "hg.1.html#%s" % cmd
Martin Geisler
doc: make links for hg role...
r10974 if cmd == 'help' and args:
FUJIWARA Katsunori
doc: translate from :hg:`help config` to a valid link to hgrc.5.html...
r28075 if args[0] == 'config':
# :hg:`help config`
refuri = "hgrc.5.html"
FUJIWARA Katsunori
doc: translate from :hg:`help config.SECTION` to a valid link to hgrc.5.html...
r28076 elif args[0].startswith('config.'):
# :hg:`help config.SECTION...`
refuri = "hgrc.5.html#%s" % args[0].split('.', 2)[1]
FUJIWARA Katsunori
doc: translate from :hg:`help config` to a valid link to hgrc.5.html...
r28075 elif len(args) >= 2 and args[0] == '-c':
# :hg:`help -c COMMAND ...` is equivalent to :hg:`COMMAND`
# (mainly for :hg:`help -c config`)
refuri = "hg.1.html#%s" % args[1]
else:
refuri = "hg.1.html#%s" % args[0]
Gregory Szorc
black: blacken scripts...
r44089 node = nodes.reference(rawtext, '', linktext, refuri=refuri)
Martin Geisler
doc, minirst: support hg interpreted text role
r10972 return [node], []
Gregory Szorc
black: blacken scripts...
r44089
Martin Geisler
doc, minirst: support hg interpreted text role
r10972 roles.register_local_role("hg", role_hg)
Martin Geisler
doc: add generic frontend to rst2man and rst2html...
r10971
if __name__ == "__main__":
if len(sys.argv) < 2:
sys.stderr.write(__doc__ % sys.argv[0])
sys.exit(1)
writer = sys.argv[1]
del sys.argv[1]
Yuya Nishihara
doc: use modern import style in runrst
r39508 core.publish_cmdline(writer_name=writer)