From e9046a96f1edd2d52594785998d90a14d10a5803 Mon Sep 17 00:00:00 2001 From: huker667 Date: Sun, 10 May 2026 09:51:20 +0300 Subject: init commit v0.7 --- uzbekdb/__init__.py | 3 +++ uzbekdb/database.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 uzbekdb/__init__.py create mode 100644 uzbekdb/database.py (limited to 'uzbekdb') diff --git a/uzbekdb/__init__.py b/uzbekdb/__init__.py new file mode 100644 index 0000000..001a104 --- /dev/null +++ b/uzbekdb/__init__.py @@ -0,0 +1,3 @@ +""" + UzbekDB Python library - made by msh356. +""" diff --git a/uzbekdb/database.py b/uzbekdb/database.py new file mode 100644 index 0000000..f27d107 --- /dev/null +++ b/uzbekdb/database.py @@ -0,0 +1,56 @@ +""" + UzbekDB database +""" + +def _is_correct(dbstr: str): + try: + db = [x for x in dbstr.split("\n") if x] + except Exception: + return False + if len(db) == 0: + return False + else: + return True + +def _is_multiline(dbstr: str): + if _is_correct(dbstr): + db = [x for x in dbstr.split("\n") if x] + if len(db) == 1: + return False + else: + return True + +def _return_correct_type(s): + for t in (int, float, complex): + try: + return t(s) + except ValueError: + continue + return s + +def loads(dbstr: str): + if _is_correct(dbstr): + db = [x for x in dbstr.split("\n") if x] + multiline = _is_multiline(dbstr) + if multiline: + dbobj = {} + for i in db: + dbel = i.split(" | ") + dbelc = [] + for i in dbel: + dbelc.append(_return_correct_type(i)) + dbobj[dbelc[0]] = dbelc[1:] + else: + dbobj = [] + for i in db[0].split(" | "): + dbobj.append(_return_correct_type(i)) + return dbobj + +def dumps(dbobj): + dbstr = "" + if isinstance(dbobj, dict): + for k,v in dbobj.items(): + dbstr = dbstr + f"{k} | {' | '.join(map(str, v))}\n" + elif isinstance(dbobj, list): + dbstr = " | ".join(map(str, dbobj)) + return dbstr -- cgit v1.3.1