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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypostgresutil-1.0.2-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file pypostgresutil-1.0.2.tar.gz.

File metadata

  • Download URL: pypostgresutil-1.0.2.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for pypostgresutil-1.0.2.tar.gz
Algorithm Hash digest
SHA256 d9bc2ee062a7d691029ec948045fc7c62c02cba428f0e16727cd56a81d01f7f7
MD5 c472f0791b4cdb3925e1afe7d6fd0620
BLAKE2b-256 01f842cd657a22df14f7006157eaa19eb701f84da26013ab4fec92d267c3a635

See more details on using hashes here.

File details

Details for the file pypostgresutil-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: pypostgresutil-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for pypostgresutil-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 385166a2090f0c9e83af110f156788eb0d4c2db62b88185ac830b37092fbfa7c
MD5 ce78fc38b10a822df4732d8ad5c6814f
BLAKE2b-256 a0357c7faff11e880be297c1df78da7651504dceb3d3f2f35dd490a95198b4c8

See more details on using hashes here.

Supported by

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