viniciusccosta / pysisnoapi Goto Github PK
View Code? Open in Web Editor NEWWrapper para API da plataforma SISNO.
License: MIT License
Wrapper para API da plataforma SISNO.
License: MIT License
Após a atualização para a versão 0.2.0, os métodos, incluindo nfse.buscar_notas()
, não podem ser invocados devido a um erro TypeError.
O erro específico gerado é:
TypeError: object Response can't be used in 'await' expression
Este erro é de alta prioridade, pois afeta o funcionamento da aplicação e precisa ser corrigido rapidamente.
Atualmente, o código da aplicação utiliza @dataclass
para definição de classes de dados. Este é um ótimo ponto de partida para criar classes simples, mas gostaria de sugerir a adoção do Pydantic como uma alternativa benéfica. O Pydantic mantém todas as funcionalidades do @dataclass
e oferece vantagens adicionais, incluindo uma maneira mais fácil de exportar para JSON ou dicionários, bem como a capacidade de instanciar objetos diretamente a partir de JSON, o que pode simplificar significativamente o código.
Eu sugiro que consideremos a migração para o Pydantic em nosso código, começando com áreas onde a serialização de dados ou a validação são particularmente importantes. Isso pode melhorar a legibilidade e manutenibilidade do código, ao mesmo tempo que oferece benefícios adicionais.
Esta issue tem como objetivo sugerir a implementação de "parsing" de dados em classes/models, com ênfase nas classes ObjetoEmissaoNFSe
e ObjetoEmissaoNFe
. A proposta é tornar o uso dessas classes mais amigável para os futuros usuários, reduzindo a necessidade de se preocupar com tipos de dados e formatos.
Na instanciação de objetos
Atualmente, a instanciação de objetos como ObjetoEmissaoNFSe e ObjetoEmissaoNFe exige que os usuários forneçam os dados exatamente no formato e tipo esperado pelas classes. Isso pode ser um desafio para os usuários, especialmente se os dados vêm de fontes externas e podem ser inconsistentes.
Proponho que, durante a instanciação de tais objetos, realizemos a conversão (parsing) dos dados fornecidos, tornando-os válidos e compatíveis com as expectativas das classes. Por exemplo, se um campo é esperado como um booleano e o usuário fornece 'False'/'false', o sistema deve converter isso para False internamente.
Na hora de consumir a API
Além de facilitar a instanciação dos objetos, também sugiro que, na hora de consumir a API, realizemos a conversão dos dados para o formato esperado pela API. Por exemplo, se um campo é esperado como um inteiro com 4 dígitos, o sistema deve ser capaz de aceitar um valor de entrada como int e formatá-lo conforme necessário para a chamada à API, poupando o usuário dessa tarefa.
Essa implementação tem como objetivo simplificar o uso das classes, tornando-as mais amigáveis para os usuários. Além disso, evita erros comuns de formato e tipo de dados, tornando o pacote mais robusto e menos propenso a erros de uso.
Como o projeto não envolve a manipulação dos dados em si, é apropriado realizar essas formatações logo na instanciação dos objetos, o que alinha-se com as práticas recomendadas de encapsulamento e abstração de detalhes de implementação.
Essa implementação tornará o uso de nossas classes mais amigável e reduzirá a carga sobre os usuários, tornando o pacote mais robusto e fácil de usar.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.