From 2db55c3b6d5162b453b0b6128902edea398968bf Mon Sep 17 00:00:00 2001 From: WeslenPy <83089496+WeslenPy@users.noreply.github.com> Date: Thu, 24 Jul 2025 18:15:59 -0300 Subject: [PATCH 1/3] Update descompactar.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit forma otimizada de efetuar a descompressão dos dados, a forma anterior retornava "None" --- pynfe/utils/descompactar.py | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/pynfe/utils/descompactar.py b/pynfe/utils/descompactar.py index 61d14172..0d5d6534 100644 --- a/pynfe/utils/descompactar.py +++ b/pynfe/utils/descompactar.py @@ -4,8 +4,6 @@ classe que descompacta o gzip recebido pela consulta distribuicao """ - -from io import BytesIO import base64 import gzip from lxml import etree @@ -13,18 +11,12 @@ class DescompactaGzip(object): @staticmethod - def descompacta(stringZipada): + def descompacta(stringZipada:bytes): """ :paramn stringZipada: String :return : Etree """ - arq = BytesIO() - arq.write(base64.b64decode(stringZipada)) - arq.seek(0) - zip = gzip.GzipFile(fileobj=arq) - texto = zip.read() - arq.close() - zip.close() - descompactado = texto.decode("utf-8").encode() - return etree.fromstring(descompactado) + decoded = b64decode(stringZipada) + decompress_nfe = gzip.decompress(decoded).decode("utf8") + return etree.fromstring(decompress_nfe) From 46cefd93a5dc9d0d7f278a4da7f5d9052a98a4b0 Mon Sep 17 00:00:00 2001 From: weslenpy Date: Thu, 24 Jul 2025 18:44:10 -0300 Subject: [PATCH 2/3] =?UTF-8?q?corre=C3=A7=C3=A3o=20do=20utilitario=20de?= =?UTF-8?q?=20descompactar=20e=20revis=C3=A3o=20do=20pyproject.toml=20para?= =?UTF-8?q?=20conformidade=20com=20os=20padr=C3=B5es=20atuais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ pynfe/utils/descompactar.py | 5 +++-- pyproject.toml | 40 ++++++++++++++++++++++++++++++++++++- 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index af4f1e7c..b9882f6b 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ # Linux .*.swp +poetry.lock + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/pynfe/utils/descompactar.py b/pynfe/utils/descompactar.py index 0d5d6534..0d657ebc 100644 --- a/pynfe/utils/descompactar.py +++ b/pynfe/utils/descompactar.py @@ -4,6 +4,7 @@ classe que descompacta o gzip recebido pela consulta distribuicao """ + import base64 import gzip from lxml import etree @@ -11,12 +12,12 @@ class DescompactaGzip(object): @staticmethod - def descompacta(stringZipada:bytes): + def descompacta(stringZipada: bytes): """ :paramn stringZipada: String :return : Etree """ - decoded = b64decode(stringZipada) + decoded = base64.b64decode(stringZipada) decompress_nfe = gzip.decompress(decoded).decode("utf8") return etree.fromstring(decompress_nfe) diff --git a/pyproject.toml b/pyproject.toml index 6ed99424..2f56a155 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,46 @@ +[project] +name = "PyNFe" +version = "0.4.4" +description = "Interface library with the Brazilian Electronic Invoice web services" +authors = [ + {name = "TadaSoftware",email = " tadasoftware@gmail.com"} +] +readme = "README.md" +requires-python = ">=3.9, <4" + + [build-system] requires = ["setuptools>=42"] build-backend = "setuptools.build_meta" + [tool.ruff] exclude = [ 'pynfe/entidades/__init__.py' ] -line-length = 100 \ No newline at end of file +line-length = 100 + +[tool.poetry.dependencies] +requests = "^2.32.4" +signxml = "^4.1.0" +cryptography = "43.0.3" +lxml = "5.4.0" +pyopenssl = "^25.1.0" + +[tool.poetry.group.dev.dependencies] +ruff = "^0.12.5" +pytest = "^8.4.1" +taskipy = "^1.14.1" +pytest-cov = "^6.2.1" + +[tool.pytest.ini_options] +pythonpath = "." +addopts = '-p no:warnings' + +[tool.taskipy.tasks] +lint = 'ruff check' +pre_format = 'ruff check --fix' +format = 'ruff format' +pre_lint = 'task format' +pre_test = 'task lint' +test = 'pytest -s -x --cov=app -vv' +post_test = 'coverage html' From 281c0c4fd08a49d90206875965ffabbbd0f91e4a Mon Sep 17 00:00:00 2001 From: weslenpy Date: Thu, 24 Jul 2025 18:46:22 -0300 Subject: [PATCH 3/3] tipo de entrada corrigido --- pynfe/utils/descompactar.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pynfe/utils/descompactar.py b/pynfe/utils/descompactar.py index 0d657ebc..32c7d330 100644 --- a/pynfe/utils/descompactar.py +++ b/pynfe/utils/descompactar.py @@ -12,7 +12,7 @@ class DescompactaGzip(object): @staticmethod - def descompacta(stringZipada: bytes): + def descompacta(stringZipada: str): """ :paramn stringZipada: String