Skip to main content

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:

  • pt
  • en

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)

Source distribution for bancoz 1.0.0
File Size Uploaded Provenance
bancoz-1.0.0.tar.gz 14.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for bancoz 1.0.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page