summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoses Palmér <mosespalmer@gmail.com>2015-07-16 14:08:09 +0200
committerMoses Palmér <mosespalmer@gmail.com>2015-07-16 14:08:09 +0200
commit8692bdcc20e941ad4fa5f6ac2f91c3f74cabc634 (patch)
treee6cd8f581d3e524bb20d72844c4ec161a905e842
parent2e1d1c6ad07192a0ef59e8eb88af0f59d36d30d9 (diff)
downloadply-8692bdcc20e941ad4fa5f6ac2f91c3f74cabc634.tar.gz
Convert modules to strs when sorting p_functions
-rw-r--r--ply/yacc.py10
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