Git Product home page Git Product logo

pysisnoapi's Introduction

pysisnoapi's People

Contributors

viniciusccosta avatar

Watchers

 avatar

pysisnoapi's Issues

Erro 'TypeError' Após Atualização para Versão 0.2.0

Descrição:

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

Informações Adicionais:

Este erro é de alta prioridade, pois afeta o funcionamento da aplicação e precisa ser corrigido rapidamente.

Sugestão: Utilização do Pydantic

Descrição

Resumo:

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.

Benefícios do Pydantic:

  • Serialização Simplificada: O Pydantic fornece funcionalidades integradas para serialização em JSON ou dicionários, o que pode economizar tempo e evitar a necessidade de escrever código personalizado para isso.
  • Validação de Dados: O Pydantic oferece recursos avançados de validação de dados, o que pode ser particularmente útil em ambientes onde a integridade dos dados é crítica.
  • Facilidade na Criação de Objetos a partir de JSON: Com o Pydantic, é fácil criar objetos diretamente a partir de JSON, o que pode simplificar a manipulação de dados de entrada ou saída.
  • Documentação Gerada Automaticamente: O Pydantic pode gerar automaticamente documentação para as classes de dados, tornando a manutenção do código mais fácil e fornecendo informações úteis para outros desenvolvedores.

Ação Sugerida

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.

Referências

Sugestão de implementação para "parsear" dados em classes/models

Descrição

Objetivo

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.

Detalhes da Proposta

  1. 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.

  2. 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.

Justificativa

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.

Nota Adicional

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.