Skip to main content

Um pequeno banco de dados NoSQL feito em Python.

Project description

ArqueaDB

Um pequeno banco de dados NoSQL feito em Python.

A small NoSQL database made in Python.

Correções v0.2.2

  • Resolvido um pequeno problema encontrado no tratamento de parâmetros de algumas funções;
  • Novo recurso: "python3 -m arquea --error-list" para obter a lista de erros.

Alterações v0.2.0

  • Resolvido o problema de formatação dos diretórios no Windows;
  • Remoção de alguns códigos redundantes;
  • Retornos em tuple no lugar de list em algumas funções;
  • Alteração na função insert_one();
  • Nova função de inserção: insert_many() para inserir listas de dicionários;
  • Nova função get_current_collection() retorno a coleção definida;
  • Nova função get_current_directory() retorna o diretório de operação atual;
  • Agumas correções nas funções create_database(), find_document(), updade() e remove();
  • Nova funcionalidade na função connect(directory, collection), é permitido passar a coleção diretamente nela;
  • Nova função checksum_sha256(objectId) retorna uma hash (sha256) do documento solicitado (aceita somente objectId como parâmetro de busca);
  • Tabela de código de erros atualizada e pequena alteração na função de retorno de erro.

Documentação

Instalação

Você pode instalar o ArqueaDB atravez do pip:

pip install arquea

Criar um banco de dados

Para criar um banco de dados execute o seguinte comando no diretório desejado:

python3 -m arquea --create name_database

Ou:

from arquea import Arquea
db = Arquea()
db.create_database("name_database")

Conexão:

Para se conecatar com o banco de dados arquea é somente necessário passar o diretório em que se encontra o banco.

from arquea import Arquea
db = Arquea()
con = db.connec("/home/user/arqueadb/aq-db/")
if con['status']!=200:
    print(con)
    print('Erro ao conectar-se ao banco de dados!')

Coleções:

Para criar uma coleção use o comando:

db.create_collection('user_profile')

Para obter todas as coleções

print(db.get_collections())

Definir coleção

Para pesquisar, atualizar, inserir e remover qualquer arquivo, é necessário definir um coleção.

db.set_collection('user_profile')

Lista de documentos

A função get_documents() retorna a lista de documente de uma coleção.

print(db.get_documents())

Pesquisar

A função find_document() aceita 3 (três) parâmetros, sendo: um valor de busca, uma lista com o caminho até o valor, e, o limite de retorno, sendo (0) ilimitado.

{'items':{
    'name':'Pedro',
    'phone':'999999999'
}}

print(db.find_document('Pedro', ['items', 'name'], 1))

Inserir

A função insert_one() aceita um parâmetro, sendo um dicionário Python.

db.insert_one({'_id':123456, 'name':'Pedro'})

A função insert_many() aceita um parâmetro, sendo do tipo lista ou tupla Python.

list_items = [
    {'name':'Pedro', 'age':38},
    {'name':'Maria', 'age':37}
]

db.insert_many(list_items)

Se não for definido a chave-valor "_id" será gerado um automaticamente. Lembrando que o (objectId) não pode ser atualizado.

Atualizar

A função update() aceita 4 (quatro) parâmetros, sendo: um valor de busca, uma lista com o caminho até o valor, informação atualizada, e, o limite.

db.update('Pedro', ['items', 'name'], {'items':{'name':'Sr. Pedro'}}, 1)

Remover

A função remove() aceita 3 (parâmetros), sendo: um valor de busca, uma lista com o caminho até o valor, e, o limite.

db.remove('value', ['key'], 0)

Observação

A função get_last_err() funciona somente com as funções: checksum_sha256(), get_documents(), find_document(), update(), remove().

Cuidado com o uso desta função.

print(db.get_last_err())

Outras funções:

Versão do banco de bados

A função get_db_info() retorna a versão do banco de dados conectado. Estando esses dados armanzenados no arquivo "conf.arquea" de cada banco.

print(db.get_db_info())

Lista de erros:

200:'OK',
300:'Versão do banco de dados não é compatível',
301:'Não foi possível determinar a versão do banco de dados',
302:'Erro de sintaxe no arquivo "conf.arquea"',
404:'Diretório do banco de dados não encontrado.',
406:'Coleção solicitada não encontrada',
408:'Não é possível provar ser um banco de dados ArqueaDB. Faltando arquivo "conf.arquea".',
500:'Erro desconhecido',
501:'Parâmetro inválido ou nulo',
502:'Erro ao criar coleção',
503:'Já existe uma coleção/objeto com está identificação',
504:'Erro ao criar banco de dados',
505:'Já existe um diretório/documento com este nome',
506:'Nenhum documento encontrado',
508:'Ação não permitida',
509:'Faltando dados para validar operação'

Exemplo de retorno:

{'status': 404, 'message': 'Diretório do banco de dados não encontrado.'}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arquea-0.2.2.tar.gz (7.2 kB view hashes)

Uploaded Source

Built Distribution

arquea-0.2.2-py3-none-any.whl (10.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page