Skip to content

Commit 0e8a9f7

Browse files
committed
Rename directories
1 parent 8035936 commit 0e8a9f7

File tree

5 files changed

+158
-0
lines changed

5 files changed

+158
-0
lines changed

.idea/workspace.xml

Lines changed: 46 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

problems/contacts.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class Contact:
2+
def __init__(self, name, default_fn=lambda _: None):
3+
self.name = name
4+
self.vals = dict()
5+
self.default_fn = default_fn
6+
7+
def __getattr__(self, item):
8+
if item == "name":
9+
return self.name
10+
return self.vals[item] if item in self.vals else self.default_fn()
11+
12+
def __setattr__(self, item, value):
13+
if item == "name":
14+
self.name = value
15+
else:
16+
self.vals[item] = value
17+
18+
def __repr__(self):
19+
lines = [f"Name: {self.name}"]
20+
if self.vals:
21+
lines.append("attributes:")
22+
lines.extend(f"{k}: {v}" for k, v in self.vals.items())
23+
return "\n".join(lines)
24+
25+
john = Contact("John Smith")
26+
john.age = 31
27+
print(john)

problems/database.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from multiprocessing import Process
2+
import MyDatabaseWrapper
3+
import MyLogger
4+
import time
5+
import sys
6+
7+
8+
class APIProcessor:
9+
def __init__(self, database_wrapper: MyDatabaseWrapper, logger: MyLogger):
10+
self.database_wrapper = database_wrapper
11+
self.logger = logger
12+
13+
def process(self, id: list) -> list:
14+
db_call_process = Process(target=self.insert_data, args=(id,), daemon=True)
15+
db_call_process.start()
16+
17+
# Further code which processes the request.
18+
19+
def insert_data(self, id: list) -> bool:
20+
for i in id:
21+
self.logger.info("Processing request for id: %s", i)
22+
self.database_wrapper.insert(i)
23+
time.sleep(1)
24+
return True
25+
26+
27+
if __name__ == "__main__":
28+
args = sys.argv[1:] # assuming the ids are passed as command line arguments
29+
my_processor = APIProcessor(MyDatabaseWrapper(), MyLogger())
30+
proc = Process(target=my_processor.process, args=(args,))
31+
proc.start()

problems/room_booking.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from datetime import datetime, timedelta
2+
3+
class SingleRoom:
4+
def __init__(self, room_number):
5+
self.__room_number = room_number
6+
self.__reservations = []
7+
self.__price = 100
8+
9+
@property
10+
def price(self):
11+
return self.__price
12+
13+
@price.setter
14+
def price(self, value):
15+
if value < 0:
16+
raise ValueError("Price can't be negative")
17+
self.__price = value
18+
19+
def reserve(self, reservation: tuple):
20+
date_from, date_to = reservation
21+
if date_from > date_to:
22+
reservation = ([date_to, date_from], reservation[1])
23+
24+
is_available = True
25+
for dates, _ in self.__reservations:
26+
booked_from, booked_to = dates
27+
if date_to <= booked_from or date_from >= booked_to:
28+
continue
29+
30+
is_available = False
31+
break
32+
33+
if not is_available:
34+
return False
35+
36+
self.__reservations.append(reservation)
37+
return True

rename.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import os
2+
import shutil
3+
4+
# Loop through directories from 00_* to 12_*
5+
for i in range(13):
6+
src_dir = "{:02d}_".format(i)
7+
dest_dir = "{:02d}_".format(i + 1)
8+
9+
# Check if the source directory exists
10+
if os.path.exists(src_dir):
11+
# Perform the rename operation
12+
shutil.move(src_dir, dest_dir)
13+
print(f"Moved {src_dir} to {dest_dir}")
14+
15+
# After renaming, you might want to stage and commit the changes in Git
16+
os.system("git add .")
17+
os.system("git commit -m 'Rename directories'")

0 commit comments

Comments
 (0)