diff options
| author | huker667 <huker@tuta.io> | 2026-05-10 09:51:20 +0300 |
|---|---|---|
| committer | huker667 <huker@tuta.io> | 2026-05-10 09:51:20 +0300 |
| commit | e9046a96f1edd2d52594785998d90a14d10a5803 (patch) | |
| tree | b2a0119be219839dff66d07e638a6775a568b0eb /uzbekdb/database.py | |
| download | qulay-e9046a96f1edd2d52594785998d90a14d10a5803.tar.gz qulay-e9046a96f1edd2d52594785998d90a14d10a5803.tar.bz2 qulay-e9046a96f1edd2d52594785998d90a14d10a5803.zip | |
init commit v0.7master
Diffstat (limited to 'uzbekdb/database.py')
| -rw-r--r-- | uzbekdb/database.py | 56 |
1 files changed, 56 insertions, 0 deletions
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 |