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 и начиная с версии 0.2 ряд функция был дополнен классом MultiConditiionsRequests, далее в документации функции, которые вошли в этот класс будут помечены:

Функция 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, 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.
###Для класса ReqRequests###
fetch_all_where(dataBase: str, table_name: str, condition: str, condition_value: str | int) -> list[dict] | None

###Для класса MultiConditionsRequests###
fetch_all_where(dataBase: str, table_name: str, condition: list, condition_value: list) -> list[dict] | None

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

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

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

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

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

###Для класса ReqRequests###
if RegRequests.fetch_all_where(
	dataBase="path/filename",
	table_name="your_table_name",
	condition="id_",
	condition_value="121212"
) is None:
	return 1

###Для класса MultiConditionsRequests###
if MultiConditionsRequests.fetch_all_where(
	dataBase="path/filename",
	table_name="your_table_name",
	condition=[
		"id_",
		"time"
	],
	condition_value=[
		"121212",
		"145353"
	]
) 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() используется для извлечения одного элемента таблицы.
###Для класса ReqRequests###
fetch_one(dataBase: str, table_name: str, column_name: str, condition: str, condition_value: str | int) -> Any | None

###Для класса MultiConditionsRequests###
fetch_one(dataBase: str, table_name: str, column_name: str, condition: list, condition_value: list) -> Any | None

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

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

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

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

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

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

###Для класса ReqRequests###
if RegRequests.fetch_one(
	dataBase="path/filename",
	table_name="your_table_name",
	column_name="XYN",
	condition="id_",
	condition_value="121212"
) is None:
	return 1

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

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


###Для класса MultiConditionsRequests###
fetch_one_column(dataBase: str, table_name: str, column_name: str, condition: list, condition_value: list) -> tuple | None

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

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

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

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

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

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

###Для класса ReqRequests###
if RegRequests.fetch_one(
	dataBase="path/filename",
	table_name="your_table_name",
	column_name="XYN",
	condition="id_",
	condition_value="121212"
) is None:
	return 1

###Для класса MultiConditionsRequests###
if MultiConditionsRequests.fetch_one(
	dataBase="path/filename",
	table_name="your_table_name",
	column_name="XYN",
	condition=[
		"id_",
		"time"
	],
	condition_value=[
		"121212",
		"145353"
	]
) 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() используется для обновления определенного элемента определенного столбца.
###Для класса ReqRequests###
update_table(dataBase: str, table_name: str, column_name: str, new_meaning: str | int, condition: str, condition_value: str | int) -> bool

###Для класса MultiConditionsRequests###
update_table(dataBase: str, table_name: str, column_name: str, new_meaning: str | int, condition: list, condition_value: list) -> bool

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

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

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

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

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

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

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

###Для класса ReqRequests###
if RegRequests.update_table(
	dataBase="path/filename",
	table_name="your_table_name",
	column_name="XYN",
	new_meaning="URAURAURAURAURA"
	condition="id_",
	condition_value="121212"
) is False:
	return 1

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

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

###Для класса MultiConditionsRequests###
delete_from_table(dataBase: str, table_name: str, condition: list, condition_value: list) -> bool

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

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

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

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

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

###Для класса ReqRequests###
if RegRequests.delete_from_table(
	dataBase="path/filename",
	table_name="your_table_name",
	condition="id_",
	condition_value="121212"
) is False:
	return 1

###Для класса MultiConditionsRequests###
if MultiConditionsRequests.delete_from_table(
	dataBase="path/filename",
	table_name="your_table_name",
	condition=[
		"id_",
		"time"
	],
	condition_value=[
		"121212",
		"145353"
	]
) 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.2.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

cooldb-0.2-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file cooldb-0.2.tar.gz.

File metadata

  • Download URL: cooldb-0.2.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for cooldb-0.2.tar.gz
Algorithm Hash digest
SHA256 ab48aaf6f8891ead42803d534931e4e1e59b44e2f4faa41a0194ce0c859a48c1
MD5 f591cc0db9a51648075a8d9228892e63
BLAKE2b-256 85faed6e27d433c164e3bc9446e0a0e4bf3cc87ff1ac474489879b593b970940

See more details on using hashes here.

File details

Details for the file cooldb-0.2-py3-none-any.whl.

File metadata

  • Download URL: cooldb-0.2-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for cooldb-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 23968a076f2a762c2da27876400fc5c58b3dc48feaf5ccabd530beb06f49e8c7
MD5 13d7b9340383417b3b72219471e3cf95
BLAKE2b-256 2c0c85880461f589926a40a489a2228edd4f78a84ae9d20f6bdfae7988948b88

See more details on using hashes here.

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