Browse Source

função remover acentos

pull/1/head
leotada 10 years ago
parent
commit
ae91450180
  1. 3
      pynfe/processamento/comunicacao.py
  2. 4
      pynfe/processamento/serializacao.py
  3. 21
      pynfe/utils/__init__.py

3
pynfe/processamento/comunicacao.py

@ -2,7 +2,7 @@
import datetime
import time
import requests
from pynfe.utils import etree, so_numeros
from pynfe.utils import etree, so_numeros, remover_acentos
from pynfe.utils.flags import NAMESPACE_NFE, NAMESPACE_SOAP, NAMESPACE_XSI, NAMESPACE_XSD, NAMESPACE_METODO, VERSAO_PADRAO, CODIGOS_ESTADOS
from pynfe.utils.webservices import NFCE, NFE
from .assinatura import AssinaturaA1
@ -287,6 +287,7 @@ class ComunicacaoSefaz(Comunicacao):
xml_declaration='<?xml version="1.0" encoding="utf-8"?>'
xml = etree.tostring(xml, encoding='unicode', pretty_print=False).replace('\n','')
xml = xml_declaration + xml
xml = remover_acentos(xml)
# Faz o request com o servidor
result = requests.post(url, xml, headers=self._post_header(), cert=chave_cert, verify=False)
result.encoding='utf-8'

4
pynfe/processamento/serializacao.py

@ -5,7 +5,7 @@ import time
from pynfe.entidades import NotaFiscal
from pynfe.utils import etree, so_numeros, obter_municipio_por_codigo, \
obter_pais_por_codigo, obter_municipio_e_codigo, \
formatar_decimal, safe_str, obter_uf_por_codigo, obter_codigo_por_municipio
formatar_decimal, remover_acentos, obter_uf_por_codigo, obter_codigo_por_municipio
from pynfe.utils.flags import CODIGOS_ESTADOS, VERSAO_PADRAO, NAMESPACE_NFE
class Serializacao(object):
@ -769,7 +769,7 @@ class SerializacaoPipes(Serializacao):
if retorna_string:
try:
return '|'.join(map(safe_str, serial_data))
return '|'.join(map(remover_acentos, serial_data))
except TypeError as err:
enum_args = '\n'.join(
map(

21
pynfe/utils/__init__.py

@ -2,16 +2,12 @@
import os
import codecs
import unicodedata
from unicodedata import normalize
try:
from lxml import etree
except ImportError:
# Instalacao normal do ElementTree
try:
import xml.etree.ElementTree as etree
except ImportError:
raise Exception('Falhou ao importar lxml/ElementTree')
raise Exception('Falhou ao importar lxml/ElementTree')
try:
from StringIO import StringIO
@ -144,18 +140,13 @@ def formatar_decimal(dec):
return "%.2f" % dec
def safe_str(str_):
if not isinstance(str_, unicode):
if isinstance(str_, str):
str_ = str_.decode('utf8')
else:
str_ = unicode(str_)
return unicodedata.normalize('NFKD', str_).encode('ascii', 'ignore')
def obter_uf_por_codigo(codigo_uf):
if isinstance(codigo_uf, basestring) and codigo_uf.isalpha():
return codigo_uf
estados = {v: k for k, v in flags.CODIGOS_ESTADOS.items()}
return estados[unicode(codigo_uf)]
def remover_acentos(txt):
return normalize('NFKD', txt).encode('ASCII','ignore').decode('ASCII')
Loading…
Cancel
Save