Skip to content

Commit 76e41a0

Browse files
authored
Atualização de ultilitario para descompressão de dados provenientes do docZip e adequação do pyproject ao padrão atual (#423)
* Update descompactar.py forma otimizada de efetuar a descompressão dos dados, a forma anterior retornava "None" * correção do utilitario de descompactar e revisão do pyproject.toml para conformidade com os padrões atuais * tipo de entrada corrigido
1 parent 98a92e1 commit 76e41a0

File tree

3 files changed

+45
-12
lines changed

3 files changed

+45
-12
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
# Linux
1111
.*.swp
1212

13+
poetry.lock
14+
1315
# Byte-compiled / optimized / DLL files
1416
__pycache__/
1517
*.py[cod]

pynfe/utils/descompactar.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,19 @@
55
66
"""
77

8-
from io import BytesIO
98
import base64
109
import gzip
1110
from lxml import etree
1211

1312

1413
class DescompactaGzip(object):
1514
@staticmethod
16-
def descompacta(stringZipada):
15+
def descompacta(stringZipada: str):
1716
"""
1817
:paramn stringZipada: String
1918
2019
:return : Etree
2120
"""
22-
arq = BytesIO()
23-
arq.write(base64.b64decode(stringZipada))
24-
arq.seek(0)
25-
zip = gzip.GzipFile(fileobj=arq)
26-
texto = zip.read()
27-
arq.close()
28-
zip.close()
29-
descompactado = texto.decode("utf-8").encode()
30-
return etree.fromstring(descompactado)
21+
decoded = base64.b64decode(stringZipada)
22+
decompress_nfe = gzip.decompress(decoded).decode("utf8")
23+
return etree.fromstring(decompress_nfe)

pyproject.toml

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,46 @@
1+
[project]
2+
name = "PyNFe"
3+
version = "0.4.4"
4+
description = "Interface library with the Brazilian Electronic Invoice web services"
5+
authors = [
6+
{name = "TadaSoftware",email = " [email protected]"}
7+
]
8+
readme = "README.md"
9+
requires-python = ">=3.9, <4"
10+
11+
112
[build-system]
213
requires = ["setuptools>=42"]
314
build-backend = "setuptools.build_meta"
15+
416
[tool.ruff]
517
exclude = [
618
'pynfe/entidades/__init__.py'
719
]
8-
line-length = 100
20+
line-length = 100
21+
22+
[tool.poetry.dependencies]
23+
requests = "^2.32.4"
24+
signxml = "^4.1.0"
25+
cryptography = "43.0.3"
26+
lxml = "5.4.0"
27+
pyopenssl = "^25.1.0"
28+
29+
[tool.poetry.group.dev.dependencies]
30+
ruff = "^0.12.5"
31+
pytest = "^8.4.1"
32+
taskipy = "^1.14.1"
33+
pytest-cov = "^6.2.1"
34+
35+
[tool.pytest.ini_options]
36+
pythonpath = "."
37+
addopts = '-p no:warnings'
38+
39+
[tool.taskipy.tasks]
40+
lint = 'ruff check'
41+
pre_format = 'ruff check --fix'
42+
format = 'ruff format'
43+
pre_lint = 'task format'
44+
pre_test = 'task lint'
45+
test = 'pytest -s -x --cov=app -vv'
46+
post_test = 'coverage html'

0 commit comments

Comments
 (0)