소스 검색

ctypes: Fix ctypesgencore for Python 3 (#379)

Python 3 sort says 'must use keyword argument for key function'
(Python 2 accepts this new syntax).

The parameter of Signature.update() is used as a hash, so any encoding will do,
but using UTF-8 always for consistency.
Vaclav Petras 5 년 전
부모
커밋
0736980646
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      lib/python/ctypes/ctypesgencore/parser/yacc.py

+ 2 - 2
lib/python/ctypes/ctypesgencore/parser/yacc.py

@@ -2276,7 +2276,7 @@ def yacc(
             raise YaccError("no rules of the form p_rulename are defined.")
 
         # Sort the symbols by line number
-        symbols.sort(lambda x, y: cmp(get_func_code(x).co_firstlineno, get_func_code(y).co_firstlineno))
+        symbols.sort(key=lambda x: get_func_code(x).co_firstlineno)
 
         # Add all of the symbols to the grammar
         for f in symbols:
@@ -2288,7 +2288,7 @@ def yacc(
         # Make a signature of the docstrings
         for f in symbols:
             if f.__doc__:
-                Signature.update(f.__doc__)
+                Signature.update(f.__doc__.encode("utf-8"))
 
         lr_init_vars()