variables starting with one or more underscores are not exported
--HG--
branch : trunk
diff --git a/jinja2/compiler.py b/jinja2/compiler.py
index cc1e4ae..8fcb30f 100644
--- a/jinja2/compiler.py
+++ b/jinja2/compiler.py
@@ -624,10 +624,10 @@
for arg in node.defaults:
self.visit(arg, frame)
self.write(', ')
- self.write('), %s, %s, %s)' % (
- frame.accesses_kwargs and '1' or '0',
- frame.accesses_varargs and '1' or '0',
- frame.accesses_caller and '1' or '0'
+ self.write('), %r, %r, %r)' % (
+ bool(frame.accesses_kwargs),
+ bool(frame.accesses_varargs),
+ bool(frame.accesses_caller)
))
# -- Statement Visitors
@@ -815,7 +815,7 @@
self.write('make_module(context.parent, True)')
else:
self.write('module')
- if frame.toplevel and not node.target.startswith('__'):
+ if frame.toplevel and not node.target.startswith('_'):
self.writeline('context.exported_vars.discard(%r)' % node.target)
def visit_FromImport(self, node, frame):
@@ -848,7 +848,7 @@
self.outdent()
if frame.toplevel:
var_names.append(alias)
- if not alias.startswith('__'):
+ if not alias.startswith('_'):
discarded_names.append(alias)
if var_names:
@@ -996,7 +996,7 @@
macro_frame = self.macro_body(node, frame)
self.newline()
if frame.toplevel:
- if not node.name.startswith('__'):
+ if not node.name.startswith('_'):
self.write('context.exported_vars.add(%r)' % node.name)
self.writeline('context.vars[%r] = ' % node.name)
self.write('l_%s = ' % node.name)
@@ -1149,7 +1149,7 @@
# make sure toplevel assignments are added to the context.
if frame.toplevel:
public_names = [x for x in assignment_frame.assigned_names
- if not x.startswith('__')]
+ if not x.startswith('_')]
if len(assignment_frame.assigned_names) == 1:
name = iter(assignment_frame.assigned_names).next()
self.writeline('context.vars[%r] = l_%s' % (name, name))