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
|
||||
|
||||
@@ -61,3 +61,4 @@ class UserGraphService(object):
|
||||
def bfs(self, source, dest):
|
||||
# Use self.visited_ids to track visited nodes
|
||||
# Use self.lookup to translate a person_id to a Person
|
||||
pass
|
||||
|
||||
@@ -2,33 +2,33 @@
|
||||
|
||||
class PagesDataStore(object):
|
||||
|
||||
def __init__(self, db);
|
||||
def __init__(self, db):
|
||||
self.db = db
|
||||
...
|
||||
pass
|
||||
|
||||
def add_link_to_crawl(self, url):
|
||||
"""Add the given link to `links_to_crawl`."""
|
||||
...
|
||||
pass
|
||||
|
||||
def remove_link_to_crawl(self, url):
|
||||
"""Remove the given link from `links_to_crawl`."""
|
||||
...
|
||||
pass
|
||||
|
||||
def reduce_priority_link_to_crawl(self, url)
|
||||
def reduce_priority_link_to_crawl(self, url):
|
||||
"""Reduce the priority of a link in `links_to_crawl` to avoid cycles."""
|
||||
...
|
||||
pass
|
||||
|
||||
def extract_max_priority_page(self):
|
||||
"""Return the highest priority link in `links_to_crawl`."""
|
||||
...
|
||||
pass
|
||||
|
||||
def insert_crawled_link(self, url, signature):
|
||||
"""Add the given link to `crawled_links`."""
|
||||
...
|
||||
pass
|
||||
|
||||
def crawled_similar(self, signature):
|
||||
"""Determine if we've already crawled a page matching the given signature"""
|
||||
...
|
||||
pass
|
||||
|
||||
|
||||
class Page(object):
|
||||
@@ -41,7 +41,7 @@ class Page(object):
|
||||
|
||||
def create_signature(self):
|
||||
# Create signature based on url and contents
|
||||
...
|
||||
pass
|
||||
|
||||
|
||||
class Crawler(object):
|
||||
|
||||
Reference in New Issue
Block a user