summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configshell/node.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/configshell/node.py b/configshell/node.py
index b3fed50..a6f1046 100644
--- a/configshell/node.py
+++ b/configshell/node.py
@@ -801,13 +801,15 @@ class ConfigNode(object):
else:
summary += self.shell.con.render_text(']', styles=['bold'])
- def ending_number(s):
- m = re.search(r'\d+$', str(s))
+ def sorting_keys(s):
+ m = re.search(r'(.*?)(\d+$)', str(s))
if m:
- return int(m.group())
+ return (m.group(1), int(m.group(2)))
+ else:
+ return (str(s), None)
# sort by ending number, then alpha
- children = sorted(root.children, key=lambda c: (ending_number(c), str(c)))
+ children = sorted(root.children, key=lambda c: sorting_keys(c))
line = ""
for pipe in margin[:-1]: