Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def get_completions(text):
"""Get completions from the installed completer."""
readline_ = pdbpp.local.GLOBAL_PDB.fancycompleter.config.readline
complete = readline_.get_completer()
comps = []
assert complete.__self__ is pdbpp.local.GLOBAL_PDB
while True:
val = complete(text, len(comps))
if val is None:
break
comps += [val]
return comps
if readline_param == "pyrepl":
assert pdbpp.local.GLOBAL_PDB.fancycompleter.config.use_colors is True
assert get_completions("help") == [
"\x1b[000;00m\x1b[00mhelp\x1b[00m",
"\x1b[001;00m\x1b[33;01mhelpvar\x1b[00m",
" ",
]
else:
assert pdbpp.local.GLOBAL_PDB.fancycompleter.config.use_colors is False
assert get_completions("help") == ["help", "helpvar"]
# Patch readline to return expected results for "p helpvar.".
monkeypatch_readline("p helpvar.", 2, 10)
if readline_param == "pyrepl":
assert pdbpp.local.GLOBAL_PDB.fancycompleter.config.use_colors is True
comps = get_completions("helpvar.")
assert type(helpvar.denominator) == int
assert any(
re.match(r"\x1b\[\d\d\d;00m\x1b\[33;01mdenominator\x1b\[00m", x)
for x in comps
)
assert " " in comps
else:
assert pdbpp.local.GLOBAL_PDB.fancycompleter.config.use_colors is False
comps = get_completions("helpvar.")
assert "denominator" in comps
assert " " not in comps
monkeypatch_readline("p obj.f", 2, 7)
comps = get_completions("obj.f")
assert comps == ['obj.foo']