Package: acbrlib-python
Camada de abstração para acesso àACBrLibem Python.ACBrLibé um conjunto de bibliotecas voltadas para o mercado de
automação comercial que oferece acesso à um conjunto rico de abstrações
que facilitam o desenvolvimento de aplicações como pontos-de-venda (PDV) e
aplicações relacionadas. Esta biblioteca fornece uma camada que torna
trivial a utilização daACBrLibem seus próprios aplicativos escritos emlinguagem Python.NoteEsta biblioteca está em seus primeiros estágios de desenvolvimento,
portanto, não espere encontrar toda a riqueza que os componentesACBrpossuem, por enquanto. Mas estamos totalmente abertos asujestõese estamos aceitandopull-requests.InstalaçãoInstale, preferencialmente em um ambiente virtual, usandopip:pipinstallacbrlib-pythonACBrLibCEPDá acesso a consultas de CEP utilizando dezenas de serviços de consulta
disponíveis. Alguns desses serviços podem ser gratuítos ou gratuítos para
desenvolvimento. Vejaeste linkpara ter uma ideia dos serviços que podem ser utilizados.Para fazer uma consulta baseada no CEP:fromacbrlib_pythonimportACBrLibCEPwithACBrLibCEP.usando('/caminho/para/libacbrcep64.so')ascep:enderecos=cep.buscar_por_cep('18270170')forenderecoinenderecos:print(endereco)O trecho acima resultará em uma lista de objetosEnderecocomo resultado
da busca, prontos para serem usados. A consulta acima trará um único resultado
(usando o serviçoViaCEP):Endereco(tipo_logradouro='',logradouro='Rua Coronel Aureliano de Camargo',complemento='',bairro='Centro',municipio='Tatuí',uf='SP',cep='18270-170',ibge_municipio='3554003',ibge_uf='35')Para mais exemplos de uso, veja a pastaexemplosneste repositório.Sobre Nomenclatura e Estilo de CódigoUma questão muito relevante é a maneira como esta abstração se refere aos
nomes dos métodos disponíveis na bibliotecaACBrLibque utiliza uma
convenção de nomenclatura para variáveis e nomes de argumentos ou
parâmetros de funções conhecida comoNotação Húngara.
Porém, em Python é utilizada a convençãosnake casetal como descrito naPEP8.Assim, para manter o estilo de Python, os nomes de variáveis e argumentos de
função deverão descartar o prefixo que indica o tipo de dado e converter o
restante para snake case, assim como nomes de métodos e funções também,
por exemplo:eArqConfigparaarq_config;ConfigLerValorparaconfig_ler_valor;eArquivoXmlEventoparaarquivo_xml_evento;etc…Métodos de bibliotecas que são prefixados com o nome da lib, será descartado o
prefixo e o restante do nome do método convertido para snake case, por exemplo:(ACBrLibNFe)NFE_CarregarINIparacarregar_ini;(ACBrLibNFe)NFE_ValidarRegrasdeNegociosparavalidar_regras_de_negocios(note a correção do conectordeque está em minúsculo no original);(ACBrLibCEP)CEP_BuscarPorLogradouroparabuscar_por_logradouro;etc…Esperamos que essa explicação faça sentido, senão, envia suassujestões.DesenvolvimentoVocê é bem-vindo para ajudar no desenvolvimento desta biblioteca enviando
suas contribuições através depull-requests. Faça umforkdeste
repositório e execute os testes antes de começar a implementar alguma
coisa. A gestão de dependências é feita viaPoetrye recomendamos a
utilização depyenv$gitclonehttps://github.com/base4sistemas/acbrlib-python.git$cdacbrlib-python$poetryinstall$poetryrunpytest