Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[IMP] Library pattern and standards #23

Open
wants to merge 29 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
d36668c
Merge pull request #8 from akretion/FIX-gramatica_formatacao_texto
rvalyi Mar 17, 2018
2765a09
examplo real, importando uma nota processada
rvalyi Mar 20, 2018
8b3223a
better .gitignore for tests
rvalyi Mar 15, 2019
d305281
added basic input/output tests
rvalyi Mar 15, 2019
49c543e
.gitignore for tests
rvalyi Mar 15, 2019
bd6c689
subclass leiauteNFe for root tag and tag prefix
rvalyi Mar 15, 2019
ffba871
setup.py for Python 2.7 and 3.4+
rvalyi Mar 15, 2019
656a755
Travis CI attempt
rvalyi Mar 15, 2019
1a78fbf
Travis CI
rvalyi Mar 15, 2019
9ea47a9
attempt for README in Markdown
rvalyi Mar 15, 2019
be6612d
proper setup.py
rvalyi Mar 15, 2019
9bcd0a9
Update README.md
rvalyi Mar 15, 2019
974780c
make subclass export usable on any stream
rvalyi Mar 15, 2019
3cb4f2d
simplify in/out test
rvalyi Mar 15, 2019
dd62878
Update README.md
rvalyi Mar 15, 2019
a5fa3b2
better tests + inut
rvalyi Apr 20, 2019
e1fa2e4
travis fix
rvalyi Apr 20, 2019
9178454
documented generation light process
rvalyi Sep 29, 2020
ad2b89f
README
rvalyi Sep 29, 2020
3c2bbb1
drop EOL Python 2.7 support at neflib 0.3
rvalyi Sep 29, 2020
34c0bb9
leiauteNFe_sub fix now that retEnviNFe is used
rvalyi Sep 30, 2020
28196f5
v0.4: Pacote de Liberação Distribuição de DF-e v1.00
rvalyi Sep 30, 2020
c8f0a92
Pacote de Liberação Distribuição de DF-e v1.02
rvalyi Sep 30, 2020
1220b6e
Pacote de Liberação Evento Generico v1.01 (Atualizado em 30/05/2014)
rvalyi Oct 1, 2020
b9cf1b8
Pacote de Liberação Evento Canc v1.01 (30/05/2014)
rvalyi Oct 1, 2020
ed87ccf
IMPORTANT: geracao pacote por pacote para evitar override nos tipos b…
rvalyi Oct 1, 2020
c91413d
Pacote de Liberação Evento CCe v1.01 (30/05/2014)
rvalyi Oct 1, 2020
539ae98
Pacote de Liberação Evento Manifesta Destinatário v1.01 (30/05/2014)
rvalyi Oct 1, 2020
71ca61d
[IMP] Library pattern and standards
mileo Nov 11, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
attempt for README in Markdown
  • Loading branch information
rvalyi committed Mar 15, 2019
commit 9ea47a906e447d91daa60edcd31b68798cfb33a6
29 changes: 12 additions & 17 deletions README.rst → README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
NFeLib Python Library
=====================
# nfelib Python Library

A NFeLib é uma biblioteca para ler e gerir notas fiscais eletrônicas brasileiras (NFe's). A NFeLib não tem a pretensão de solucionar toda burocracia do SPED sozinha, mas foca apenas na questão do parsing e da geração da NFe. Para transmitir as NFe's para a receita, aconselhamos a biblioteca `PyTrustNFe <https://github.com/danimaribeiro/PyTrustNFe>`_. Na Akretion queriamos algo modular, simples de se manter para usar com o ERP Odoo que adaptamos para as necessidades fiscais brasileiras. Também criamos outras bibliotecas semelhantes para os outros documentos eletrônicos do SPED (especialmente para MDF, CTe, E-Social e SPED-Reinf).

Durante anos usamos o `pysped <https://github.com/aricaldeira/PySPED>`_. Porém no PySPED, o autor partiu para escrever e manter manualmente **mais de 10 000 de linhas de código**, apenas `nessa parte para montar o leiaute da NFe <https://github.com/aricaldeira/PySPED/tree/master/pysped/nfe/leiaute>`_. Mas isso ocasiona um custo de manutenção proibitivo a cada atualização dos esquemas sem falar que por se tratar de código manual tem vários erros com as TAGs pouco usadas e na Akretion cansamos de escrever patch na urgência no PySPED a cada vez que um cliente Odoo nosso não consegue transmistir uma NF'e. Na verdade o equivalente dessas 10 000 linhas de código podem ser geradas por um único comando com a ferramenta GenerateDS (pois é de chorar mesmo):

.. code-block:: bash

python generateDS.py -o leiauteNFe.py leiauteNFe_v3.10.xsd
```ruby
python generateDS.py -o leiauteNFe.py leiauteNFe_v3.10.xsd
```

A NFeLib permite:

@@ -27,18 +26,15 @@ Além disso, usando outros recursos do GenerateDS, é possível ir além dessa b

Você pode aprender mais sobre o generateDS.py `aqui: <http://www.davekuhlman.org/generateDS.html>`_

Como Instalar
=============

.. code-block:: bash
# Como Instalar

pip install nfelib
```bash
pip install git+https://github.com/akretion/nfelib
```

Como Usar
=========

.. code-block:: python
# Como Usar

```python
# nfelib permite ler os dados de uma nota fiscal, por exemplo no formato 3.10:
>>> from nfelib.v3_10 import leiauteNFe as leiauteNFe3
# você usaria from nfelib.v4_00 import leiauteNFe as leiauteNFe4 para usar a versão 4.00 do leiaute
@@ -133,10 +129,9 @@ Como Usar
<CNAE>0111111</CNAE>
<CRT>3</CRT>
</emitType>
```


Uso no ERP Odoo
===============
# Uso no ERP Odoo

Para cada documento eletrônico para o qual existe esquema XSD's, a Akretion fez um repo Github com uma lib desse tipo.
Mas fomos além: para cada repo existe uma branch `'generated_odoo': <https://github.com/akretion/nfelib/tree/generated_odoo>` com o modelo de dados dos documento para o ERP livre Odoo.
6 changes: 5 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -3,14 +3,18 @@

from setuptools import setup, find_packages

with open('README.md', 'r', 'utf-8') as f:
readme = f.read()

setup(
name='nfelib',
version='0.1',
author='Raphael Valyi',
author_email='[email protected]',
url='https://github.com/akretion/nfelib',
description='nfelib: electronic invoicing library for Brazil',
long_description=open('README.rst').read(),
long_description=readme,
long_description_content_type='text/markdown',
license='MIT',
classifiers=[
'Development Status :: 4 - Beta',