mirror of
https://github.com/donnemartin/system-design-primer.git
synced 2025-12-15 17:38:56 +03:00
Convert all .py files to be valid Python
`raise NotImplementedError('Please replace this line with your code...')` signals to the user where they need to put their code.
This approach enables the codebase to be tested with lint tools like flake8, pyflakes, pylint, etc.
This commit is contained in:
@@ -112,6 +112,11 @@ class CallCenter(object):
|
||||
return employee
|
||||
return None
|
||||
|
||||
def notify_call_escalated(self, call): # ...
|
||||
def notify_call_completed(self, call): # ...
|
||||
def dispatch_queued_call_to_newly_freed_employee(self, call, employee): # ...
|
||||
def notify_call_escalated(self, call):
|
||||
pass
|
||||
|
||||
def notify_call_completed(self, call):
|
||||
pass
|
||||
|
||||
def dispatch_queued_call_to_newly_freed_employee(self, call, employee):
|
||||
pass
|
||||
|
||||
@@ -92,7 +92,7 @@ class BlackJackHand(Hand):
|
||||
|
||||
def possible_scores(self):
|
||||
"""Return a list of possible scores, taking Aces into account."""
|
||||
# ...
|
||||
pass
|
||||
|
||||
|
||||
class Deck(object):
|
||||
@@ -113,4 +113,5 @@ class Deck(object):
|
||||
return None
|
||||
return card
|
||||
|
||||
def shuffle(self): # ...
|
||||
def shuffle(self):
|
||||
pass
|
||||
|
||||
@@ -11,9 +11,14 @@ class LinkedList(object):
|
||||
self.head = None
|
||||
self.tail = None
|
||||
|
||||
def move_to_front(self, node): # ...
|
||||
def append_to_front(self, node): # ...
|
||||
def remove_from_tail(self): # ...
|
||||
def move_to_front(self, node):
|
||||
pass
|
||||
|
||||
def append_to_front(self, node):
|
||||
pass
|
||||
|
||||
def remove_from_tail(self):
|
||||
pass
|
||||
|
||||
|
||||
class Cache(object):
|
||||
@@ -26,7 +31,7 @@ class Cache(object):
|
||||
|
||||
def get(self, query)
|
||||
"""Get the stored query result from the cache.
|
||||
|
||||
|
||||
Accessing a node updates its position to the front of the LRU list.
|
||||
"""
|
||||
node = self.lookup[query]
|
||||
@@ -37,7 +42,7 @@ class Cache(object):
|
||||
|
||||
def set(self, results, query):
|
||||
"""Set the result for the given query key in the cache.
|
||||
|
||||
|
||||
When updating an entry, updates its position to the front of the LRU list.
|
||||
If the entry is new and the cache is at capacity, removes the oldest entry
|
||||
before the new entry is added.
|
||||
@@ -58,4 +63,4 @@ class Cache(object):
|
||||
# Add the new key and value
|
||||
new_node = Node(results)
|
||||
self.linked_list.append_to_front(new_node)
|
||||
self.lookup[query] = new_node
|
||||
self.lookup[query] = new_node
|
||||
|
||||
@@ -6,11 +6,20 @@ class UserService(object):
|
||||
def __init__(self):
|
||||
self.users_by_id = {} # key: user id, value: User
|
||||
|
||||
def add_user(self, user_id, name, pass_hash): # ...
|
||||
def remove_user(self, user_id): # ...
|
||||
def add_friend_request(self, from_user_id, to_user_id): # ...
|
||||
def approve_friend_request(self, from_user_id, to_user_id): # ...
|
||||
def reject_friend_request(self, from_user_id, to_user_id): # ...
|
||||
def add_user(self, user_id, name, pass_hash):
|
||||
pass
|
||||
|
||||
def remove_user(self, user_id):
|
||||
pass
|
||||
|
||||
def add_friend_request(self, from_user_id, to_user_id):
|
||||
pass
|
||||
|
||||
def approve_friend_request(self, from_user_id, to_user_id):
|
||||
pass
|
||||
|
||||
def reject_friend_request(self, from_user_id, to_user_id):
|
||||
pass
|
||||
|
||||
|
||||
class User(object):
|
||||
@@ -25,12 +34,23 @@ class User(object):
|
||||
self.received_friend_requests_by_friend_id = {} # key: friend id, value: AddRequest
|
||||
self.sent_friend_requests_by_friend_id = {} # key: friend id, value: AddRequest
|
||||
|
||||
def message_user(self, friend_id, message): # ...
|
||||
def message_group(self, group_id, message): # ...
|
||||
def send_friend_request(self, friend_id): # ...
|
||||
def receive_friend_request(self, friend_id): # ...
|
||||
def approve_friend_request(self, friend_id): # ...
|
||||
def reject_friend_request(self, friend_id): # ...
|
||||
def message_user(self, friend_id, message):
|
||||
pass
|
||||
|
||||
def message_group(self, group_id, message):
|
||||
pass
|
||||
|
||||
def send_friend_request(self, friend_id):
|
||||
pass
|
||||
|
||||
def receive_friend_request(self, friend_id):
|
||||
pass
|
||||
|
||||
def approve_friend_request(self, friend_id):
|
||||
pass
|
||||
|
||||
def reject_friend_request(self, friend_id):
|
||||
pass
|
||||
|
||||
|
||||
class Chat(metaclass=ABCMeta):
|
||||
@@ -51,8 +71,11 @@ class PrivateChat(Chat):
|
||||
|
||||
class GroupChat(Chat):
|
||||
|
||||
def add_user(self, user): # ...
|
||||
def remove_user(self, user): # ...
|
||||
def add_user(self, user):
|
||||
pass
|
||||
|
||||
def remove_user(self, user):
|
||||
pass
|
||||
|
||||
|
||||
class Message(object):
|
||||
@@ -77,4 +100,4 @@ class RequestStatus(Enum):
|
||||
UNREAD = 0
|
||||
READ = 1
|
||||
ACCEPTED = 2
|
||||
REJECTED = 3
|
||||
REJECTED = 3
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from abc import ABCMeta, abstractmethod
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class VehicleSize(Enum):
|
||||
@@ -92,11 +93,11 @@ class Level(object):
|
||||
|
||||
def _find_available_spot(self, vehicle):
|
||||
"""Find an available spot where vehicle can fit, or return None"""
|
||||
# ...
|
||||
pass
|
||||
|
||||
def _park_starting_at_spot(self, spot, vehicle):
|
||||
"""Occupy starting at spot.spot_number to vehicle.spot_size."""
|
||||
# ...
|
||||
pass
|
||||
|
||||
|
||||
class ParkingSpot(object):
|
||||
@@ -117,5 +118,8 @@ class ParkingSpot(object):
|
||||
return False
|
||||
return vehicle.can_fit_in_spot(self)
|
||||
|
||||
def park_vehicle(self, vehicle): # ...
|
||||
def remove_vehicle(self): # ...
|
||||
def park_vehicle(self, vehicle):
|
||||
pass
|
||||
|
||||
def remove_vehicle(self):
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user