Repository: exercism/python
Pull request #2556 (2021-09-06 15:51:36)

[Meltdow Mitigation] Changes to docstrings and exemplar file for PyLinting
Related to #2537  & #2535

- [x] Changed the single quoted docstrings to double quoted docstrings and added function descriptions per PEP 257.
- [x] Added two lines between functions in `exemplar.py`, per PyLinting
- [x] Changed multiple returns to single returns in `exemplar.py` to conform to PyLint nags and issues brought up in
         #2535.
- [x] Ran stub and `exemplar.py` files through PyLint to make sure the only nag was for the missing module docstring. 


Patch:
diff --git a/config.json b/config.json
index 21dbb674..32458210 100644
--- a/config.json
+++ b/config.json
@@ -1973,14 +1973,7 @@
         "name": "Accumulate",
         "uuid": "e7351e8e-d3ff-4621-b818-cd55cf05bffd",
         "practices": [],
-        "prerequisites": [
-          "basics",
-          "loops",
-          "numbers",
-          "bools",
-          "conditionals",
-          "lists"
-        ],
+        "prerequisites": [],
         "difficulty": 2,
         "status": "deprecated"
       },
@@ -1989,15 +1982,7 @@
         "name": "Binary",
         "uuid": "49127efa-1124-4f27-bee4-99992e3433de",
         "practices": [],
-        "prerequisites": [
-          "basics",
-          "bools",
-          "numbers",
-          "conditionals",
-          "loops",
-          "strings",
-          "string-methods"
-        ],
+        "prerequisites": [],
         "difficulty": 3,
         "status": "deprecated"
       },
@@ -2006,17 +1991,7 @@
         "name": "Error Handling",
         "uuid": "0dac0feb-e1c8-497e-9a1b-e96e0523eea6",
         "practices": [],
-        "prerequisites": [
-          "basics",
-          "bools",
-          "conditionals",
-          "lists",
-          "loops",
-          "numbers",
-          "strings",
-          "string-methods",
-          "tuples"
-        ],
+        "prerequisites": [],
         "difficulty": 3,
         "status": "deprecated"
       },
@@ -2025,18 +2000,7 @@
         "name": "Hexadecimal",
         "uuid": "6b7f7b1f-c388-4f4c-b924-84535cc5e1a0",
         "practices": [],
-        "prerequisites": [
-          "basics",
-          "bools",
-          "conditionals",
-          "dicts",
-          "lists",
-          "list-methods",
-          "loops",
-          "numbers",
-          "strings",
-          "string-methods"
-        ],
+        "prerequisites": [],
         "difficulty": 3,
         "status": "deprecated"
       },
@@ -2045,17 +2009,7 @@
         "name": "Nucleotide Count",
         "uuid": "105f25ec-7ce2-4797-893e-05e3792ebd91",
         "practices": [],
-        "prerequisites": [
-          "basics",
-          "bools",
-          "conditionals",
-          "dicts",
-          "lists",
-          "list-methods",
-          "loops",
-          "strings",
-          "string-methods"
-        ],
+        "prerequisites": [],
         "difficulty": 2,
         "status": "deprecated"
       },
@@ -2064,18 +2018,7 @@
         "name": "Octal",
         "uuid": "4094d27f-4d03-4308-9fd7-9f3de312afec",
         "practices": [],
-        "prerequisites": [
-          "basics",
-          "bools",
-          "conditionals",
-          "dicts",
-          "lists",
-          "list-methods",
-          "loops",
-          "numbers",
-          "strings",
-          "string-methods"
-        ],
+        "prerequisites": [],
         "difficulty": 3,
         "status": "deprecated"
       },
@@ -2084,18 +2027,7 @@
         "name": "Parallel Letter Frequency",
         "uuid": "da03fca4-4606-48d8-9137-6e40396f7759",
         "practices": [],
-        "prerequisites": [
-          "basics",
-          "bools",
-          "conditionals",
-          "dicts",
-          "lists",
-          "list-methods",
-          "loops",
-          "numbers",
-          "strings",
-          "string-methods"
-        ],
+        "prerequisites": [],
         "difficulty": 3,
         "status": "deprecated"
       },
@@ -2104,18 +2036,7 @@
         "name": "Pascals Triangle",
         "uuid": "e1e1c7d7-c1d9-4027-b90d-fad573182419",
         "practices": [],
-        "prerequisites": [
-          "basics",
-          "bools",
-          "conditionals",
-          "dicts",
-          "lists",
-          "list-methods",
-          "loops",
-          "numbers",
-          "strings",
-          "string-methods"
-        ],
+        "prerequisites": [],
         "difficulty": 3,
         "status": "deprecated"
       },
@@ -2124,13 +2045,7 @@
         "name": "Point Mutations",
         "uuid": "d85ec4f2-c201-4eff-9f3a-831a0cc38e8d",
         "practices": [],
-        "prerequisites": [
-          "basics",
-          "loops",
-          "lists",
-          "conditionals",
-          "numbers"
-        ],
+        "prerequisites": [],
         "difficulty": 3,
         "status": "deprecated"
       },
@@ -2139,15 +2054,7 @@
         "name": "Proverb",
         "uuid": "9fd94229-f974-45bb-97ea-8bfe484f6eb3",
         "practices": [],
-        "prerequisites": [
-          "basics",
-          "bools",
-          "loops",
-          "lists",
-          "conditionals",
-          "strings",
-          "string-methods"
-        ],
+        "prerequisites": [],
         "difficulty": 2,
         "status": "deprecated"
       },
@@ -2156,15 +2063,7 @@
         "name": "Strain",
         "uuid": "b50b29a1-782d-4277-a4d4-23f635fbdaa6",
         "practices": [],
-        "prerequisites": [
-          "basics",
-          "bools",
-          "loops",
-          "lists",
-          "conditionals",
-          "strings",
-          "string-methods"
-        ],
+        "prerequisites": [],
         "difficulty": 3,
         "status": "deprecated"
       },
@@ -2173,18 +2072,7 @@
         "name": "Trinary",
         "uuid": "061a6543-d51d-4619-891b-16f92c6435ca",
         "practices": [],
-        "prerequisites": [
-          "basics",
-          "bools",
-          "dicts",
-          "loops",
-          "lists",
-          "conditionals",
-          "numbers",
-          "sets",
-          "strings",
-          "string-methods"
-        ],
+        "prerequisites": [],
         "difficulty": 4,
         "status": "deprecated"
       },
diff --git a/exercises/concept/little-sisters-essay/string_methods.py b/exercises/concept/little-sisters-essay/string_methods.py
index 50c2bb16..0a50d0f8 100644
--- a/exercises/concept/little-sisters-essay/string_methods.py
+++ b/exercises/concept/little-sisters-essay/string_methods.py
@@ -31,10 +31,10 @@ def clean_up_spacing(sentence):
 def replace_word_choice(sentence, old_word, new_word):
     """
 
-   :param sentence: str a sentence to replace words in.
-   :param new_word: str replacement word
-   :param old_word: str word to replace
-   :return:  str input sentence with new words in place of old words
-   """
+    :param sentence: str a sentence to replace words in.
+    :param new_word: str replacement word
+    :param old_word: str word to replace
+    :return:  str input sentence with new words in place of old words
+    """
 
     pass
diff --git a/exercises/concept/meltdown-mitigation/.meta/exemplar.py b/exercises/concept/meltdown-mitigation/.meta/exemplar.py
index 6791002a..064ab562 100644
--- a/exercises/concept/meltdown-mitigation/.meta/exemplar.py
+++ b/exercises/concept/meltdown-mitigation/.meta/exemplar.py
@@ -1,5 +1,5 @@
 def is_criticality_balanced(temperature, neutrons_emitted):
-    '''
+    """Verify criticality is balanced.
 
     :param temperature: int
     :param neutrons_emitted: int
@@ -9,17 +9,18 @@ def is_criticality_balanced(temperature, neutrons_emitted):
     - The temperature less than 800.
     - The number of neutrons emitted per second greater than 500.
     - The product of temperature and neutrons emitted per second less than 500000.
-    '''
+    """
     output = temperature * neutrons_emitted
+    balanced = False
 
     if (temperature < 800 and neutrons_emitted > 500) and output < 500000:
-        return True
-    else:
-        return False
+        balanced = True
+
+    return balanced
 
 
 def reactor_efficiency(voltage, current, theoretical_max_power):
-    '''
+    """Assess reactor efficiency zone.
 
     :param voltage: int
     :param current: int
@@ -36,21 +37,25 @@ def reactor_efficiency(voltage, current, theoretical_max_power):
     These percentage ranges are calculated as
     (generated power/ theoretical max power)*100
     where generated power = voltage * current
-    '''
+    """
     generated_power = voltage * current
-    percentage_range = (generated_power/theoretical_max_power)*100
+    percentage_range = (generated_power / theoretical_max_power) * 100
+    efficiency_level = 'unknown'
 
     if 80 <= percentage_range <= 100:
-        return  'green'
+        efficiency_level = 'green'
     elif 60 <= percentage_range <= 79:
-        return 'orange'
+        efficiency_level = 'orange'
     elif 30 <= percentage_range <= 59:
-        return 'red'
+        efficiency_level = 'red'
     else:
-        return 'black'
+        efficiency_level = 'black'
+
+    return efficiency_level
+
 
 def fail_safe(temperature, neutrons_produced_per_second, threshold):
-    '''
+    """Assess and return safety range.
 
     :param temperature:
     :param neutrons_produced_per_second:
@@ -60,13 +65,16 @@ def fail_safe(temperature, neutrons_produced_per_second, threshold):
     - `temperature * neutrons per second` < 40% of `threshold` == 'LOW'
     - `temperature * neutrons per second` +/- 10% of `threshold` == 'NORMAL'
     - `temperature * neutron per second` is not in the above-stated ranges ==  'DANGER'
-    '''
+    """
     output = temperature * neutrons_produced_per_second
-    operational_percentage = int((output/threshold) * 100)
+    operational_percentage = int((output / threshold) * 100)
+    safety_range = 'UNKNOWN'
 
     if operational_percentage < 40:
-        return 'LOW'
+        safety_range = 'LOW'
     elif 90 <= operational_percentage <= 110:
-        return 'NORMAL'
+        safety_range = 'NORMAL'
     else:
-        return 'DANGER'
+        safety_range = 'DANGER'
+
+    return safety_range
diff --git a/exercises/concept/meltdown-mitigation/conditionals.py b/exercises/concept/meltdown-mitigation/conditionals.py
index ef0f3b85..05889df9 100644
--- a/exercises/concept/meltdown-mitigation/conditionals.py
+++ b/exercises/concept/meltdown-mitigation/conditionals.py
@@ -1,5 +1,5 @@
 def is_criticality_balanced(temperature, neutrons_emitted):
-    '''
+    """Verify criticality is balanced.
 
     :param temperature: int
     :param neutrons_emitted: int
@@ -9,13 +9,13 @@ def is_criticality_balanced(temperature, neutrons_emitted):
     - The temperature is less than 800.
     - The number of neutrons emitted per second is greater than 500.
     - The product of temperature and neutrons emitted per second is less than 500000.
-    '''
+    """
 
     pass
 
 
 def reactor_efficiency(voltage, current, theoretical_max_power):
-    '''
+    """Assess reactor efficiency zone.
 
     :param voltage: int
     :param current: int
@@ -32,13 +32,13 @@ def reactor_efficiency(voltage, current, theoretical_max_power):
     These percentage ranges are calculated as
     (generated power/ theoretical max power)*100
     where generated power = voltage * current
-    '''
+    """
 
     pass
 
 
 def fail_safe(temperature, neutrons_produced_per_second, threshold):
-    '''
+    """Assess and return safety range.
 
     :param temperature:
     :param neutrons_produced_per_second:
@@ -48,6 +48,6 @@ def fail_safe(temperature, neutrons_produced_per_second, threshold):
     - `temperature * neutrons per second` < 40% of threshold == 'LOW'
     - `temperature * neutrons per second` +/- 10% of `threshold` == 'NORMAL'
     - `temperature * neutron per second` is not in the above-stated ranges ==  'DANGER'
-    '''
+    """
 
     pass
diff --git a/exercises/concept/restaurant-rozalynn/.docs/instructions.md b/exercises/concept/restaurant-rozalynn/.docs/instructions.md
index 1598d898..b21a979f 100644
--- a/exercises/concept/restaurant-rozalynn/.docs/instructions.md
+++ b/exercises/concept/restaurant-rozalynn/.docs/instructions.md
@@ -1,76 +1,103 @@
 # Instructions
 
-The exercise has 6 challenges to complete.
 
-You are the Maître D' of a hotel restaurant. Your task is to manage the seating arrangements for the dining room according to the number of seats available today, number of reservations, and the "walk in" guests currently waiting to be seated. For the purposes of this exercise, seating is assigned by first available empty seat.
+You are the Maître D' of a hotel restaurant.
+Your task is to manage the seating arrangements for the dining room according to the number of seats available today, number of reservations, and the "walk in" guests currently waiting to be seated.
+For the purposes of this exercise, seating is assigned by first available empty seat.
+
+
+For this exercise, you have 6 different dining room organization challenges to complete.
 
-You have 6 different dining room organization challenges to complete.
 
 ## 1. Make Today's Seating Chart
 
-Define the `new_seating_chart()` function that takes a size argument representing the number of seats that will be set in the dining room today. If no `size` is given, the function should return a seating chart with 22 seats. Seat values should have a placeholder of `None` to indicate they are available to assign to a guest.
+Define the `new_seating_chart(<size=22>)` function that takes a size argument representing the number of seats that will be set in the dining room today.
+If no `size` is given, the function should return a seating chart with 22 seats.
+Seat values should have a placeholder of `None` to indicate they are available to assign to a guest.
+
 
 ## 2. Arrange Reservations
 
-Define the `arrange_reservations()` function with 1 parameter for a list of guest names. This represents the number of people who've reserved places in the dining room today.
+Define the `arrange_reservations(<guest_names>)` function with 1 parameter for a list of guest names.
+This represents the number of people who have places reserved in the dining room today.
+
+
+This function should return a `dict` seating chart of default size (22 seats), with guests assigned to seats in the order they appear on the reservation list.
+All unassigned seats should be set to `None`.
+If there are no guests, an "empty" seating chart with all `None` placeholders should be returned.
 
-This function should return a `dict` seating chart of default size (22 seats), with guests assigned to seats in the order they appear on the reservation list. All unassigned seats should be set to `None`. If there are no guests, an "empty" seating chart with all `None` placeholders should be returned.
 
 ```python
-arrange_reservatons(guests=["Walter", "Frank", "Jenny", "Carol", "Alice", "George"])
-#=> {1: 'Walter', 2: 'Frank', 3: 'Jenny', 4: 'Carol', 5: 'Alice', 6: 'George', 7: None, 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None, 16: None, 17: None, 18: None, 19: None, 20: None, 21: None, 22: None}
+>>> arrange_reservations(guests=["Walter", "Frank", "Jenny", "Carol", "Alice", "George"])
+...
+{1: 'Walter', 2: 'Frank', 3: 'Jenny', 4: 'Carol', 5: 'Alice', 6: 'George', 7: None, 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None, 16: None, 17: None, 18: None, 19: None, 20: None, 21: None, 22: None}
 ```
 
+
 ## 3. Find All the "Empty" Seats
 
-Define the `find_all_available_seats(seats)` function that takes 1 parameter (_a seating chart dictionary_) and returns a `list` of seat numbers that are available for guests that are currently waiting.
+Define the `find_all_available_seats(<seats>)` function that takes 1 parameter (_a seating chart dictionary_) and returns a `list` of seat numbers that are available for guests that are currently waiting.
 If a seat is empty, It will be of `None` value in the dictionary. Occupied seats will have the name of the guest.
 
+
 ```python
-seats = {1: None, 2: 'Frank', 3: 'Jenny', 4: None, 5: 'Alice', 6: 'George', 7: None, 8: 'Carol', 9: None, 10: None, 11: None, 12: 'Walter'}
-find_all_available_seats(seats)
-#>>>[1,4,7,9,10,11]
+>>> seats = {1: None, 2: 'Frank', 3: 'Jenny', 4: None, 5: 'Alice', 6: 'George', 7: None, 8: 'Carol', 9: None, 10: None, 11: None, 12: 'Walter'}
+
+>>> find_all_available_seats(seats)
+[1,4,7,9,10,11]
 ```
 
 ## 4. Current Empty Seating Capacity
 
-Define the `curr_empty_seat_capacity()` function that takes 1 parameter. The first parameter will list all the seats.
-
-You need to find out what is the total number of seats that are empty.
+Define the `current_empty_seat_capacity(<seats>)` function that takes 1 parameter - the `dict` of existing seat reservations.
+The function should return the total number of seats that are empty.
 
 ```python
-curr_empty_seat_capacity(seats={1: "Occupied", 2: None, 3: "Occupied"})
-# => 1
-can_accomodate_seats(seats={1: "Occupied", 2: None, 3: None})
-# => 2
+>>> curr_empty_seat_capacity({1: "Occupied", 2: None, 3: "Occupied"})
+1
+
+>>> curr_empty_seat_capacity({1: "Occupied", 2: None, 3: None})
+2
 ```
 
+
 ## 5. Should we wait?
 
-Define the `accommodate_waiting_guests(seats, guests)` function that takes two parameters. The first parameter will be a seating chart `dict`. The second parameter will be a `list` of guests who have "walked in" unexpectedly.  
+Define the `accommodate_waiting_guests(<seats>, <guests>)` function that takes two parameters.
+The first parameter will be a seating chart `dict`.
+The second parameter will be a `list` of guests who have "walked in" unexpectedly.
 You'll first need to find out how many seats are available and whether or not you can even give the unannounced guests seats at this time.
 
-If you do not have enough seats, return `False`.
+If you do not have enough seats, return the seating chart `dict` unaltered.
+
+If seats _are_ available, assign the guests places on the seating chart, and return it updated.
+**Tip:** You can use previously defined functions to do the calculations for you.
 
-If seats are available, you will want to give the guests places on the seating chart, and return it updated.
-Tip: You can use previously defined functions to do the calculations for you.
 
 ```python
-starting_reservations = {1: 'Carol', 2: 'Alice', 3: 'George', 4: None, 5: None, 6: None, 7: 'Frank', 8: 'Walter'}
-accomodate_guests(starting_reservations, ["Mort", "Suze", "Phillip", "Tony"])
-#>>>False
-starting_reservations = {1: None, 2: None, 3: None, 4: 'Carol', 5: 'Alice', 6: 'George', 7: None, 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None, 16: None, 17: None, 18: 'Frank', 19:  'Jenny', 20: None, 21: None, 22: 'Walter'}
-accomodate_guests(starting_reservations, ["Mort", "Suze", "Phillip", "Tony"])
-#>>>{1: 'Mort', 2: 'Suze', 3: 'Phillip', 4: 'Carol', 5: 'Alice', 6: 'George', 7: 'Tony', 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None, 16: None, 17: None, 18: 'Frank', 19: 'Jenny', 20: None, 21: None, 22: 'Walter'}
+# Guests cannot be accommodated.
+>>> starting_reservations = {1: 'Carol', 2: 'Alice', 3: 'George', 4: None, 5: None, 6: None, 7: 'Frank', 8: 'Walter'}
+>>> accommodate_guests(starting_reservations, ["Mort", "Suze", "Phillip", "Tony"])
+...
+{1: 'Carol', 2: 'Alice', 3: 'George', 4: None, 5: None, 6: None, 7: 'Frank', 8: 'Walter'}
+
+
+# Guests can be accommodated.
+>>> starting_reservations = {1: None, 2: None, 3: None, 4: 'Carol', 5: 'Alice', 6: 'George', 7: None, 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None, 16: None, 17: None, 18: 'Frank', 19:  'Jenny', 20: None, 21: None, 22: 'Walter'}
+>>> accommodate_guests(starting_reservations, ["Mort", "Suze", "Phillip", "Tony"])
+...
+{1: 'Mort', 2: 'Suze', 3: 'Phillip', 4: 'Carol', 5: 'Alice', 6: 'George', 7: 'Tony', 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None, 16: None, 17: None, 18: 'Frank', 19: 'Jenny', 20: None, 21: None, 22: 'Walter'}
 ```
 
 ## 6. Empty Seats
 
-Define the `empty_seats()` function that takes two parameters. The first parameter will be a seating chart dictionary. The second parameter is a list of seat numbers you need to "free up" or empty -- that is, you need to assign the seat number value to `None`.
+Define the `empty_seats(<seats>, <seat_numbers>)` function that takes two parameters.
+The first parameter will be a seating chart dictionary.
+The second parameter is a list of seat numbers you need to "free up" or empty -- that is, you need to assign the seat number value to `None`.
 
-Return the `dict` of seats sent as the parameter after updating the empty seat values.
+Return the `dict` of seats after updating the "to empty" seat values.
 
 ```python
-empty_seats(seats={1: "Alice", 2: None, 3: "Bob", 4: "George", 5: "Gloria"}, seat_numbers=[5,3,1])
-# => {1: None, 2: None, 3: None, 4: "George", 5: None}
+>>> empty_seats(seats={1: "Alice", 2: None, 3: "Bob", 4: "George", 5: "Gloria"}, seat_numbers=[5,3,1])
+{1: None, 2: None, 3: None, 4: "George", 5: None}
 ```
diff --git a/exercises/concept/restaurant-rozalynn/.meta/exemplar.py b/exercises/concept/restaurant-rozalynn/.meta/exemplar.py
index 6bb76639..5bd13e35 100644
--- a/exercises/concept/restaurant-rozalynn/.meta/exemplar.py
+++ b/exercises/concept/restaurant-rozalynn/.meta/exemplar.py
@@ -1,21 +1,20 @@
-
 def new_seating_chart(size=22):
-    '''
+    """Create a new seating chart.
 
     :param size: int - number if seats in the seating chart.
     :return: dict - with number of seats specified, and placeholder values.
-    '''
+    """
 
-    return {number: None for number in range(1, size+1) }
+    return {number: None for number in range(1, size + 1)}
 
 
 def arrange_reservations(guests=None):
-    '''
+    """Assign guests to seats.
 
     :param guest_list: list - list of guest names for reservations.
     :return: dict - Default sized dictionary with guests assigned seats,
              and placeholders for empty seats.
-    '''
+    """
 
     seats = new_seating_chart()
 
@@ -26,11 +25,11 @@ def arrange_reservations(guests=None):
 
 
 def find_all_available_seats(seats):
-    '''
+    """Find and return seat numbers that are unassigned.
 
     :param seats: dict - seating chart.
     :return: list - list of seat numbers available for reserving..
-    '''
+    """
 
     available = []
     for seat_num, value in seats.items():
@@ -39,12 +38,12 @@ def find_all_available_seats(seats):
     return available
 
 
-def curr_empty_seat_capacity(seats):
-    '''
+def current_empty_seat_capacity(seats):
+    """Find the number of seats that are currently empty.
 
     :param seats: dict - dictionary of reserved seats.
     :return: int - number of seats empty.
-    '''
+    """
 
     count = 0
     for value in seats.values():
@@ -54,34 +53,32 @@ def curr_empty_seat_capacity(seats):
 
 
 def accommodate_waiting_guests(seats, guests):
-    '''
+    """Asses if guest can be accommodated.  Update seating if they can be.
 
     :param seats: dict - seating chart dictionary.
     :param guests: list - walk-in guests
     :return: dict - updated seating chart with available spaces filled.
-    '''
+    """
 
-    curr_empty_seats = curr_empty_seat_capacity(seats)
+    curr_empty_seats = current_empty_seat_capacity(seats)
     empty_seat_list = find_all_available_seats(seats)
 
-    if len(guests) > curr_empty_seats:
-        return False
-    else:
-        for index, item in enumerate(guests):
+    if len(guests) <= curr_empty_seats:
+        for index, _ in enumerate(guests):
             seats[empty_seat_list[index]] = guests[index]
 
     return seats
 
 
 def empty_seats(seats, seat_numbers):
-    '''
+    """Empty listed seats of their previous reservations.
 
     :param seats: dict - seating chart dictionary.
     :param seat_numbers: list - list of seat numbers to free up or empty.
     :return: updated seating chart dictionary.
-    '''
+    """
 
     for seat in seat_numbers:
         seats[seat] = None
 
-    return seats
\ No newline at end of file
+    return seats
diff --git a/exercises/concept/restaurant-rozalynn/none.py b/exercises/concept/restaurant-rozalynn/none.py
index 140f2175..afd920ec 100644
--- a/exercises/concept/restaurant-rozalynn/none.py
+++ b/exercises/concept/restaurant-rozalynn/none.py
@@ -1,57 +1,61 @@
 def new_seating_chart(size=22):
-    '''
+    """Create a new seating chart.
 
     :param size: int - number if seats in the seating chart. Default is 22.
     :return: dict - with number of seats specified, and placeholder values.
-    '''
+    """
 
     pass
 
+
 def arrange_reservations(guest_list):
-    '''
+    """Assign guests to seats.
 
     :param guest_list: list - list of guest names for reservations.
     :return: dict - Default sized dictionary with guests assigned seats,
              and placeholders for empty seats.
-    '''
+    """
 
     pass
 
+
 def find_all_available_seats(seats):
-    '''
+    """Find and return seat numbers that are unassigned.
 
     :param seats: dict - seating chart.
     :return: list - list of seat numbers available for reserving..
-    '''
+    """
 
     pass
 
-def current_seating_capacity(seats):
-    '''
+
+def current_empty_seat_capacity(seats):
+    """Find the number of seats that are currently empty.
 
     :param seats: dict - dictionary of reserved seats.
     :return: int - number of seats empty.
-    '''
+    """
 
     pass
 
+
 def accommodate_waiting_guests(seats, guests):
-    '''
+    """Asses if guest can be accommodated.  Update seating if they can be.
 
     :param seats: dict - seating chart dictionary.
     :param guests: list - walk-in guests
     :return: dict - updated seating chart with available spaces filled.
-    '''
+    """
 
     pass
 
 
 def empty_seats(seats, seat_numbers):
-    '''
+    """Empty listed seats of their previous reservations.
 
     :param seats: dict - seating chart dictionary.
     :param seat_numbers: list - list of seat numbers to free up or empty.
     :return: updated seating chart dictionary.
-    '''
+    """
 
-    pass
\ No newline at end of file
+    pass


Test patch:
diff --git a/exercises/concept/meltdown-mitigation/conditionals_test.py b/exercises/concept/meltdown-mitigation/conditionals_test.py
index abf94bc7..596ab4e2 100644
--- a/exercises/concept/meltdown-mitigation/conditionals_test.py
+++ b/exercises/concept/meltdown-mitigation/conditionals_test.py
@@ -3,8 +3,7 @@ import unittest
 import pytest
 from conditionals import (is_criticality_balanced,
                           reactor_efficiency,
-                          fail_safe
-                          )
+                          fail_safe)
 
 
 class TestConditionals(unittest.TestCase):
@@ -14,33 +13,32 @@ class TestConditionals(unittest.TestCase):
 
     @pytest.mark.task(taskno=1)
     def test_is_criticality_balanced_set1(self):
-
         self.assertTrue(is_criticality_balanced(
             temperature=750, neutrons_emitted=650), msg="Expected True but returned False")
 
+
     @pytest.mark.task(taskno=1)
     def test_is_criticality_balanced_set2(self):
-
         self.assertTrue(is_criticality_balanced(
             temperature=799, neutrons_emitted=501), msg="Expected True but returned False")
 
+
     @pytest.mark.task(taskno=1)
     def test_is_criticality_balanced_set3(self):
-
         self.assertTrue(
             is_criticality_balanced(temperature=500, neutrons_emitted=600), msg="Expected True but returned False"
         )
 
+
     @pytest.mark.task(taskno=1)
     def test_is_criticality_balanced_set4(self):
-
         self.assertFalse(
             is_criticality_balanced(temperature=800, neutrons_emitted=500), msg="Expected False but returned True"
         )
 
-# End of first functions testing
+    # End of first functions testing
 
-# Test case for reactor_ efficiency()
+    # Test case for reactor_ efficiency()
     # Checking the second condition using assertEqual
     # The values for arguments is not final and should be considered as placeholders
     # More test-cases  required for full testing
@@ -49,13 +47,13 @@ class TestConditionals(unittest.TestCase):
 
     @pytest.mark.task(taskno=2)
     def test_reactor_efficiency_set1(self):
-
         test_return = reactor_efficiency(
             voltage=100, current=50, theoretical_max_power=5000)
         self.assertEqual(
             test_return, 'green', msg=f"Expected green but returned {test_return}"
         )
 
+
     @pytest.mark.task(taskno=2)
     def test_reactor_efficiency_set2(self):
         test_return = reactor_efficiency(
@@ -64,6 +62,7 @@ class TestConditionals(unittest.TestCase):
             test_return, 'orange', msg=f"Expected orange but returned {test_return}"
         )
 
+
     @pytest.mark.task(taskno=2)
     def test_reactor_efficiency_set3(self):
         test_return = reactor_efficiency(
@@ -72,6 +71,7 @@ class TestConditionals(unittest.TestCase):
             test_return, 'red', msg=f"Expected red but returned {test_return}"
         )
 
+
     @pytest.mark.task(taskno=2)
     def test_reactor_efficiency_set4(self):
         test_return = reactor_efficiency(
@@ -80,10 +80,9 @@ class TestConditionals(unittest.TestCase):
             test_return, 'black', msg=f"Expected black but returned {test_return}"
         )
 
-# End of second function testing
-
+    # End of second function testing
 
-# Test case for fail_safe()
+    # Test case for fail_safe()
     # Checking the third condition using assertEqual
     # The values for arguments is not final and should be considered as placeholders
     # More test-cases  required for full testing
@@ -98,6 +97,7 @@ class TestConditionals(unittest.TestCase):
             test_return, 'LOW', msg=f"Expected LOW but returned {test_return}"
         )
 
+
     @pytest.mark.task(taskno=3)
     def test_fail_safe_set2(self):
         test_return = fail_safe(
@@ -106,6 +106,7 @@ class TestConditionals(unittest.TestCase):
             test_return, 'LOW', msg=f"Expected LOW but returned {test_return}"
         )
 
+
     @pytest.mark.task(taskno=3)
     def test_fail_safe_set3(self):
         test_return = fail_safe(
@@ -114,6 +115,7 @@ class TestConditionals(unittest.TestCase):
             test_return, 'LOW', msg=f"Expected LOW but returned {test_return}"
         )
 
+
     @pytest.mark.task(taskno=3)
     def test_fail_safe_set4(self):
         test_return = fail_safe(
@@ -122,6 +124,7 @@ class TestConditionals(unittest.TestCase):
             test_return, 'NORMAL', msg=f"Expected NORMAL but returned {test_return}"
         )
 
+
     @pytest.mark.task(taskno=3)
     def test_fail_safe_set5(self):
         test_return = fail_safe(
@@ -130,6 +133,7 @@ class TestConditionals(unittest.TestCase):
             test_return, 'NORMAL', msg=f"Expected NORMAL but returned {test_return}"
         )
 
+
     @pytest.mark.task(taskno=3)
     def test_fail_safe_set6(self):
         test_return = fail_safe(
@@ -138,6 +142,7 @@ class TestConditionals(unittest.TestCase):
             test_return, 'NORMAL', msg=f"Expected NORMAL but returned {test_return}"
         )
 
+
     @pytest.mark.task(taskno=3)
     def test_fail_safe_set7(self):
         test_return = fail_safe(
@@ -146,6 +151,7 @@ class TestConditionals(unittest.TestCase):
             test_return, 'DANGER', msg=f"Expected DANGER but returned {test_return}"
         )
 
+
     @pytest.mark.task(taskno=3)
     def test_fail_safe_set8(self):
         test_return = fail_safe(
@@ -154,6 +160,7 @@ class TestConditionals(unittest.TestCase):
             test_return, 'DANGER', msg=f"Expected DANGER but returned {test_return}"
         )
 
+
     @pytest.mark.task(taskno=3)
     def test_fail_safe_set9(self):
         test_return = fail_safe(
diff --git a/exercises/concept/restaurant-rozalynn/none_test.py b/exercises/concept/restaurant-rozalynn/none_test.py
index 4f7a83c1..429a7fa6 100644
--- a/exercises/concept/restaurant-rozalynn/none_test.py
+++ b/exercises/concept/restaurant-rozalynn/none_test.py
@@ -4,7 +4,7 @@ from none import (
     new_seating_chart,
     arrange_reservations,
     find_all_available_seats,
-    curr_empty_seat_capacity,
+    current_empty_seat_capacity,
     accommodate_waiting_guests,
     empty_seats
 )
@@ -25,7 +25,7 @@ class TestNoneType(unittest.TestCase):
         self.assertDictEqual(
             new_seating_chart(),
             {1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None,
-             11: None,12: None, 13: None, 14: None, 15: None, 16: None, 17: None, 18: None, 19: None,
+             11: None, 12: None, 13: None, 14: None, 15: None, 16: None, 17: None, 18: None, 19: None,
              20: None, 21: None, 22: None},
             msg="The New Seating chart does not match with the expected."
         )
@@ -54,56 +54,64 @@ class TestNoneType(unittest.TestCase):
     @pytest.mark.task(taskno=3)
     def test_find_all_available_seats_1(self):
         self.assertListEqual(
-            find_all_available_seats(seats = {1: None, 2: 'Frank', 3: 'Jenny', 4: None, 5: 'Alice', 6: 'George', 7: None, 8: 'Carol', 9: None, 10: None, 11: None, 12: 'Walter'}),
-            [1,4,7,9,10,11],
+            find_all_available_seats(
+                seats={1: None, 2: 'Frank', 3: 'Jenny', 4: None, 5: 'Alice', 6: 'George', 7: None, 8: 'Carol', 9: None,
+                       10: None, 11: None, 12: 'Walter'}),
+            [1, 4, 7, 9, 10, 11],
             msg="The Available Seat list is incorrect"
         )
 
     @pytest.mark.task(taskno=3)
     def test_find_all_available_seats_2(self):
         self.assertListEqual(
-            find_all_available_seats(seats = {1: None, 2: None, 3: None, 4: None, 5: 'Alice', 6: None, 7: None, 8: None, 9: None, 10: None, 11: None, 12: None}),
+            find_all_available_seats(
+                seats={1: None, 2: None, 3: None, 4: None, 5: 'Alice', 6: None, 7: None, 8: None, 9: None, 10: None,
+                       11: None, 12: None}),
             [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12],
             msg="The Available Seat list is incorrect"
         )
 
     @pytest.mark.task(taskno=4)
-    def test_curr_empty_seat_capacity_1(self):
+    def test_current_empty_seat_capacityy_1(self):
         self.assertIs(
-            curr_empty_seat_capacity({1: "Occupied", 2: None, 3: "Occupied"}),
+            current_empty_seat_capacity({1: "Occupied", 2: None, 3: "Occupied"}),
             1,
             msg="the index of the seat which is empty is invalid."
         )
 
     @pytest.mark.task(taskno=4)
-    def test_curr_empty_seat_capacity_2(self):
+    def test_current_empty_seat_capacityy_2(self):
         self.assertIs(
-            curr_empty_seat_capacity({1: "Occupied", 2: "Occupied", 3: None, 4: "Occupied", 5: None}),
+            current_empty_seat_capacity({1: "Occupied", 2: "Occupied", 3: None, 4: "Occupied", 5: None}),
             2,
             msg="the index of the seat which is empty is invalid."
         )
 
     @pytest.mark.task(taskno=5)
     def test_accommodate_waiting_guests_1(self):
-        starting_reservations = {1: 'Carol', 2: 'Alice', 3: 'George', 4: None, 5: None, 6: None, 7: 'Frank', 8: 'Walter'}
-        self.assertFalse(
-            accommodate_waiting_guests(starting_reservations, ["Mort", "Suze", "Phillip", "Tony"]),
-            msg="The Accomodation of waiting guests are incorrect"
-        )
+        starting_reservations = {1: 'Carol', 2: 'Alice', 3: 'George', 4: None, 5: None, 6: None, 7: 'Frank',
+                                 8: 'Walter'}
+        self.assertDictEqual(
+            accommodate_waiting_guests(starting_reservations, ["Mort", "Suze", "Phillip", "Tony"]), starting_reservations,
+            msg="The Accommodation of waiting guests are incorrect")
 
     @pytest.mark.task(taskno=5)
     def test_accommodate_waiting_guests_2(self):
-        starting_reservations = {1: None, 2: None, 3: None, 4: 'Carol', 5: 'Alice', 6: 'George', 7: None, 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None, 16: None, 17: None, 18: 'Frank', 19:  'Jenny', 20: None, 21: None, 22: 'Walter'}
+        starting_reservations = {1: None, 2: None, 3: None, 4: 'Carol', 5: 'Alice', 6: 'George', 7: None, 8: None,
+                                 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None, 16: None,
+                                 17: None, 18: 'Frank', 19: 'Jenny', 20: None, 21: None, 22: 'Walter'}
         self.assertDictEqual(
             accommodate_waiting_guests(starting_reservations, ["Mort", "Suze", "Phillip", "Tony"]),
-            {1: 'Mort', 2: 'Suze', 3: 'Phillip', 4: 'Carol', 5: 'Alice', 6: 'George', 7: 'Tony', 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None, 16: None, 17: None, 18: 'Frank', 19: 'Jenny', 20: None, 21: None, 22: 'Walter'},
-            msg="The Accomodation of waiting guests are incorrect"
+            {1: 'Mort', 2: 'Suze', 3: 'Phillip', 4: 'Carol', 5: 'Alice', 6: 'George', 7: 'Tony', 8: None, 9: None,
+             10: None, 11: None, 12: None, 13: None, 14: None, 15: None, 16: None, 17: None, 18: 'Frank', 19: 'Jenny',
+             20: None, 21: None, 22: 'Walter'},
+            msg="The Accommodation of waiting guests are incorrect"
         )
 
     @pytest.mark.task(taskno=6)
     def test_empty_seats_1(self):
         self.assertDictEqual(
-            empty_seats(seats={1: "Alice", 2: None, 3: "Bob", 4: "George", 5: "Gloria"}, seat_numbers=[5,3,1]),
+            empty_seats(seats={1: "Alice", 2: None, 3: "Bob", 4: "George", 5: "Gloria"}, seat_numbers=[5, 3, 1]),
             {1: None, 2: None, 3: None, 4: "George", 5: None},
             msg="Seats are not emptied properly"
         )
@@ -114,4 +122,4 @@ class TestNoneType(unittest.TestCase):
             empty_seats(seats={1: "Alice", 2: None, 3: "Bob", 4: "George", 5: "Gloria"}, seat_numbers=[]),
             {1: "Alice", 2: None, 3: "Bob", 4: "George", 5: "Gloria"},
             msg="Seats are not emptied properly"
-        )
\ No newline at end of file
+        )
diff --git a/pytest.ini b/pytest.ini
new file mode 100644
index 00000000..c315f431
--- /dev/null
+++ b/pytest.ini
@@ -0,0 +1,3 @@
+[pytest]
+markers =
+    task: A concept exercise task.
\ No newline at end of file