Skip to main content

CoolDB - это модуль для удобного использования баз данных, таких как sqlite3 и aiosqlite - для синхронного и асинхронного взаимодействия с базами данных

Project description

CoolDB

CoolDB - это модуль для удобного использования баз данных на основе sqlite3 - для синхронного и асинхронного взаимодействия с базами данных.

SyncDataBaseRequests - это надстройка над sqlite3, призванная ускорить работу с базами данных sqlite в синхронном режиме.

Пример синхронного использования
Прелесть синхронного режима функций в том, что мы можем вызывать их, как в синхронном режиме, так и в асинхронном из кроутин, либо блокируя их действие, либо прокидывая их в асинхронный режим, по средствам asyncio.to_thread(). И все таки более предпочтительным будет использовать асинхнонные варианты функций, чтобы попросту экономить мощности.
from CoolDB.SyncDataBaseRequests import RegRequests



def main():
	if RegRequests.get_db(
		dataBase="path/filename",
		table_name="your_table_name",
		columns="(name TEXT, age INTEGER, sex TEXT)"
	) is False:
		return 1

	if RegRequetsts.insert_to_db(
		dataBase="path/filename",
		table_name="your_table_name",
		parameters=["Игорь", 41, "Боевой вертолет СУ-34"]
	) is False:
		return 1

	print(RegRequests.fetch_all(
			dataBase="path/filename",
			table_name="your_table_name"
		))



if __name__ == "__main__":
	main()

AsyncDataBaseRequests - это надстройка над aiosqlite, призванная ускорить работу с базами данных sqlite в асинхронном режиме.

Пример асинхронного использования
При асинхронном режиме все точно также, только функции вызываются из кроутин.
import asyncio
from CoolDB.AsyncDataBaseRequests import RegRequests



async def main():
	if await RegRequests.get_db(
		dataBase="path/filename",
		table_name="your_table_name",
		columns="(name TEXT, age INTEGER, sex TEXT)"
	) is False:
		return 1

	if await RegRequetsts.insert_to_db(
		dataBase="path/filename",
		table_name="your_table_name",
		parameters=["Игорь", 41, "Боевой вертолет СУ-34"]
	) is False:
		return 1

	print(await RegRequests.fetch_all(
			dataBase="path/filename",
			table_name="your_table_name"
		))



if __name__ == "__main__":
	asyncio.run(main())

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

Документация

В CoolDB собраны регулярные функции взаимодействия с базами данных и помещены в класс RegRequest модуля SyncDataBaseRequests или AsyncDataBaseRequests:

Функция get_db()
Функция get_db() используется для создания таблицы в базе данных, если такой еще не существует. Попутно создает и базу данных, если ее еще не существует.
get_db(dataBase: str, table_name: str, columns: str) -> bool

Функция get_db() принимает три аргумента:

  1. dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Примечания
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
  1. table_name - название таблицы в базе данных. Должен передаваться в формате строки.

  2. columns - столбцы, с которыми необходимо будет создать базу данных, если она еще не была создана. Должны передаваться в формате строки формата: "(SQL_VARS)".

Пример
parameters = "(name TEXT, age INTEGER, sex TEXT)"

Пример использования:

if RegRequests.get_db(
	dataBase="path/filename",
	table_name="your_table_name",
	columns="(name TEXT, age INTEGER, sex TEXT)"
) is False:
	return 1
Примечания
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.

Функция insert_to_db()
Функция insert_to_db() используется для добавления элементов во все столбцы таблицы. Попутно создает и базу данных, если ее еще не существует.
insert_to_db(dataBase: str, table_name: str, parameters: list) -> bool

Функция insert_to_db() принимает три аргумента:

  1. dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Примечания
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
  1. table_name - название таблицы в базе данных. Должен передаваться в формате строки.

  2. parameters - параметры, которые необходимо будет поместить в базу данных. Должны передаваться в формате списка из переменных или значений.

Пример использования:

if RegRequests.insert_to_db(
	dataBase="path/filename",
	table_name="your_table_name",
	parameters=[X, Y, N, 42]
) is False:
	return 1
Примечания
insert_to_db() записывает значения во все существующие столбцы, поэтому количество передаваемых параметров, должно быть равным количеству существующих столбцов. В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.

Функция insert_to_db_one_par()
Функция insert_to_db_one_par() используется для добавления элемента или элементов в определенный столбец или столбцы таблицы. Попутно создает и базу данных, если ее еще не существует.
insert_to_db_one_par(dataBase: str, table_name: str, column_name: str | list[str], parameter: str) -> bool

Функция insert_to_db_one_par() принимает четыре аргумента:

  1. dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Примечания
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
  1. table_name - название таблицы в базе данных. Должен передаваться в формате строки.

  2. column_name - названия столбца или столбцов, куда необходимо записать значения.

  3. parameter - параметр, который необходимо будет поместить в базу данных или несколько параметров для определенных столбцов. Должны передаваться в формате строки формата "'X', 'Y', 'N'".

Пример использования:

if RegRequests.insert_to_db_one_par(
	dataBase="path/filename",
	table_name="your_table_name",
	column_name=["forX", "forY", "forN"]
	parameter="'X', 'Y', 'N'"
) is False:
	return 1
Примечания
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.

Функция fetch_all_where()
Функция fetch_all_where() используется для извлечения элементов из всех столбцов всех строк, в которых параметр поиска равен значению параметра поиска - условно, извлечь все столбцы всех строк, где айди=13.
fetch_all_where(dataBase: str, table_name: str, condition: str, condition_value: str | int) -> list[dict] | None

Функция fetch_all_where() принимает четыре аргумента:

  1. dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Примечания
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
  1. table_name - название таблицы в базе данных. Должен передаваться в формате строки.

  2. condition - параметер, по которому будет производится поиск в таблице.

  3. condition_value - значение параметра, по которому будет производится поиск в таблице.

Пример использования:

if RegRequests.fetch_all_where(
	dataBase="path/filename",
	table_name="your_table_name",
	condition="id_",
	condition_value="121212"
) is None:
	return 1
Примечания
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.

Функция fetch_all()
Функция fetch_all() используется для извлечения всех элементов таблицы.
fetch_all(dataBase: str, table_name: str) -> list[dict] | None

Функция fetch_all() принимает два аргумента:

  1. dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Примечания
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
  1. table_name - название таблицы в базе данных. Должен передаваться в формате строки.

Пример использования:

if RegRequests.fetch_all(
	dataBase="path/filename",
	table_name="your_table_name"
) is None:
	return 1
Примечания
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.

Функция fetch_one()
Функция fetch_one() используется для извлечения одного элемента таблицы.
fetch_one(dataBase: str, table_name: str, column_name: str, condition: str, condition_value: str | int) -> str | None

Функция fetch_one() принимает пять аргументов:

  1. dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Примечания
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
  1. table_name - название таблицы в базе данных. Должен передаваться в формате строки.

  2. column_name - названия столбца, откуда необходимо извлечь значение.

  3. condition - параметер, по которому будет производится поиск в таблице.

  4. condition_value - значение параметра, по которому будет производится поиск в таблице.

Пример использования:

if RegRequests.fetch_one(
	dataBase="path/filename",
	table_name="your_table_name",
	column_name="XYN",
	condition="id_",
	condition_value="121212"
) is None:
	return 1
Примечания
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.

Функция exists_test()
Функция exists_test() используется для проверки существования таблицы.
exists_test(dataBase: str, table_name: str) -> bool

Функция exists_test() принимает два аргумента:

  1. dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Примечания
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
  1. table_name - название таблицы в базе данных. Должен передаваться в формате строки.

Пример использования:

if RegRequests.exists_test(
	dataBase="path/filename",
	table_name="your_table_name"
) is False:
	return 1
Примечания
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.

Функция update_table()
Функция update_table() используется для обновления определенного элемента определенного столбца.
update_table(dataBase: str, table_name: str, column_name: str, new_meaning: str, condition: str, condition_value: str | int) -> bool

Функция update_table() принимает шесть аргументов:

  1. dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Примечания
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
  1. table_name - название таблицы в базе данных. Должен передаваться в формате строки.

  2. column_name - названия столбца, откуда необходимо извлечь значение.

  3. new_meaning - новое значение выбранного столбца

  4. condition - параметер, по которому будет производится поиск в таблице.

  5. condition_value - значение параметра, по которому будет производится поиск в таблице.

Пример использования:

if RegRequests.update_table(
	dataBase="path/filename",
	table_name="your_table_name",
	column_name="XYN",
	new_meaning="URAURAURAURAURA"
	condition="id_",
	condition_value="121212"
) is None:
	return 1
Примечания
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.

Функция delete_from_table()
Функция delete_from_table() используется для удаления строки, в столбце которой есть совпадения с условием.
delete_from_table(dataBase: str, table_name: str, condition: str, condition_value: str | int) -> bool

Функция delete_from_table() принимает четыре аргумента:

  1. dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Примечания
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
  1. table_name - название таблицы в базе данных. Должен передаваться в формате строки.

  2. condition - параметер, по которому будет производится поиск в таблице.

  3. condition_value - значение параметра, по которому будет производится поиск в таблице.

Пример использования:

if RegRequests.delete_from_table(
	dataBase="path/filename",
	table_name="your_table_name",
	condition="id_",
	condition_value="121212"
) is False:
	return 1
Примечания
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.

Функция delete_table()
Функция delete_table() используется для удаления всех таблицы избазы данных.
delete_table(dataBase: str, table_name: str) -> bool

Функция delete_table() принимает два аргумента:

  1. dataBase - путь до файла базы данных. Должен передаваться в формате строки формата: "path/filename".
Примечания
Предпочтительно хранить файл базы данных не глубже одной поддиректории от main файла
  1. table_name - название таблицы в базе данных. Должен передаваться в формате строки.

Пример использования:

if RegRequests.delete_table(
	dataBase="path/filename",
	table_name="your_table_name"
) is False:
	return 1
Примечания
В асинхронном режиме должна вызываться из кроутины и должно присутствовать ключевое слово await.

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

cooldb-0.1.5.tar.gz (7.1 kB view hashes)

Uploaded Source

Built Distribution

cooldb-0.1.5-py3-none-any.whl (8.2 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