@@ -13,7 +13,7 @@ def create_database(database, *args):
|
13 | 13 |
|
14 | 14 | try:
|
15 | 15 |
|
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") |
17 | 17 |
|
18 | 18 | except FileExistsError:
|
19 | 19 | return Fore.LIGHTWHITE_EX + "Database already exists"
|
@@ -138,6 +138,69 @@ def write_in_file(database, file, *content):
|
138 | 138 | return Fore.LIGHTWHITE_EX + f"Database \"{database}\" or File \"{file}\" not found!"
|
139 | 139 |
|
140 | 140 |
|
| 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 | + |
141 | 204 | def check_table_content(database, table, *args):
|
142 | 205 | '''
|
143 | 206 | Console command
|
@@ -168,6 +231,19 @@ def check_file_content(database, file_name, *border):
|
168 | 231 | return []
|
169 | 232 |
|
170 | 233 |
|
| 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 | + |
171 | 247 | def delete_lines(database, path, file_name, *lines):
|
172 | 248 | '''
|
173 | 249 | Console command
|
@@ -271,6 +347,24 @@ def delete_file(database, *files):
|
271 | 347 | return Fore.LIGHTWHITE_EX + "File/s deleted!"
|
272 | 348 |
|
273 | 349 |
|
| 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 | + |
274 | 368 | def code_saver(user_input, code_file, new_line):
|
275 | 369 | '''
|
276 | 370 | Saves the code in the code file.
|
@@ -329,7 +423,7 @@ def run_program():
|
329 | 423 |
|
330 | 424 | code_saver(operation_code, file, '\n')
|
331 | 425 |
|
332 |
| -if len(operation) >= 3: |
| 426 | +if len(operation) >= 2: |
333 | 427 | if operation[-1]:
|
334 | 428 |
|
335 | 429 | if operation[:-1] == ["create", "database"]:
|
@@ -406,6 +500,15 @@ def run_program():
|
406 | 500 |
|
407 | 501 | code_saver(text[-3:], file, '\n\n\n')
|
408 | 502 |
|
| 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 | + |
409 | 512 | elif operation[0] == "get" and operation[1] == "all":
|
410 | 513 |
|
411 | 514 | lines = check_table_content(database, operation[-1])
|
@@ -418,6 +521,9 @@ def run_program():
|
418 | 521 | print()
|
419 | 522 | [print(line) for line in lines]
|
420 | 523 |
|
| 524 | +elif operation[0] == "get": |
| 525 | +print(check_queue_content(database, operation[-1])) |
| 526 | + |
421 | 527 | elif len(operation) >= 5:
|
422 | 528 | if operation[0] == "del" and operation[3] == "lines":
|
423 | 529 | try:
|
@@ -440,3 +546,5 @@ def run_program():
|
440 | 546 | if "lines" not in operation:
|
441 | 547 | print(delete_file(database, *operation[2:]))
|
442 | 548 |
|
| 549 | +elif operation[0] == "del" and operation[1] == "queue" or operation[1] == "queues": |
| 550 | +print(delete_queue(database, *operation[2:])) |
0 commit comments