Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΎΡΠ΅Π½Ρ Π³ΡΡΠ±ΠΎΠ΅ ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΡΠ΅ΡΠΈΠΊΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡΡΡΡΡ Π² ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ.
ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ locals () Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ Π·Π° Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΡΠΊΡΠ΄Π° Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΡΡΠΎΠ½ΡΠ»Π° Π²Π°Ρ? ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ Β«ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½Π° Π½Π΅ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ l_SOMETHINGΒ».
ΠΡ #pocoo ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ:
magicbronson: hey mitsuhiko et al., trying to render a Jinja template in a Flask app and getting a very mysterious message: "global name 'l_config' is not defined"
magicbronson: l_config appears nowhere in my code or libraries'
mitsuhiko: magicbronson: that's the scoping bug that i will fix over this summer
mitsuhiko: {% macro foo() %}{{ config }}{% for config in something_else %}{{config}}{% endfor %}{% endmacro %}
mitsuhiko: something like this triggers the bug currently
mitsuhiko: magicbronson: rename the variable inside of the macro to something else
mitsuhiko: {% set cfg = config %}
mitsuhiko: outside the macro
mitsuhiko: or something
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΡΠΌΠΈΠ½Π° ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ.