Skip to content

About

Biblioteca Rust com bindings em Python e R para padronizar e separar endereços brasileiros

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Repository files navigation

enderecobr_rs

Rust Python R
crates.io Latest Release
docs.rs Rust
codecov
CI
Crates.io Downloads (total downloads)
PyPi Latest Release
Downloads
readthedocs Python
R-repo
CRAN status
CRAN/METACRAN Total downloads

MIT licensed

enderecobr_rs é uma biblioteca em Rust que disponibiliza diversas funções para padronizar endereços brasileiros, corrigindo erros comuns, expandindo abreviações etc, afim de facilitar processamentos posteriores. Ela usa majoritariamente expressões regulares nas padronizações, com exceção do módulo experimental de separação de endereços, que utiliza um modelo probabilístico de Conditional Random Field já embutido na bilioteca.

Obs. Esta biblioteca é uma adaptação e expansão para Rust da versão original em R do enderecobr visando ganho de eficiência e expandir a implementação do pacote endereçobr em diferentes linguagens usando a versão em Rust como base.

Bindings

Este é o repositório do enderecobr em Rust e em Python. A versão em Python é feita no subdiretório bindings/python deste projeto. O repositório da versão em R se mantém em enderecobr, utilizando internamente as funções desta lib. Algumas funções ou classes/structs da implementação em Rust podem não estar expostas em outras linguagens. Vide documentação do Rust para identificar tais situações. Para solicitar esse tipo de mudança ou bindings em outras linguagens de programação, por favor abrir uma Issue ou Pull request neste repositório.

Documentação:

Instalação

A última versão pode ser baixada do crates com o comando:

cargo add enderecobr_rs

Ou adicionando em no seu Cargo.toml:

[dependencies]
enderecobr_rs = { version = "0.2.0" }

Exemplo de uso

Rust:

use enderecobr_rs::{padronizar_complementos, padronizar_logradouros};
assert_eq!(padronizar_logradouros("r. gen.. glicério"), "RUA GENERAL GLICERIO");
assert_eq!(padronizar_complementos("QD1 LT2 CS3"), "QUADRA 1 LOTE 2 CASA 3");

Python:

import enderecobr
assert enderecobr.padronizar_logradouros("r. gen.. glicério") == "RUA GENERAL GLICERIO"
assert enderecobr.padronizar_logradouros("QD1 LT2 CS3") == "QUADRA 1 LOTE 2 CASA 3"

Release

# Utilitário que ajuda a altera a versão nos arquivos necessários 
# (Cargo.toml e pyproject.toml), além de fazr um commit deles e cria a tag no git.
./bump-versao-release.sh 0.2.0

# Faz o push do commit e da tag para o repositório principal.
# O Github CI deve fazer o restante das checagens, compilações e gatilhos necessários.
git push origin
git push origin v0.2.0

## Em caso de erro, antes de fazer o push, é possível reverter o commit e apagar a tag
# git reset HEAD^
# git tag -d v0.2.0

Nota Ipea

enderecobr é desenvolvido por uma equipe de pesquisadores do Instituto de Pesquisa Econômica Aplicada (Ipea).

About

Biblioteca Rust com bindings em Python e R para padronizar e separar endereços brasileiros

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages