@@ -13,7 +13,7 @@ def create_database(database, *args):
1313
1414 try :
1515
16- os .mkdir (f"databases/{ database } " ), os .mkdir (f"databases/{ database } /files" ), os .mkdir (f"databases/{ database } /tables" )
16+ os .mkdir (f"databases/{ database } " ), os .mkdir (f"databases/{ database } /files" ), os .mkdir (f"databases/{ database } /tables" ), os . mkdir ( f"databases/ { database } /queues" )
1717
1818 except FileExistsError :
1919 return Fore .LIGHTWHITE_EX + "Database already exists"
@@ -138,6 +138,69 @@ def write_in_file(database, file, *content):
138138 return Fore .LIGHTWHITE_EX + f"Database \" { database } \" or File \" { file } \" not found!"
139139
140140
141+ def create_queue (database , queue_file_name , * args ):
142+ '''
143+ Console command
144+
145+ CREATE QUEUE QueueName
146+
147+ or
148+
149+ CREATE QUE QueueName
150+
151+ or
152+
153+ CREATE Q QueueName
154+ '''
155+ 156+ if os .path .exists (f"databases/{ database } /queues/{ queue_file_name } .txt" ):
157+ return Fore .LIGHTWHITE_EX + "Queue already exists"
158+ 159+ file = open (f"databases/{ database } /queues/{ queue_file_name } .txt" , 'x' )
160+ file .close ()
161+ 162+ return Fore .LIGHTWHITE_EX + f"Queue \" { queue_file_name } \" was created!"
163+ 164+ 165+ def add_to_queue (database , queue , * items ):
166+ '''
167+ Console command
168+ ADD TO QueueName firstItem secondItem thirdItem
169+ '''
170+ 171+ if os .path .exists (f"databases/{ database } /queues/{ queue } .txt" ):
172+ with open (f"databases/{ database } /queues/{ queue } .txt" , "a+" ) as q :
173+ for item in items :
174+ q .write (f"{ item } \n " )
175+ 176+ return Fore .LIGHTWHITE_EX + "Items added to queue!"
177+ 178+ return Fore .LIGHTWHITE_EX + f"Database \" { database } \" or Queue \" { queue } \" not found!"
179+ 180+ 181+ def remove_from_queue (database , queue , * args ):
182+ '''
183+ Console command
184+ REMOVE FROM QueueName
185+ '''
186+ 187+ if os .path .exists (f"databases/{ database } /queues/{ queue } .txt" ):
188+ 189+ q = [item for item in open (f"databases/{ database } /queues/{ queue } .txt" , "r" )][1 :]
190+ 191+ os .remove (f"databases/{ database } /queues/{ queue } .txt" )
192+ f = open (f"databases/{ database } /queues/{ queue } .txt" , "a+" )
193+ 194+ for item in q :
195+ f .write (f"{ item } " )
196+ 197+ f .close ()
198+ 199+ return "First element from queue removed!"
200+ 201+ return f"Queue \" { queue } \" not found!"
202+ 203+ 141204def check_table_content (database , table , * args ):
142205 '''
143206 Console command
@@ -168,6 +231,19 @@ def check_file_content(database, file_name, *border):
168231 return []
169232
170233
234+ def check_queue_content (database , queue , * args ):
235+ '''
236+ Console command
237+ GET QueueName
238+ '''
239+ 240+ if os .path .exists (f"databases/{ database } /queues/{ queue } .txt" ):
241+ q = [line for line in open (f"databases/{ database } /queues/{ queue } .txt" , "r" )]
242+ return ', ' .join (q )
243+ 244+ return f"Queue { queue } not found!"
245+ 246+ 171247def delete_lines (database , path , file_name , * lines ):
172248 '''
173249 Console command
@@ -271,6 +347,24 @@ def delete_file(database, *files):
271347 return Fore .LIGHTWHITE_EX + "File/s deleted!"
272348
273349
350+ def delete_queue (database , * queues ):
351+ '''
352+ Console command
353+
354+ One Queue:
355+ DEL QUEUE QueueName
356+
357+ More Than One Queue:
358+ DEL QUEUES FirstQueueName SecondQueueName ThirdQueueName...
359+ '''
360+ 361+ for queue in queues :
362+ if os .path .exists (f"databases/{ database } /queues/{ queue } .txt" ):
363+ os .remove (f"databases/{ database } /queues/{ queue } .txt" )
364+ 365+ return Fore .LIGHTWHITE_EX + "Queue/s deleted!"
366+ 367+ 274368def code_saver (user_input , code_file , new_line ):
275369 '''
276370 Saves the code in the code file.
@@ -329,7 +423,7 @@ def run_program():
329423
330424 code_saver (operation_code , file , '\n ' )
331425
332- if len (operation ) >= 3 :
426+ if len (operation ) >= 2 :
333427 if operation [- 1 ]:
334428
335429 if operation [:- 1 ] == ["create" , "database" ]:
@@ -406,6 +500,15 @@ def run_program():
406500
407501 code_saver (text [- 3 :], file , '\n \n \n ' )
408502
503+ elif operation [0 ] == "create" and (operation [1 ] == "queue" or operation [1 ] == "que" or operation [1 ] == "q" ):
504+ print (create_queue (database , operation [- 1 ]))
505+ 506+ elif operation [0 ] == "add" and operation [1 ] == "to" :
507+ print (add_to_queue (database , operation [2 ], * operation [3 :]))
508+ 509+ elif operation [0 ] == "remove" and operation [1 ] == "from" :
510+ print (remove_from_queue (database , operation [- 1 ]))
511+ 409512 elif operation [0 ] == "get" and operation [1 ] == "all" :
410513
411514 lines = check_table_content (database , operation [- 1 ])
@@ -418,6 +521,9 @@ def run_program():
418521 print ()
419522 [print (line ) for line in lines ]
420523
524+ elif operation [0 ] == "get" :
525+ print (check_queue_content (database , operation [- 1 ]))
526+ 421527 elif len (operation ) >= 5 :
422528 if operation [0 ] == "del" and operation [3 ] == "lines" :
423529 try :
@@ -440,3 +546,5 @@ def run_program():
440546 if "lines" not in operation :
441547 print (delete_file (database , * operation [2 :]))
442548
549+ elif operation [0 ] == "del" and operation [1 ] == "queue" or operation [1 ] == "queues" :
550+ print (delete_queue (database , * operation [2 :]))
0 commit comments