##// END OF EJS Templates
typing: lock in correct changes from pytype 2023.04.11 -> 2023.06.16...
typing: lock in correct changes from pytype 2023.04.11 -> 2023.06.16 There were a handful of other changes to the pyi files generated when updating pytype locally (and jumping from python 3.8.0 to python 3.10.11), but they were not as clear (e.g. the embedded type in a list changing from `nothing` to `Any` or similar). These looked obviously correct, and agreed with PyCharm's thoughts on the signatures. Oddly, even though pytype starting inferring `obsutil._getfilteredreason()` as returning bytes, it (correctly) complained about the None path when it was typed that way. Instead, raise a ProgrammingError if an unhandled fate is calculated. (Currently, all possibilities are handled, so this isn't reachable unless another fate is added in the future.)

File last commit:

r50744:de9ffb82 default
r52708:460e8048 default
Show More
gitutil.py
48 lines | 988 B | text/x-python | PythonLexer
Augie Fackler
git: skeleton of a new extension to _directly_ operate on git repos...
r44961 """utilities to assist in working with pygit2"""
Manuel Jacob
py3: use `x.hex()` instead of `pycompat.sysstr(node.hex(x))`
r50195 from mercurial.node import bin, sha1nodeconstants
Augie Fackler
git: skeleton of a new extension to _directly_ operate on git repos...
r44961
Martin von Zweigbergk
git: don't fail import when pygit2 is not install...
r44968 pygit2_module = None
def get_pygit2():
global pygit2_module
if pygit2_module is None:
try:
Matt Harbison
typing: suppress a bunch of potential import-error cases in extensions...
r50744 import pygit2 as pygit2_module # pytype: disable=import-error
Martin von Zweigbergk
git: don't fail import when pygit2 is not install...
r44968
pygit2_module.InvalidSpecError
except (ImportError, AttributeError):
pass
return pygit2_module
Augie Fackler
git: skeleton of a new extension to _directly_ operate on git repos...
r44961
Matt Harbison
git: show the version of `pygit2` with verbose version output...
r46562 def pygit2_version():
mod = get_pygit2()
v = "N/A"
if mod:
try:
v = mod.__version__
except AttributeError:
pass
return b"(pygit2 %s)" % v.encode("utf-8")
Augie Fackler
git: skeleton of a new extension to _directly_ operate on git repos...
r44961 def togitnode(n):
"""Wrapper to convert a Mercurial binary node to a unicode hexlified node.
pygit2 and sqlite both need nodes as strings, not bytes.
"""
assert len(n) == 20
Manuel Jacob
py3: use `x.hex()` instead of `pycompat.sysstr(node.hex(x))`
r50195 return n.hex()
Augie Fackler
git: skeleton of a new extension to _directly_ operate on git repos...
r44961
def fromgitnode(n):
"""Opposite of togitnode."""
assert len(n) == 40
return bin(n)
Joerg Sonnenberger
node: replace nullid and friends with nodeconstants class...
r47771 nullgit = togitnode(sha1nodeconstants.nullid)