<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fabio Brandão - Blog &#187; Python</title>
	<atom:link href="http://www.fnbrandao.com.br/blog/category/programacao/python-programacao/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fnbrandao.com.br/blog</link>
	<description></description>
	<lastBuildDate>Tue, 24 Aug 2010 01:33:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Turbogears 2 + i18n + formatação de datas e números</title>
		<link>http://www.fnbrandao.com.br/blog/2009/10/turbogears-2-i18n-formatacao-de-datas-e-numeros/</link>
		<comments>http://www.fnbrandao.com.br/blog/2009/10/turbogears-2-i18n-formatacao-de-datas-e-numeros/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 11:39:21 +0000</pubDate>
		<dc:creator>fabio</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[babel]]></category>
		<category><![CDATA[formatação datas]]></category>
		<category><![CDATA[formatação números]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[Locale]]></category>
		<category><![CDATA[turbogears]]></category>

		<guid isPermaLink="false">http://www.fnbrandao.com.br/blog/2009/10/turbogears-2-i18n-formatacao-de-datas-e-numeros/</guid>
		<description><![CDATA[Para setar a linguagem padrão da sua aplicação utilizando o turbogears basta editar o arquivo development.ini e incluir a seguinte linha após [app:main]:

lang = pt_BR

Depois execute os seguintes comandos:

python setup.py extract_messages
python setup.py init_catalog -l pt_BR
python setup.py compile_catalog

O primeiro comando extrai todas as mensages que devem ser traduzidas (dos templates e dos códigos python). O segundo [...]]]></description>
			<content:encoded><![CDATA[<p>Para setar a linguagem padrão da sua aplicação utilizando o turbogears basta editar o arquivo <em>development.ini</em> e incluir a seguinte linha após <em>[app:main]</em>:</p>
<p><code>
<pre>lang = pt_BR</pre>
<p></code></p>
<p>Depois execute os seguintes comandos:</p>
<p><code>
<pre>python setup.py extract_messages
python setup.py init_catalog -l pt_BR
python setup.py compile_catalog</pre>
<p></code></p>
<p>O primeiro comando extrai todas as mensages que devem ser traduzidas (dos templates e dos códigos python). O segundo comando cria um arquivo de tradução para a linguagem pt_BR. Após esse passo, você deve editar o arquivo gerado para traduzir as mensagens. O terceiro comando compila as mensagens traduzidas.</p>
<p>Agora para formatar datas e números no formato da linguagem padrão (ou da linguagem selecionada pelo usuário) basta criar o arquivo <em>lib/i18nHelpers.py</em>:</p>
<p><code>
<pre>import tg.i18n
import babel.numbers
import babel.dates

__all__ = ["format_currency", "format_datetime"]

def get_lang(lang):
    if lang:
        return lang
    return tg.i18n.get_lang()[0]

def format_currency(number, currency = "", locale = None, *args, **kargs):
    return babel.numbers.format_currency(number, currency, locale = get_lang(locale), *args, **kargs)

def format_datetime(datetime, *args, **kargs):
    return babel.dates.format_datetime(datetime, locale = get_lang(locale), *args, **kargs)</pre>
<p></code></p>
<p>E importar essas funções no arquivo <em>lib/helpers.py</em>.</p>
<p>No seu template basta fazer algo assim:</p>
<p><code>
<pre>R$ ${h.format_currency(xyz.valor)}</pre>
<p></code></p>
<p>Não mapei todas as funções que o Babel disponibiliza, mas basta fazer como foi feito com essas duas funções.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fnbrandao.com.br/blog/2009/10/turbogears-2-i18n-formatacao-de-datas-e-numeros/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Turbogears 2 e Elixir</title>
		<link>http://www.fnbrandao.com.br/blog/2009/10/turbogears-2-e-elixir/</link>
		<comments>http://www.fnbrandao.com.br/blog/2009/10/turbogears-2-e-elixir/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 11:29:09 +0000</pubDate>
		<dc:creator>fabio</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[active record]]></category>
		<category><![CDATA[elixir]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[turbogears]]></category>

		<guid isPermaLink="false">http://www.fnbrandao.com.br/blog/?p=39</guid>
		<description><![CDATA[Para se integrar o elixir no turbogears 2, basta editar o arquivo model/__init__.py do seu projeto para ficar desse jeito:

# -*- coding: utf-8 -*-

from zope.sqlalchemy import ZopeTransactionExtension
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import elixir

maker = sessionmaker(autoflush=True, autocommit=False,
                  [...]]]></description>
			<content:encoded><![CDATA[<p>Para se integrar o elixir no turbogears 2, basta editar o arquivo model/__init__.py do seu projeto para ficar desse jeito:</p>
<p><code></p>
<pre># -*- coding: utf-8 -*-

from zope.sqlalchemy import ZopeTransactionExtension
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import elixir

maker = sessionmaker(autoflush=True, autocommit=False,
                     extension=ZopeTransactionExtension())
DBSession = scoped_session(maker)
elixir.session = DBSession
elixir.options_defaults["shortnames"] = True

DeclarativeBase = declarative_base()

metadata = DeclarativeBase.metadata
elixir.metadata = metadata

def init_model(engine):
    """Call me before using any of the tables or classes in the model."""

    DBSession.configure(bind=engine)

from xyz.model.auth import User, Group, Permission
from xyz.model.entidades import Xyz

elixir.setup_all()</pre>
<p></code></p>
<p>E para declarar suas entidades, basta fazer do jeito do Elixir, estendendo a classe <em>elixir.Entity</em>.</p>
<p>Com essa integração conseguimos utilizar o padrão <a href="http://en.wikipedia.org/wiki/Active_record_pattern">Active Record</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fnbrandao.com.br/blog/2009/10/turbogears-2-e-elixir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando o setuptools no Python 2.6 no Windows</title>
		<link>http://www.fnbrandao.com.br/blog/2009/10/instalando-o-setuptools-no-python-26-no-windows/</link>
		<comments>http://www.fnbrandao.com.br/blog/2009/10/instalando-o-setuptools-no-python-26-no-windows/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 16:24:45 +0000</pubDate>
		<dc:creator>fabio</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[easy_install]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[setuptools]]></category>

		<guid isPermaLink="false">http://www.fnbrandao.com.br/blog/2009/10/instalando-o-setuptools-no-python-26-no-windows/</guid>
		<description><![CDATA[Para instalar o setuptools no Python 2.6 no Windows baixe os seguintes arquivos:

setuptools-0.6c9.tar.gz
setuptools-0.6c9-py2.6.egg

Estes arquivos estão no site: http://pypi.python.org/pypi/setuptools.
Depois extraia o arquivo setuptools-0.6c9.tar.gz e execute o seguinte comando:
python ez_setup.py setuptools-0.6c9-py2.6.egg
O comando acima irá instalar o setuptools no diretório de instalação do python. Para executar o easy_install basta que no PATH do sistema esteja o diretório Scripts [...]]]></description>
			<content:encoded><![CDATA[<p>Para instalar o setuptools no Python 2.6 no Windows baixe os seguintes arquivos:</p>
<ul>
<li>setuptools-0.6c9.tar.gz</li>
<li>setuptools-0.6c9-py2.6.egg</li>
</ul>
<p>Estes arquivos estão no site: <a href="http://pypi.python.org/pypi/setuptools">http://pypi.python.org/pypi/setuptools</a>.</p>
<p>Depois extraia o arquivo setuptools-0.6c9.tar.gz e execute o seguinte comando:</p>
<p><em>python ez_setup.py setuptools-0.6c9-py2.6.egg</em></p>
<p>O comando acima irá instalar o setuptools no diretório de instalação do python. Para executar o easy_install basta que no <em>PATH</em> do sistema esteja o diretório <em>Scripts</em> que está dentro da pasta de instalação do Python.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fnbrandao.com.br/blog/2009/10/instalando-o-setuptools-no-python-26-no-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
