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 employee
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def notify_call_escalated(self, call): # ...
|
def notify_call_escalated(self, call):
|
||||||
def notify_call_completed(self, call): # ...
|
pass
|
||||||
def dispatch_queued_call_to_newly_freed_employee(self, call, employee): # ...
|
|
||||||
|
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):
|
def possible_scores(self):
|
||||||
"""Return a list of possible scores, taking Aces into account."""
|
"""Return a list of possible scores, taking Aces into account."""
|
||||||
# ...
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Deck(object):
|
class Deck(object):
|
||||||
@@ -113,4 +113,5 @@ class Deck(object):
|
|||||||
return None
|
return None
|
||||||
return card
|
return card
|
||||||
|
|
||||||
def shuffle(self): # ...
|
def shuffle(self):
|
||||||
|
pass
|
||||||
|
|||||||
@@ -11,9 +11,14 @@ class LinkedList(object):
|
|||||||
self.head = None
|
self.head = None
|
||||||
self.tail = None
|
self.tail = None
|
||||||
|
|
||||||
def move_to_front(self, node): # ...
|
def move_to_front(self, node):
|
||||||
def append_to_front(self, node): # ...
|
pass
|
||||||
def remove_from_tail(self): # ...
|
|
||||||
|
def append_to_front(self, node):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def remove_from_tail(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Cache(object):
|
class Cache(object):
|
||||||
|
|||||||
@@ -6,11 +6,20 @@ class UserService(object):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.users_by_id = {} # key: user id, value: User
|
self.users_by_id = {} # key: user id, value: User
|
||||||
|
|
||||||
def add_user(self, user_id, name, pass_hash): # ...
|
def add_user(self, user_id, name, pass_hash):
|
||||||
def remove_user(self, user_id): # ...
|
pass
|
||||||
def add_friend_request(self, from_user_id, to_user_id): # ...
|
|
||||||
def approve_friend_request(self, from_user_id, to_user_id): # ...
|
def remove_user(self, user_id):
|
||||||
def reject_friend_request(self, from_user_id, to_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):
|
class User(object):
|
||||||
@@ -25,12 +34,23 @@ class User(object):
|
|||||||
self.received_friend_requests_by_friend_id = {} # key: friend id, value: AddRequest
|
self.received_friend_requests_by_friend_id = {} # key: friend id, value: AddRequest
|
||||||
self.sent_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_user(self, friend_id, message):
|
||||||
def message_group(self, group_id, message): # ...
|
pass
|
||||||
def send_friend_request(self, friend_id): # ...
|
|
||||||
def receive_friend_request(self, friend_id): # ...
|
def message_group(self, group_id, message):
|
||||||
def approve_friend_request(self, friend_id): # ...
|
pass
|
||||||
def reject_friend_request(self, friend_id): # ...
|
|
||||||
|
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):
|
class Chat(metaclass=ABCMeta):
|
||||||
@@ -51,8 +71,11 @@ class PrivateChat(Chat):
|
|||||||
|
|
||||||
class GroupChat(Chat):
|
class GroupChat(Chat):
|
||||||
|
|
||||||
def add_user(self, user): # ...
|
def add_user(self, user):
|
||||||
def remove_user(self, user): # ...
|
pass
|
||||||
|
|
||||||
|
def remove_user(self, user):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Message(object):
|
class Message(object):
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from abc import ABCMeta, abstractmethod
|
from abc import ABCMeta, abstractmethod
|
||||||
|
from enum import Enum
|
||||||
|
|
||||||
|
|
||||||
class VehicleSize(Enum):
|
class VehicleSize(Enum):
|
||||||
@@ -92,11 +93,11 @@ class Level(object):
|
|||||||
|
|
||||||
def _find_available_spot(self, vehicle):
|
def _find_available_spot(self, vehicle):
|
||||||
"""Find an available spot where vehicle can fit, or return None"""
|
"""Find an available spot where vehicle can fit, or return None"""
|
||||||
# ...
|
pass
|
||||||
|
|
||||||
def _park_starting_at_spot(self, spot, vehicle):
|
def _park_starting_at_spot(self, spot, vehicle):
|
||||||
"""Occupy starting at spot.spot_number to vehicle.spot_size."""
|
"""Occupy starting at spot.spot_number to vehicle.spot_size."""
|
||||||
# ...
|
pass
|
||||||
|
|
||||||
|
|
||||||
class ParkingSpot(object):
|
class ParkingSpot(object):
|
||||||
@@ -117,5 +118,8 @@ class ParkingSpot(object):
|
|||||||
return False
|
return False
|
||||||
return vehicle.can_fit_in_spot(self)
|
return vehicle.can_fit_in_spot(self)
|
||||||
|
|
||||||
def park_vehicle(self, vehicle): # ...
|
def park_vehicle(self, vehicle):
|
||||||
def remove_vehicle(self): # ...
|
pass
|
||||||
|
|
||||||
|
def remove_vehicle(self):
|
||||||
|
pass
|
||||||
|
|||||||
@@ -61,3 +61,4 @@ class UserGraphService(object):
|
|||||||
def bfs(self, source, dest):
|
def bfs(self, source, dest):
|
||||||
# Use self.visited_ids to track visited nodes
|
# Use self.visited_ids to track visited nodes
|
||||||
# Use self.lookup to translate a person_id to a Person
|
# Use self.lookup to translate a person_id to a Person
|
||||||
|
pass
|
||||||
|
|||||||
@@ -2,33 +2,33 @@
|
|||||||
|
|
||||||
class PagesDataStore(object):
|
class PagesDataStore(object):
|
||||||
|
|
||||||
def __init__(self, db);
|
def __init__(self, db):
|
||||||
self.db = db
|
self.db = db
|
||||||
...
|
pass
|
||||||
|
|
||||||
def add_link_to_crawl(self, url):
|
def add_link_to_crawl(self, url):
|
||||||
"""Add the given link to `links_to_crawl`."""
|
"""Add the given link to `links_to_crawl`."""
|
||||||
...
|
pass
|
||||||
|
|
||||||
def remove_link_to_crawl(self, url):
|
def remove_link_to_crawl(self, url):
|
||||||
"""Remove the given link from `links_to_crawl`."""
|
"""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."""
|
"""Reduce the priority of a link in `links_to_crawl` to avoid cycles."""
|
||||||
...
|
pass
|
||||||
|
|
||||||
def extract_max_priority_page(self):
|
def extract_max_priority_page(self):
|
||||||
"""Return the highest priority link in `links_to_crawl`."""
|
"""Return the highest priority link in `links_to_crawl`."""
|
||||||
...
|
pass
|
||||||
|
|
||||||
def insert_crawled_link(self, url, signature):
|
def insert_crawled_link(self, url, signature):
|
||||||
"""Add the given link to `crawled_links`."""
|
"""Add the given link to `crawled_links`."""
|
||||||
...
|
pass
|
||||||
|
|
||||||
def crawled_similar(self, signature):
|
def crawled_similar(self, signature):
|
||||||
"""Determine if we've already crawled a page matching the given signature"""
|
"""Determine if we've already crawled a page matching the given signature"""
|
||||||
...
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Page(object):
|
class Page(object):
|
||||||
@@ -41,7 +41,7 @@ class Page(object):
|
|||||||
|
|
||||||
def create_signature(self):
|
def create_signature(self):
|
||||||
# Create signature based on url and contents
|
# Create signature based on url and contents
|
||||||
...
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Crawler(object):
|
class Crawler(object):
|
||||||
|
|||||||
Reference in New Issue
Block a user