associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Revisão 1e 2007-06-27 17:46:45

Excluir mensagem

MigrandoParaPython3

TableOfContents

Migrando Para Python 3

Está sendo desenvolvida a versão 3.0 de Python, que quebra a [http://en.wikipedia.org/wiki/Backwards_compatibility backward compatibility] (ou [http://en.wikipedia.org/wiki/Backwards_compatibility compatibilidade reversa], mas há termos que a tradução é horrivel...). Esse artigo não tentará convencê-lo da necessidade nem da importância dessa manobra - Apenas como estar pronto para migrar para ela.

Antes de tudo

Esteja preparado para o futuro. Muitas mudanças são para eliminar alternativas menos óbvias de se fazer algo; outras são remoção de detalhes cujo uso foi desestimulado devido à introdução de novas caracteristicas; outras são simplemente funcionalidades já acessiveis atravez de from __future__ import ... - apenas algumas mudanças serão na semântica da linguagem ou na sintaxe - logo, muito do que você escreve hoje não mudará, se você for Pythonico suficiênte. Veja mais na wiki do python.org: [http://wiki.python.org/moin/FutureProofPython FutureProofPython].

O plano

Em seu [http://www.artima.com/weblogs/viewpost.jsp?thread=208549 "status update"] ([http://lambdaspace.wordpress.com/2007/06/20/atualizacao-da-situacao-do-python-3000-longo-python-3000-status-update-long/ tradução]), GuidoVanRossum delineou o seguinte plano:

0. Comece com excelentes testes de unidade (unit tests), o mais próximo possível de cobrir todas as possibilidades.
1. Porte o projeto para o Python 2.6.
2. Ative o modo de alertas do Py3k (Py3k warnings mode).
3. Teste e modifique até que nenhum alerta permaneça.
4. Use a ferramente 2to3 para converter o código-fonte para a sintaxe da versão 3.0 (Nâo edite manualmente a saída!!!).
5. Teste o código convertido sob a versão 3.0.
6. Se problemas forem achados, faça correções para a versão 2.6 do código-fonte e volte ao passo 3.
7. Quando for lançar, lançe tarballs separados da versão para 2.6 e para 3.0 (ou qualquer outra forma de arquivar que você use para releases)

A intenção desse artigo é detalhar um pouco esse plano.

Testes de Unidade (passo 0)

Portando para 2.6 e os alertas de compatibilidade com 3.0 (passos 1, 2, 3)

Conversão automática com 2to3, testes e refatorações (passos 4, 5 e 6)

Mantendo o projeto daqui pra frente (passo 7)