code: def render(obj):
      
      def get_v(v):
          return v % env if isinstance(v, basestring) else v
  
      if isinstance(obj, types.StringType):
          return obj % env
      elif isinstance(obj, types.TupleType) or isinstance(obj, types.ListType):
          rv = []
          for v in obj:
              rv.append(get_v(v))
      elif isinstance(obj, types.DictType):
          rv = {}
          for k, v in obj.items():
              rv[k] = get_v(v)
  
      return rv
docs: Convienently render strings with the fabric context