[Twisted-web] Menu flattening
   
    Donovan Preston
     
    twisted-web@twistedmatrix.com
       
    Thu, 11 Dec 2003 11:56:24 -0500
    
    
  
On Dec 11, 2003, at 11:01 AM, Justin Johnson wrote:
> This seems to do what I want.  I should probably rethink this though,
> since dict's aren't ordered.
>
> def flatten_menu(menu_items):
>     if isinstance(menu_items, dict):
>         html_menu = ul[
>             [ (li[k], [flatten_menu(i) for i in menu_items[k]]) \
>                 for k in menu_items.keys() if k]
>         ]
>     else:
>         html_menu = ul[ li[menu_items] ]
>     return html_menu
Yes, this works too, and really shows off how stan expressions can 
shorten complex HTML generation code. By the way, you don't need the \ 
character to continue the line there, because python will allow you to 
have linebreaks while there is an outstanding brace that hasn't been 
closed. (), {}, and []
dp