Banco Z
Banco Z é uma biblioteca simples de banco de dados em JSON. Ela salva arquivos dentro da pasta BANCO Z, permite criar, ler, atualizar e deletar dados, e também inclui cache, fila de operações, backup, limites e análise dos arquivos.
Este projeto tem duas versões:
bancoz.js: versão em JavaScript.bancoz.py: versão em Python, com a mesma ideia de uso.
Como Funciona
Cada arquivo JSON funciona como uma tabela/coleção, e cada nó funciona como um registro.
Exemplo:
bancoz.criar("clientes", "123", {"nome": "Caio", "saldo": 1000})
Isso cria:
BANCO Z/clientes.json
Com o conteúdo:
{
"123": {
"nome": "Caio",
"saldo": 1000
}
}
Uso Com Python
Importe a instância pronta bancoz:
from bancoz import bancoz
bancoz.criar("clientes", "123", {"nome": "Caio", "saldo": 1000})
print(bancoz.ler("clientes"))
print(bancoz.ler("clientes", "123"))
A saída será parecida com:
{'123': {'nome': 'Caio', 'saldo': 1000}}
{'nome': 'Caio', 'saldo': 1000}
Criar
bancoz.criar("clientes", "123", {
"nome": "Caio",
"saldo": 1000,
"limite": 5000
})
Ler
Ler o arquivo inteiro:
dados = bancoz.ler("clientes")
print(dados)
Ler apenas um nó:
cliente = bancoz.ler("clientes", "123")
print(cliente)
Atualizar
Atualização parcial usando objeto:
bancoz.atualizar("clientes", "123", {
"saldo": 1500
})
Atualizar uma chave específica:
bancoz.atualizar("clientes", "123", 2000, "saldo")
Substituir o nó inteiro:
bancoz.atualizar(
"clientes",
"123",
{"nome": "Caio", "saldo": 3000},
{"substituir": True}
)
Deletar
Deletar o nó inteiro:
bancoz.deletar("clientes", "123")
Deletar uma chave:
bancoz.deletar("clientes", "123", "saldo")
Deletar várias chaves:
bancoz.deletar("clientes", "123", ["saldo", "limite"])
Uso Com JavaScript
Como bancoz.js usa ES Modules, importe com import:
import bancoz from './bancoz.js';
await bancoz.criar('clientes', '123', {
nome: 'Caio',
saldo: 1000
});
console.log(await bancoz.ler('clientes'));
console.log(await bancoz.ler('clientes', '123'));
Se seu projeto Node ainda não usa ES Modules, adicione isto ao package.json:
{
"type": "module"
}
Pasta Dos Dados
Por padrão, os arquivos são salvos em:
BANCO Z/
Você pode trocar a pasta:
bancoz.path("meu-banco")
No JavaScript:
bancoz.path('meu-banco');
A pasta é criada automaticamente quando uma operação precisa ler ou salvar dados.
Cache
Ativar cache em memória:
bancoz.cache(True)
Ativar cache com expiração em minutos:
bancoz.cache(True, 5)
Ver estado do cache:
print(bancoz.getCache(False))
Fila
A fila processa operações em ordem:
bancoz.fila(True)
Alias em inglês:
bancoz.queue(True)
Backup
Ativar backup:
bancoz.bk(True)
Alias em inglês:
bancoz.backup(True)
Quando o backup está ativo, antes de alterar um arquivo existente a lib cria um arquivo .backup.
Logs
Ativar logs:
bancoz.log(True)
Trocar idioma:
bancoz.lang("en")
Idiomas disponíveis:
pten
Limites
Você pode limitar a quantidade de nós, subnós e arrays de um arquivo.
bancoz.limite("clientes", 10, 100, 20)
Ordem dos parâmetros:
arquivo, limite_de_nodes, limite_de_subnodes, limite_de_arrays
Ver limite e uso atual:
print(bancoz.getLimite("clientes"))
Remover limites:
bancoz.limite("clientes")
Limites Avançados
Limites avançados funcionam por nível de profundidade:
bancoz.limiteAvancado("clientes", {
"0": {"maxKeys": 10},
"1": {"maxNodes": 50, "maxSubnodes": 100}
})
Ver uso atual:
print(bancoz.getLimiteAvancado("clientes"))
Análise
Analisar arquivos JSON da pasta do banco:
resumo = bancoz.analise(False)
print(resumo)
Mostrar no terminal:
bancoz.analise(True)
IDs
Criar ID automático:
id_novo = bancoz.criarID()
print(id_novo)
Alias em inglês:
id_novo = bancoz.createID()
Aliases Em Inglês
A lib também aceita nomes em inglês:
bancoz.create("clientes", "123", {"nome": "Caio"})
bancoz.read("clientes", "123")
bancoz.update("clientes", "123", {"saldo": 2000})
bancoz.delete("clientes", "123")
Uso Async No Python
A instância bancoz é simples e não exige asyncio.
Se você quiser usar await dentro de uma aplicação async, use a classe Bancoz:
import asyncio
from bancoz import Bancoz
async def main():
db = Bancoz()
await db.criar("clientes", "123", {"nome": "Caio"})
print(await db.ler("clientes"))
asyncio.run(main())
Exemplo Completo Em Python
from bancoz import bancoz
bancoz.log(True)
bancoz.cache(True)
bancoz.bk(True)
bancoz.criar("clientes", "123", {
"nome": "Caio",
"saldo": 1000,
"limite": 5000
})
bancoz.atualizar("clientes", "123", 1500, "saldo")
print(bancoz.ler("clientes", "123"))
Exemplo Completo Em JavaScript
import bancoz from './bancoz.js';
bancoz.log(true);
bancoz.cache(true);
bancoz.bk(true);
await bancoz.criar('clientes', '123', {
nome: 'Caio',
saldo: 1000,
limite: 5000
});
await bancoz.atualizar('clientes', '123', 1500, 'saldo');
console.log(await bancoz.ler('clientes', '123'));
Arquivos De Teste
Este repositório inclui:
teste.py: teste simples da versão Python.teste.js: teste simples da versão JavaScript.
Rodar Python:
python3 teste.py
Rodar JavaScript:
node teste.js
Metadata
Release files for bancoz 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| bancoz-1.0.0.tar.gz | 14.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bancoz-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.0 kB
Release files / bancoz-1.0.0.tar.gz
| Download URL | bancoz-1.0.0.tar.gz |
|---|---|
| Size | 14.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e1933012af040fd0c67372bdaf05bcc2cd222ceca647800c79d78834fb759ed4
|
|
BLAKE2b-256 checksum How to use checksums |
3cbfd3679d16ad03260446ff6bce001cd5a0e43f3e11f72b0854481094a841f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Release files / bancoz-1.0.0-py3-none-any.whl
| Download URL | bancoz-1.0.0-py3-none-any.whl |
|---|---|
| Size | 14.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
57e15f14aeddbc7f58900fd2ff67f0e8dee7e5c348d70f89217f9cc1475aba83
|
|
BLAKE2b-256 checksum How to use checksums |
acca2c6548a833171dbfa280ab1552d51c661f173feaf3a69e11fb24c1defaae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Security for bancoz 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.