From 7f267fa4d8e5d36166f05f6d0e9030cfd01d9e94 Mon Sep 17 00:00:00 2001 From: Sergio Oliveira Date: Wed, 17 Oct 2012 06:33:08 -0300 Subject: [PATCH] Replacing chars with accents --- pynfe/processamento/serializacao.py | 6 ++++-- pynfe/utils/__init__.py | 10 +++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/pynfe/processamento/serializacao.py b/pynfe/processamento/serializacao.py index 0bd0221..ea4768e 100644 --- a/pynfe/processamento/serializacao.py +++ b/pynfe/processamento/serializacao.py @@ -6,7 +6,9 @@ except: from pynfe.entidades import Emitente, Cliente, Produto, Transportadora, NotaFiscal from pynfe.excecoes import NenhumObjetoEncontrado, MuitosObjetosEncontrados -from pynfe.utils import etree, so_numeros, obter_municipio_por_codigo, obter_pais_por_codigo, obter_municipio_e_codigo, formatar_decimal +from pynfe.utils import etree, so_numeros, obter_municipio_por_codigo, \ + obter_pais_por_codigo, obter_municipio_e_codigo, \ + formatar_decimal, safe_str from pynfe.utils.flags import CODIGOS_ESTADOS, VERSAO_PADRAO class Serializacao(object): @@ -550,7 +552,7 @@ class SerializacaoPipes(Serializacao): if retorna_string: try: - return '|'.join(map(str,serial_data)) + return '|'.join(map(safe_str, serial_data)) except TypeError as err: enum_args = '\n'.join( map( diff --git a/pynfe/utils/__init__.py b/pynfe/utils/__init__.py index 59f8de2..21ce8b6 100644 --- a/pynfe/utils/__init__.py +++ b/pynfe/utils/__init__.py @@ -130,4 +130,12 @@ def formatar_decimal(dec): if dec*100 - int(dec*100): return str(dec) else: - return "%.2f" % dec \ No newline at end of file + return "%.2f" % dec + +def safe_str(str_): + is not isinstance(str_, unicode): + if isinstance(str_, str): + str_ = str_.decode('utf8') + else: + str_ = unicode(str_) + return unicodedata.normalize('NFKD', str_).encode('ascii', 'ignore')