# PostgreSQLController Library
Библиотека для управления PostgreSQL базой данных, создана совместными усилиями [Lanutrix](https://github.com/Lanutrix) и [An0nX](https://github.com/An0nX).
## Установка
На pypi.org либо как покеазано ниже
```bash
pip install psycopg2-binary
pip install loguru
```
## Использование
```python
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
### Конструктор
```python
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.
"""
```
### Чтение данных
```python
def read(self, table: str, columns: str, requirement: str = "") -> list:
"""
Чтение данных из указанной таблицы в базе данных.
Аргументы:
table (str): Имя таблицы для чтения.
columns (str): Столбцы, которые нужно выбрать из таблицы.
requirement (str, опционально): Дополнительное условие фильтрации данных. По умолчанию "".
Возвращает:
list: Список кортежей, представляющих результат запроса.
"""
```
### Запись данных
```python
def write(self, table: str, columns: str, values: str) -> bool:
"""
Запись данных в указанную таблицу базы данных.
Аргументы:
table (str): Имя таблицы для записи.
columns (str): Столбцы, в которые нужно вставить данные.
values (str): Значения, которые нужно вставить в столбцы.
Возвращает:
bool: True, если операция записи успешна, False в противном случае.
"""
```
### Обновление данных
```python
def update(self, table: str, data: str, requirement: str) -> bool:
"""
Обновление таблицы в базе данных с заданными данными и условием.
Параметры:
table (str): Имя таблицы для обновления.
data (str): Данные для установки в таблице.
requirement (str): Условие для идентификации строк для обновления.
Возвращает:
bool: True, если обновление прошло успешно, False в противном случае.
"""
```
### Удаление данных
```python
def delete(self, table: str, requirement: str) -> bool:
"""
Удаление строки из указанной таблицы на основе заданного условия.
Параметры:
table (str): Имя таблицы, из которой нужно удалить строку.
requirement (str): Условие, которому должна удовлетворять строка для удаления.
Возвращает:
bool: True, если удаление прошло успешно, False в противном случае.
"""
```
### Закрытие соединения
```python
def close(self):
"""
Закрытие соединения с PostgreSQL.
Эта функция закрывает соединение с PostgreSQL, установленное методом `connect`.
Она регистрирует действие закрытия соединения с использованием объекта `logger`.
Параметры:
None
Возвращает:
None
"""
```
### Асинхронное чтение данных
```python
async def read_async(self, table: str, columns: str, requirement: str = "") -> list:
"""
Асинхронное чтение данных из указанной таблицы.
Аргументы:
table (str): Имя таблицы для чтения.
columns (str): Столбцы, которые нужно извлечь из таблицы.
requirement (str, опционально): Условие для фильтрации данных. По умолчанию "".
Возвращает:
List[Record]: Результат запроса.
"""
```
### Асинхронная запись данных
```python
async def write_async(self, table: str, columns: str, values: str) -> bool:
"""
Асинхронная функция записи данных в указанную таблицу базы данных.
Параметры:
table (str): Имя таблицы для записи данных.
columns (str): Строка с именами столбцов для вставки данных.
values (str): Строка с значениями для вставки в столбцы.
Возвращает:
bool: True, если операция записи успешна, False в противном случае.
"""
```
### Асинхронное обновление данных
```python
async def update_async(self, table: str, data: str, requirement: str) -> bool:
"""
Асинхронное обновление таблицы в базе данных с заданными данными и условием.
Аргументы:
table (str): Имя таблицы для обновления.
data (str): Данные для установки в таблице.
requirement (str): Условие для обновления строк.
Возвращает:
bool: True, если обновление успешно, False в противном случае.
"""
```
### Асинхронное удаление данных
```python
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.
Raw data
{
"_id": null,
"home_page": "https://github.com/An0nX/PostgreSQLController",
"name": "pypostgresutil",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "Python Library PostgreSQL Management Pypi Tool Database Interaction Relational Databases Python Programming",
"author": "An0nX",
"author_email": "example@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/01/f8/42cd657a22df14f7006157eaa19eb701f84da26013ab4fec92d267c3a635/pypostgresutil-1.0.2.tar.gz",
"platform": null,
"description": "# PostgreSQLController Library\n\n\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f PostgreSQL \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u044b\u043c\u0438 \u0443\u0441\u0438\u043b\u0438\u044f\u043c\u0438 [Lanutrix](https://github.com/Lanutrix) \u0438 [An0nX](https://github.com/An0nX).\n\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n\u041d\u0430 pypi.org \u043b\u0438\u0431\u043e \u043a\u0430\u043a \u043f\u043e\u043a\u0435\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435\n\n```bash\npip install psycopg2-binary\npip install loguru\n```\n\n## \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n```python\nfrom pypostgresutil import PostgreSQLController\n\n# \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\ncontroller = PostgreSQLController()\n\n# \u0427\u0442\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\ndata = controller.read(table=\"example_table\", columns=\"*\", requirement=\"column_name='value'\")\nprint(data)\n\n# \u0417\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0445\nsuccess = controller.write(table=\"example_table\", columns=\"column1, column2\", values=\"'value1', 'value2'\")\nprint(success)\n\n# \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\nupdate_success = controller.update(table=\"example_table\", data=\"column1='new_value'\", requirement=\"column2='old_value'\")\nprint(update_success)\n\n# \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\ndelete_success = controller.delete(table=\"example_table\", requirement=\"column_name='value'\")\nprint(delete_success)\n\n# \u0417\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\ncontroller.close()\n```\n\n## API\n\n### \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\n```python\ndef __init__(self, host: str = \"localhost\", user: str = \"postgres\", password: str = \"postgres\", database: str = \"postgres\", table_definition: str = None) -> None:\n \"\"\"\n \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u043b\u0430\u0441\u0441\u0430.\n\n \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n host (str): \u0410\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 PostgreSQL. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \"localhost\".\n user (str): \u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f PostgreSQL. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \"postgres\".\n password (str): \u041f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f PostgreSQL. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \"postgres\".\n database (str): \u0418\u043c\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 PostgreSQL. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \"postgres\".\n table_definition (str): \u0417\u0430\u043f\u0440\u043e\u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.\n\n \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:\n None\n\n \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442:\n Exception: \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 PostgreSQL.\n \"\"\"\n```\n\n### \u0427\u0442\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\n```python\ndef read(self, table: str, columns: str, requirement: str = \"\") -> list:\n \"\"\"\n \u0427\u0442\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.\n\n \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b:\n table (str): \u0418\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f.\n columns (str): \u0421\u0442\u043e\u043b\u0431\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.\n requirement (str, \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e): \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \"\".\n\n \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:\n list: \u0421\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u0440\u0442\u0435\u0436\u0435\u0439, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430.\n \"\"\"\n```\n\n### \u0417\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0445\n```python\ndef write(self, table: str, columns: str, values: str) -> bool:\n \"\"\"\n \u0417\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.\n\n \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b:\n table (str): \u0418\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.\n columns (str): \u0421\u0442\u043e\u043b\u0431\u0446\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435.\n values (str): \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u044b.\n\n \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:\n bool: True, \u0435\u0441\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u0430, False \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435.\n \"\"\"\n```\n\n### \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\n```python\ndef update(self, table: str, data: str, requirement: str) -> bool:\n \"\"\"\n \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c.\n\n \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n table (str): \u0418\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.\n data (str): \u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.\n requirement (str): \u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u0434\u043b\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.\n\n \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:\n bool: True, \u0435\u0441\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e, False \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435.\n \"\"\"\n```\n\n### \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\n```python\ndef delete(self, table: str, requirement: str) -> bool:\n \"\"\"\n \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f.\n\n \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n table (str): \u0418\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443.\n requirement (str): \u0423\u0441\u043b\u043e\u0432\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0434\u043e\u043b\u0436\u043d\u0430 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f.\n\n \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:\n bool: True, \u0435\u0441\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e, False \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435.\n \"\"\"\n```\n\n### \u0417\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\n```python\ndef close(self):\n \"\"\"\n \u0417\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 PostgreSQL.\n\n \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 PostgreSQL, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u043c `connect`.\n \u041e\u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 `logger`.\n\n \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n None\n\n \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:\n None\n \"\"\"\n```\n\n### \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\n```python\nasync def read_async(self, table: str, columns: str, requirement: str = \"\") -> list:\n \"\"\"\n \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.\n\n \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b:\n table (str): \u0418\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f.\n columns (str): \u0421\u0442\u043e\u043b\u0431\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.\n requirement (str, \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e): \u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \"\".\n\n \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:\n List[Record]: \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430.\n \"\"\"\n```\n\n### \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0445\n```python\nasync def write_async(self, table: str, columns: str, values: str) -> bool:\n \"\"\"\n \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.\n\n \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n table (str): \u0418\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.\n columns (str): \u0421\u0442\u0440\u043e\u043a\u0430 \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.\n values (str): \u0421\u0442\u0440\u043e\u043a\u0430 \u0441 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u044b.\n\n \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:\n bool: True, \u0435\u0441\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u0430, False \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435.\n \"\"\"\n```\n\n### \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\n```python\nasync def update_async(self, table: str, data: str, requirement: str) -> bool:\n \"\"\"\n \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c.\n\n \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b:\n table (str): \u0418\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.\n data (str): \u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.\n requirement (str): \u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a.\n\n \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:\n bool: True, \u0435\u0441\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, False \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435.\n \"\"\"\n```\n \n### \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\n```python\nasync def delete_async(self, table: str, requirement: str) -> bool:\n \"\"\"\n \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f.\n\n \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n table (str): \u0418\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438.\n requirement (str): \u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f.\n\n \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:\n bool: True, \u0435\u0441\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, False \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435.\n \"\"\"\n```\n \n## \u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\n\n\u0414\u043b\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 loguru. \u041b\u043e\u0433\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0447\u0442\u0435\u043d\u0438\u044f, \u0437\u0430\u043f\u0438\u0441\u0438, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f.\n\n## \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a\n\n\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 PostgreSQL, \u043e\u043d\u0438 \u043b\u043e\u0433\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \"critical\" \u0438\u043b\u0438 \"error\". \u0421\u0430\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435 \u043f\u0440\u043e\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0437-\u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439.\n\n## \u0417\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438\n\n- psycopg2-binary\n- loguru\n\n## \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\n\n\u042d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 LICENSE.\n",
"bugtrack_url": null,
"license": "",
"summary": "Python library for simple PostgreSQL management",
"version": "1.0.2",
"project_urls": {
"Homepage": "https://github.com/An0nX/PostgreSQLController"
},
"split_keywords": [
"python",
"library",
"postgresql",
"management",
"pypi",
"tool",
"database",
"interaction",
"relational",
"databases",
"python",
"programming"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a0357c7faff11e880be297c1df78da7651504dceb3d3f2f35dd490a95198b4c8",
"md5": "ce78fc38b10a822df4732d8ad5c6814f",
"sha256": "385166a2090f0c9e83af110f156788eb0d4c2db62b88185ac830b37092fbfa7c"
},
"downloads": -1,
"filename": "pypostgresutil-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ce78fc38b10a822df4732d8ad5c6814f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 6451,
"upload_time": "2023-12-22T17:08:32",
"upload_time_iso_8601": "2023-12-22T17:08:32.983355Z",
"url": "https://files.pythonhosted.org/packages/a0/35/7c7faff11e880be297c1df78da7651504dceb3d3f2f35dd490a95198b4c8/pypostgresutil-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "01f842cd657a22df14f7006157eaa19eb701f84da26013ab4fec92d267c3a635",
"md5": "c472f0791b4cdb3925e1afe7d6fd0620",
"sha256": "d9bc2ee062a7d691029ec948045fc7c62c02cba428f0e16727cd56a81d01f7f7"
},
"downloads": -1,
"filename": "pypostgresutil-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "c472f0791b4cdb3925e1afe7d6fd0620",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 7359,
"upload_time": "2023-12-22T17:08:34",
"upload_time_iso_8601": "2023-12-22T17:08:34.530375Z",
"url": "https://files.pythonhosted.org/packages/01/f8/42cd657a22df14f7006157eaa19eb701f84da26013ab4fec92d267c3a635/pypostgresutil-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-22 17:08:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "An0nX",
"github_project": "PostgreSQLController",
"github_not_found": true,
"lcname": "pypostgresutil"
}