##// END OF EJS Templates
cext: correct the argument handling of `b85encode()`...
cext: correct the argument handling of `b85encode()` The type stub indicated that this argument is `Optional`, which implies None is allowed. I don't see in the documentation where that's the case for `i`[1], and trying it in `hg debugshell` resulted in the method failing with a TypeError. I guess it was typed as an `int` argument because the `p` format unit wasn't added until Python 3.3[2]. In any event, 2 clients in core (`pvec` and `obsolete`) call this with no argument supplied, and `mdiff` calls it with True. So I guess we've avoided the None arg case, and when no arg is supplied, it defaults to the 0 initialization of the `pad` variable in C. Since the `p` format unit accepts both `int` and None, as well as `bool`, I'm not bothering to bump the module version- this code is more permissive than it was, in addition to being more correct. Interestingly, when I first imported the `cext` and `pure` methods in the same manner as the previous commit, it dropped the `Optional` part of the argument type when generating `util.pyi`. No idea why. [1] https://docs.python.org/3/c-api/arg.html#numbers [2] https://docs.python.org/3/c-api/arg.html#other-objects
Matt Harbison -
r52616:9367571f default
Show More
Name Size Modified Last Commit Author
/ mercurial / utils
__init__.py Loading ...
cborutil.py Loading ...
compression.py Loading ...
dateutil.py Loading ...
hashutil.py Loading ...
memorytop.py Loading ...
procutil.py Loading ...
repoviewutil.py Loading ...
resourceutil.py Loading ...
storageutil.py Loading ...
stringutil.py Loading ...
urlutil.py Loading ...