Pular para o conteúdo

Biblioteca Arcane

Trinta e dois módulos e 1096 símbolos, sem uma única dependência externa.

Importar#

dataforge
adopt Arcane.Math as Math                # o módulo inteiro
adopt Arcane.Math.{sqrt, factorial}       # só o que você usa
adopt {sqrt as raiz} from Arcane.Math     # com apelido

out Math.sqrt(16), sqrt(16), raiz(16)

Cada módulo tem um nome curto equivalente: adopt Math as M funciona igual a adopt Arcane.Math as M.

Os trinta e dois módulos#

MóduloSímbolosPara quê
Arcane.Color66Cor de 24 bits no terminal, tabela, moldura, barra de progresso e árvore.
`Arcane.Analytics`65Análise de dados: estatística, regressão, clustering e gráficos ASCII.
Kiln64Framework web: rotas, middleware, templates, sessão e arquivos estáticos.
`Arcane.Collections`63Estruturas de dados e algoritmos: pilha, fila, grafo, união-busca.
`Arcane.Text`58Manipulação de texto, formatação, tabelas e conversão de caixa.
`Arcane.Functional`56Utilitários funcionais: composição, lentes, Maybe/Either, transdutores.
`Arcane.Time`54Datas, horas, durações e cronometragem.
`Arcane.Math`51Matemática, álgebra linear e estatística básica.
`Arcane.Crypto`48Hashes, HMAC, senhas, codificações, aleatoriedade segura e cifragem de arquivo (ChaCha20-Poly1305).
`Arcane.Async`46Promessas, filas, agendamento e execução concorrente.
Arcane.Iter44Iteradores preguiçosos e composição de ações: janelas, combinatória, memoize.
Arcane.Crucible42Framework de testes: suítes, matchers, fixtures, dublês e benchmark.
`Arcane.OS`42Sistema operacional, ambiente, disco e processo atual.
`Arcane.Database`39Banco de dados SQLite: tabelas, consultas, migrações e importação.
`Arcane.Test`34Asserções e organização de suítes de teste.
`Arcane.Regex`32Expressões regulares e validadores brasileiros (CPF, CNPJ, telefone).
`Arcane.Excel`29Planilhas .xlsx: ler, gravar, fórmulas e conversão para CSV e frame.
Arcane.Forge28Banco de dados: SQLite, Postgres, MySQL, Redis e MongoDB pela mesma interface.
`Arcane.IO`27Arquivos, diretórios, JSON, CSV e shell.
`Arcane.Serialization`26JSON, CSV, INI, TOML, XML e conversões entre eles.
Arcane.Concurrent25Threads, processos, canal bloqueante, grupo de tarefas e prazo.
`Arcane.Cortex`25Aprendizado de máquina: regressão, árvore, floresta, k-NN, Naive Bayes, k-médias e PCA.
Arcane.Lago18Data Lake: Parquet nativo, partições Hive, camadas bronze/prata/ouro e compactação.
`Arcane.Http`17Servidor HTTP: rotas, middleware, JSON, arquivos estáticos.
`Arcane.Process`15Execução de processos externos, com stdout, stderr e código de saída.
`Arcane.Logging`14Registro estruturado de eventos, com níveis e destinos.
`Arcane.Data`13DataFrames, séries e transformações tabulares.
Arcane.Qualidade13Qualidade de dados: as seis dimensões, perfil, validação e limpeza.
`Arcane.Meta`12Metadados de decorador: ler @Nome em tempo de execução.
Arcane.Pipeline11Orquestração de ETL/ELT: DAG, dependências, retry, incremental e relatório.
`Arcane.Web`11Cliente HTTP, URL encoding e JSON.
Arcane.Archive8Zip e tar: compactar, listar, conferir e extrair recusando Zip Slip e zip bomb.

Sem dependências#

Toda a biblioteca usa apenas a biblioteca padrão do Python. Isso significa que um programa DataForge roda em qualquer máquina com Python 3.10+, sem pip install de nada.

A contrapartida é o escopo: não há cliente de PostgreSQL, nem parser de YAML, nem framework web completo. O que existe é o que dá para fazer bem sem arrastar o ecossistema inteiro junto.

Além dos módulos#

Existem ainda 228 funções globais disponíveis sem nenhum adoptlen, sum, sorted, map, round, str, e o resto. A lista completa está em Funções embutidas.