diff options
author | Moses Palmér <mosespalmer@gmail.com> | 2015-07-16 14:08:09 +0200 |
---|---|---|
committer | Moses Palmér <mosespalmer@gmail.com> | 2015-07-16 14:08:09 +0200 |
commit | 8692bdcc20e941ad4fa5f6ac2f91c3f74cabc634 (patch) | |
tree | e6cd8f581d3e524bb20d72844c4ec161a905e842 | |
parent | 2e1d1c6ad07192a0ef59e8eb88af0f59d36d30d9 (diff) | |
download | ply-8692bdcc20e941ad4fa5f6ac2f91c3f74cabc634.tar.gz |
Convert modules to strs when sorting p_functions
-rw-r--r-- | ply/yacc.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ply/yacc.py b/ply/yacc.py index eb02cc2..127b12e 100644 --- a/ply/yacc.py +++ b/ply/yacc.py @@ -3108,8 +3108,14 @@ class ParserReflect(object): module = inspect.getmodule(item) p_functions.append((line, module, name, item.__doc__)) - # Sort all of the actions by line number - p_functions.sort() + # Sort all of the actions by line number; make sure to stringify + # modules to make them sortable, since `line` may not uniquely sort all + # p functions + p_functions.sort(key=lambda p_function: ( + p_function[0], + str(p_function[1]), + p_function[2], + p_function[3])) self.pfuncs = p_functions # Validate all of the p_functions |