From a6b51e9acbcd936114674ef7894aecfab061a42b Mon Sep 17 00:00:00 2001 From: Tres Seaver Date: Thu, 30 Apr 2009 18:17:29 +0000 Subject: Speed up / clarify 'traversal' module's 'model_path', 'model_path_tuple', and '_model_path_list' functions. --- repoze/bfg/traversal.py | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) (limited to 'repoze') diff --git a/repoze/bfg/traversal.py b/repoze/bfg/traversal.py index 40358ee7f..901368bba 100644 --- a/repoze/bfg/traversal.py +++ b/repoze/bfg/traversal.py @@ -180,11 +180,8 @@ def model_path(model, *elements): effectively replaced with a leading ``/``) when the path is generated. """ - path_list = _model_path_list(model, *elements) - if path_list: - path_list = [ quote_path_segment(name) for name in path_list ] - return '/' + '/'.join(path_list) - return '/' + path = _model_path_list(model, *elements) + return path and '/'.join([quote_path_segment(x) for x in path]) or '/' def model_path_tuple(model, *elements): """ @@ -220,19 +217,13 @@ def model_path_tuple(model, *elements): always be ignored (and effectively replaced with ``''``) when the path is generated. """ - path = _model_path_list(model, *elements) - if path: - return ('',) + tuple(path) - return ('',) + return tuple(_model_path_list(model, *elements)) def _model_path_list(model, *elements): """ Implementation detail shared by model_path and model_path_tuple """ - lpath = reversed(list(lineage(model))[:-1]) + lpath = reversed(list(lineage(model))) path = [ location.__name__ or '' for location in lpath ] - - if elements: - path = path + list(elements) - + path.extend(elements) return path def virtual_root(model, request): -- cgit v1.2.3