Módulo Python libpostgres

PostgreSQL no Raspberry Pi com FreeBSD 13

O módulo libposrgres, mostrado abaixo, contém as definições necessárias para os programas escritos em python se conectarem ao servidor de banco de dados.

import psycopg2
from configparser import ConfigParser


def config(secao, arquivo='database.ini'):
    """Obtém os parâmetros de uma seção de um arquivo de configuração.

    Args:
        arquivo: Nome do arquivo de configuração contendo os parâmetros,
                 por padrão o arquivo 'database.ini' localizado no mesmo
                 diretório do arquivo do programa.

        secao: Nome da seção do arquivo de configuração contendo os parâmetros

    Returns:
        Parâmetros da seção.

    """
    # criar o analisador
    config_parser = ConfigParser()
    # ler o arquivo de configuração
    config_parser.read(arquivo)

    # inicilizar o dicionário que vai conter os parâmetros retornados
    parametros = {}
    # verificar se o arquivo de configuração possui a seção especificada
    if config_parser.has_section(secao):
        # obter os itens da seção
        config_params = config_parser.items(secao)
        # converter o objeto lista num objeto dicionário do python
        for config_param in config_params:
            # obter o parâmetro e seu valor
            chave = config_param[0]
            valor = config_param[1]
            # adicionar o parâmetro e seu valor ao objeto dicionário
            parametros[chave] = valor
    else:
        raise Exception('A seção {0} não foi encontrada no arquivo {1}'.format(secao, arquivo))

    return parametros


def conectar(parametros):
    """Estabelece a conexão com o servidor de banco de dados PostgreSQL.

    Cria uma nova sessão com o servidor de banco de dados para permitir a
    execução de comandos e consultas e efetivar ou desfazer as transações.

    Args:
        parametros: Parâmetros da conexão obtidos do arquivo de configuração

    Returns:
        Conexão

    Raises:
        psycopg2.DatabaseError: Se a conexão não for bem sucedida

    """
    conn = None

    try:
        conn = psycopg2.connect(**parametros)
        print("Conectado ao PostgreSQL")
    except (Exception, psycopg2.DatabaseError) as e:
        print(e)

    return conn