Fechamento do Python: Grava na variável no escopo pai

Eu tenho o seguinte código dentro de uma função:

stored_blocks = {}
def replace_blocks(m):
    block = m.group(0)
    block_hash = sha1(block)
    stored_blocks[block_hash] = block
    return '{{{%s}}}' % block_hash

num_converted = 0
def convert_variables(m):
    name = m.group(1)
    num_converted += 1
    return '<%%= %s %%>' % name

fixed = MATCH_DECLARE_NEW.sub('', template)
fixed = MATCH_PYTHON_BLOCK.sub(replace_blocks, fixed)
fixed = MATCH_FORMAT.sub(convert_variables, fixed)

Adicionando elementos astored_blocks funciona bem, mas não posso aumentarnum_converted na segunda subfunção:

UnboundLocalError: variável local 'num_converted' referenciada antes da atribuição

eu poderia usarglobal mas as variáveis globais são feias e eu realmente não preciso que essa variável seja global.

Então, estou curioso para saber como posso escrever em uma variável no escopo da função pai.nonlocal num_converted provavelmente faria o trabalho, mas preciso de uma solução que funcione com o Python 2.x.

questionAnswers(6)

yourAnswerToTheQuestion