Skip to main content

Python library for simple PostgreSQL management

Project description

PostgreSQLController Library

Библиотека для управления PostgreSQL базой данных, создана совместными усилиями Lanutrix и An0nX.

Установка

На pypi.org либо как покеазано ниже

pip install psycopg2-binary
pip install loguru

Использование

from pypostgresutil import PostgreSQLController

# Инициализация контроллера
controller = PostgreSQLController()

# Чтение данных
data = controller.read(table="example_table", columns="*", requirement="column_name='value'")
print(data)

# Запись данных
success = controller.write(table="example_table", columns="column1, column2", values="'value1', 'value2'")
print(success)

# Обновление данных
update_success = controller.update(table="example_table", data="column1='new_value'", requirement="column2='old_value'")
print(update_success)

# Удаление данных
delete_success = controller.delete(table="example_table", requirement="column_name='value'")
print(delete_success)

# Закрытие соединения
controller.close()

API

Конструктор

def __init__(self, host: str = "localhost", user: str = "postgres", password: str = "postgres", database: str = "postgres", table_definition: str = None) -> None:
    """
    Инициализация нового экземпляра класса.

    Параметры:
        host (str): Адрес сервера PostgreSQL. По умолчанию "localhost".
        user (str): Имя пользователя PostgreSQL. По умолчанию "postgres".
        password (str): Пароль пользователя PostgreSQL. По умолчанию "postgres".
        database (str): Имя базы данных PostgreSQL. По умолчанию "postgres".
        table_definition (str): Запрос определения таблицы для создания таблицы в базе данных.

    Возвращает:
        None

    Вызывает:
        Exception: Если произошла ошибка при работе с PostgreSQL.
    """

Чтение данных

def read(self, table: str, columns: str, requirement: str = "") -> list:
    """
    Чтение данных из указанной таблицы в базе данных.

    Аргументы:
        table (str): Имя таблицы для чтения.
        columns (str): Столбцы, которые нужно выбрать из таблицы.
        requirement (str, опционально): Дополнительное условие фильтрации данных. По умолчанию "".

    Возвращает:
        list: Список кортежей, представляющих результат запроса.
    """

Запись данных

def write(self, table: str, columns: str, values: str) -> bool:
    """
    Запись данных в указанную таблицу базы данных.

    Аргументы:
        table (str): Имя таблицы для записи.
        columns (str): Столбцы, в которые нужно вставить данные.
        values (str): Значения, которые нужно вставить в столбцы.

    Возвращает:
        bool: True, если операция записи успешна, False в противном случае.
    """

Обновление данных

def update(self, table: str, data: str, requirement: str) -> bool:
    """
    Обновление таблицы в базе данных с заданными данными и условием.

    Параметры:
        table (str): Имя таблицы для обновления.
        data (str): Данные для установки в таблице.
        requirement (str): Условие для идентификации строк для обновления.

    Возвращает:
        bool: True, если обновление прошло успешно, False в противном случае.
    """

Удаление данных

def delete(self, table: str, requirement: str) -> bool:
    """
    Удаление строки из указанной таблицы на основе заданного условия.

    Параметры:
        table (str): Имя таблицы, из которой нужно удалить строку.
        requirement (str): Условие, которому должна удовлетворять строка для удаления.

    Возвращает:
        bool: True, если удаление прошло успешно, False в противном случае.
    """

Закрытие соединения

def close(self):
    """
    Закрытие соединения с PostgreSQL.

    Эта функция закрывает соединение с PostgreSQL, установленное методом `connect`.
    Она регистрирует действие закрытия соединения с использованием объекта `logger`.

    Параметры:
        None

    Возвращает:
        None
    """

Асинхронное чтение данных

async def read_async(self, table: str, columns: str, requirement: str = "") -> list:
    """
    Асинхронное чтение данных из указанной таблицы.

    Аргументы:
        table (str): Имя таблицы для чтения.
        columns (str): Столбцы, которые нужно извлечь из таблицы.
        requirement (str, опционально): Условие для фильтрации данных. По умолчанию "".

    Возвращает:
        List[Record]: Результат запроса.
    """

Асинхронная запись данных

async def write_async(self, table: str, columns: str, values: str) -> bool:
    """
    Асинхронная функция записи данных в указанную таблицу базы данных.

    Параметры:
        table (str): Имя таблицы для записи данных.
        columns (str): Строка с именами столбцов для вставки данных.
        values (str): Строка с значениями для вставки в столбцы.

    Возвращает:
        bool: True, если операция записи успешна, False в противном случае.
    """

Асинхронное обновление данных

async def update_async(self, table: str, data: str, requirement: str) -> bool:
    """
    Асинхронное обновление таблицы в базе данных с заданными данными и условием.

    Аргументы:
        table (str): Имя таблицы для обновления.
        data (str): Данные для установки в таблице.
        requirement (str): Условие для обновления строк.

    Возвращает:
        bool: True, если обновление успешно, False в противном случае.
    """

Асинхронное удаление данных

async def delete_async(self, table: str, requirement: str) -> bool:
    """
    Асинхронное удаление строк из таблицы на основе заданного условия.

    Параметры:
        table (str): Имя таблицы, из которой нужно удалить строки.
        requirement (str): Условие для фильтрации строк для удаления.

    Возвращает:
        bool: True, если удаление успешно, False в противном случае.
    """

Логирование

Для логирования используется библиотека loguru. Логи содержат информацию об установке соединения, создании таблицы, операциях чтения, записи, обновления и удаления данных, а также закрытии соединения.

Обработка ошибок

В случае возникновения ошибок при работе с PostgreSQL, они логируются с использованием уровня логирования "critical" или "error". Сами ошибки не пробрасываются из библиотеки, чтобы избежать прекращения работы программы из-за исключений.

Зависимости

  • psycopg2-binary
  • loguru

Лицензия

Эта библиотека распространяется под лицензией MIT. Подробную информацию смотрите в файле LICENSE.

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

pypostgresutil-1.0.2.tar.gz (7.4 kB view hashes)

Uploaded Source

Built Distribution

pypostgresutil-1.0.2-py3-none-any.whl (6.5 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