1
- from ast import For
2
1
import os
3
2
import json
3
+ import re
4
4
5
- from colorama import Fore
6
- from colorama import Style
5
+ from colorama import Fore , Style
7
6
8
7
def print_it (color , text ):
9
8
if color == "red" :
@@ -15,75 +14,76 @@ def print_it(color, text):
15
14
16
15
class Database (object ):
17
16
""" python database.py """
18
- def __init__ (self , db_path ):
17
+ def __init__ (self , db_path , overwrite_db = False ):
19
18
self .db_path = db_path
20
- self .db = self .load_db ( )
19
+ self .db = self .__init_db ( overwrite_db )
21
20
22
- def load_db (self ):
23
- if os .path .exists (self .db_path ):
24
- with open (self .db_path , 'r' ) as f :
25
- return json .load (f )
26
- else :
21
+ def __load_db_from_file (self ):
22
+ with open (self .db_path , 'r' ) as f :
23
+ return json .load (f )
24
+
25
+ def __init_db (self , overwrite_db ):
26
+ if not overwrite_db and os .path .exists (self .db_path ):
27
+ print_it ("green" , "Loading database from file" )
28
+ return self .__load_db_from_file ()
29
+
30
+ elif overwrite_db and os .path .exists (self .db_path ):
31
+ print_it ("blue" , "Overwriting database" )
32
+ self .clear ()
33
+ return self .db
34
+
35
+ elif not os .path .exists (self .db_path ):
36
+ print_it ("green" , "Creating new database" )
27
37
return {}
28
38
29
- def save_db (self , data ):
30
- with open ( self . db_path , 'w+' ) as f :
31
- try :
39
+ def __dump_db (self , data ):
40
+ try :
41
+ with open ( self . db_path , 'w+' ) as f :
32
42
json .dump (data , f , indent = 4 )
33
43
return True
34
- except Exception as e :
35
- return False
44
+ except Exception as e :
45
+ return False
36
46
37
47
def set (self , key , value , overwrite = False ):
38
-
39
48
if key not in self .db :
40
49
print_it ("green" , "Key is not present in the database, adding in the database" )
50
+
41
51
self .db [key ] = value
42
- self .save_db (self .db )
52
+ self .__dump_db (self .db )
53
+ return True
43
54
44
55
elif not overwrite and key in self .db :
45
56
print_it ("red" , "Key already exists" )
57
+ return False
46
58
47
59
elif overwrite and key in self .db :
48
60
print_it ("blue" , "Key already exists, overwriting the value" )
49
61
self .db [key ] = value
50
- self .save_db (self .db )
62
+ self .__dump_db (self .db )
63
+ return True
51
64
52
65
def get (self , key ):
53
66
if key in self .db :
54
67
return self .db [key ]
55
68
else :
56
69
print_it ("red" , "Key not found" )
57
70
return False
58
-
59
- def delete_db (self ):
60
- os .remove (self .db_path )
61
- print_it ("green" , "Database deleted" )
62
-
63
71
64
72
def delete (self , key ):
65
73
if key in self .db :
66
74
del self .db [key ]
67
- self .save_db (self .db )
75
+ self .__dump_db (self .db )
68
76
print_it ("green" , "Key deleted" )
69
77
else :
70
78
print_it ("red" , "Key not found" )
71
-
72
-
73
- def list (self ):
79
+
80
+ def get_db ( self ):
81
+ print (self . db )
74
82
return self .db
75
83
76
84
def clear (self ):
77
85
self .db = {}
78
- self .save_db (self .db )
86
+ self .__dump_db (self .db )
79
87
print_it ("green" , "Database cleared" )
80
-
81
-
88
+ return True
82
89
83
- if __name__ == '__main__' :
84
- db = Database ('db.json' )
85
- data = db .load_db ()
86
- db .set ('key' , 'value' , overwrite = True )
87
- out = db .list ()
88
- print (out )
89
- db .clear ()
0 commit comments