prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  house_au: split off new brand for House Bed & Bath
  house_au captures two brands:
  * [House](https://www.wikidata.org/wiki/Q117921987)
  * House Bed & Bath (https://www.wikidata.org/wiki/Q126176210)
  
  Currently the spider doesn't differentiate the two brands. It should though.
  
  Reference: https://globalretailbrands.net/
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `locations/spiders/house_au.py`
  Content:
  ```
  1 import reverse_geocoder
  2 from scrapy import Request, Spider
  3 
  4 from locations.categories import Categories
  5 from locations.dict_parser import DictParser
  6 from locations.hours import OpeningHours
  7 from locations.pipelines.address_clean_up import clean_address
  8 
  9 
  10 class HouseAUSpider(Spider):
  11     name = "house_au"
  12     item_attributes = {
  13         "brand": "House",
  14         "brand_wikidata": "Q117921987",
  15         "extras": Categories.SHOP_HOUSEWARE.value,
  16     }
  17     allowed_domains = ["www.house.com.au"]
  18     start_urls = ["https://www.house.com.au/api/get-stores"]
  19 
  20     def start_requests(self):
  21         for url in self.start_urls:
  22             yield Request(url=url, method="POST")
  23 
  24     def parse(self, response):
  25         for location in response.json():
  26             item = DictParser.parse(location)
  27 
  28             # Some stores have wildly incorrect coordinates for
  29             # locations as far away as France. Only add geometry
  30             # where coordinates existing within Australia.
  31             if result := reverse_geocoder.get((location["latitude"], location["longitude"]), mode=1, verbose=False):
  32                 if result["cc"] == "AU":
  33                     item["geometry"] = location["location"]
  34 
  35             item["street_address"] = clean_address([location["address1"], location["address2"]])
  36             item["website"] = "https://www.house.com.au/stores/" + location["slug"]
  37             item["opening_hours"] = OpeningHours()
  38             for day_name, hours in location["storeHours"].items():
  39                 if hours["open"] == "-" or hours["close"] == "-" or hours["close"] == "17:3016:00":
  40                     continue
  41                 item["opening_hours"].add_range(
  42                     day_name.title(),
  43                     hours["open"].replace(".", ":"),
  44                     hours["close"].replace(".", ":").replace(":-", ":"),
  45                 )
  46             yield item
  47
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/locations/spiders/house_au.py b/locations/spiders/house_au.py
  --- a/locations/spiders/house_au.py
  +++ b/locations/spiders/house_au.py
  @@ -9,13 +9,16 @@
   
   class HouseAUSpider(Spider):
       name = "house_au"
  -    item_attributes = {
  -        "brand": "House",
  -        "brand_wikidata": "Q117921987",
  -        "extras": Categories.SHOP_HOUSEWARE.value,
  -    }
       allowed_domains = ["www.house.com.au"]
       start_urls = ["https://www.house.com.au/api/get-stores"]
  +    brands = {
  +        "House Bed & Bath": {
  +            "brand": "House Bed & Bath",
  +            "brand_wikidata": "",
  +            "extras": Categories.SHOP_HOUSEHOLD_LINEN.value,
  +        },
  +        "House": {"brand": "House", "brand_wikidata": "Q117921987", "extras": Categories.SHOP_HOUSEWARE.value},
  +    }
   
       def start_requests(self):
           for url in self.start_urls:
  @@ -25,6 +28,12 @@
           for location in response.json():
               item = DictParser.parse(location)
   
  +            for brand_name in self.brands.keys():
  +                if item["name"].startswith(f"{brand_name} "):
  +                    item.update(self.brands[brand_name])
  +                    item["branch"] = item["name"].replace(f"{brand_name} ", "")
  +                    break
  +
               # Some stores have wildly incorrect coordinates for
               # locations as far away as France. Only add geometry
               # where coordinates existing within Australia.
  @@ -34,6 +43,7 @@
   
               item["street_address"] = clean_address([location["address1"], location["address2"]])
               item["website"] = "https://www.house.com.au/stores/" + location["slug"]
  +
               item["opening_hours"] = OpeningHours()
               for day_name, hours in location["storeHours"].items():
                   if hours["open"] == "-" or hours["close"] == "-" or hours["close"] == "17:3016:00":
  @@ -43,4 +53,5 @@
                       hours["open"].replace(".", ":"),
                       hours["close"].replace(".", ":").replace(":-", ":"),
                   )
  +
               yield item
  
verification_info: {"golden_diff": "diff --git a/locations/spiders/house_au.py b/locations/spiders/house_au.py\n--- a/locations/spiders/house_au.py\n+++ b/locations/spiders/house_au.py\n@@ -9,13 +9,16 @@\n \n class HouseAUSpider(Spider):\n     name = \"house_au\"\n-    item_attributes = {\n-        \"brand\": \"House\",\n-        \"brand_wikidata\": \"Q117921987\",\n-        \"extras\": Categories.SHOP_HOUSEWARE.value,\n-    }\n     allowed_domains = [\"www.house.com.au\"]\n     start_urls = [\"https://www.house.com.au/api/get-stores\"]\n+    brands = {\n+        \"House Bed & Bath\": {\n+            \"brand\": \"House Bed & Bath\",\n+            \"brand_wikidata\": \"\",\n+            \"extras\": Categories.SHOP_HOUSEHOLD_LINEN.value,\n+        },\n+        \"House\": {\"brand\": \"House\", \"brand_wikidata\": \"Q117921987\", \"extras\": Categories.SHOP_HOUSEWARE.value},\n+    }\n \n     def start_requests(self):\n         for url in self.start_urls:\n@@ -25,6 +28,12 @@\n         for location in response.json():\n             item = DictParser.parse(location)\n \n+            for brand_name in self.brands.keys():\n+                if item[\"name\"].startswith(f\"{brand_name} \"):\n+                    item.update(self.brands[brand_name])\n+                    item[\"branch\"] = item[\"name\"].replace(f\"{brand_name} \", \"\")\n+                    break\n+\n             # Some stores have wildly incorrect coordinates for\n             # locations as far away as France. Only add geometry\n             # where coordinates existing within Australia.\n@@ -34,6 +43,7 @@\n \n             item[\"street_address\"] = clean_address([location[\"address1\"], location[\"address2\"]])\n             item[\"website\"] = \"https://www.house.com.au/stores/\" + location[\"slug\"]\n+\n             item[\"opening_hours\"] = OpeningHours()\n             for day_name, hours in location[\"storeHours\"].items():\n                 if hours[\"open\"] == \"-\" or hours[\"close\"] == \"-\" or hours[\"close\"] == \"17:3016:00\":\n@@ -43,4 +53,5 @@\n                     hours[\"open\"].replace(\".\", \":\"),\n                     hours[\"close\"].replace(\".\", \":\").replace(\":-\", \":\"),\n                 )\n+\n             yield item\n", "issue": "house_au: split off new brand for House Bed & Bath\nhouse_au captures two brands:\r\n* [House](https://www.wikidata.org/wiki/Q117921987)\r\n* House Bed & Bath (https://www.wikidata.org/wiki/Q126176210)\r\n\r\nCurrently the spider doesn't differentiate the two brands. It should though.\r\n\r\nReference: https://globalretailbrands.net/\n", "before_files": [{"content": "import reverse_geocoder\nfrom scrapy import Request, Spider\n\nfrom locations.categories import Categories\nfrom locations.dict_parser import DictParser\nfrom locations.hours import OpeningHours\nfrom locations.pipelines.address_clean_up import clean_address\n\n\nclass HouseAUSpider(Spider):\n    name = \"house_au\"\n    item_attributes = {\n        \"brand\": \"House\",\n        \"brand_wikidata\": \"Q117921987\",\n        \"extras\": Categories.SHOP_HOUSEWARE.value,\n    }\n    allowed_domains = [\"www.house.com.au\"]\n    start_urls = [\"https://www.house.com.au/api/get-stores\"]\n\n    def start_requests(self):\n        for url in self.start_urls:\n            yield Request(url=url, method=\"POST\")\n\n    def parse(self, response):\n        for location in response.json():\n            item = DictParser.parse(location)\n\n            # Some stores have wildly incorrect coordinates for\n            # locations as far away as France. Only add geometry\n            # where coordinates existing within Australia.\n            if result := reverse_geocoder.get((location[\"latitude\"], location[\"longitude\"]), mode=1, verbose=False):\n                if result[\"cc\"] == \"AU\":\n                    item[\"geometry\"] = location[\"location\"]\n\n            item[\"street_address\"] = clean_address([location[\"address1\"], location[\"address2\"]])\n            item[\"website\"] = \"https://www.house.com.au/stores/\" + location[\"slug\"]\n            item[\"opening_hours\"] = OpeningHours()\n            for day_name, hours in location[\"storeHours\"].items():\n                if hours[\"open\"] == \"-\" or hours[\"close\"] == \"-\" or hours[\"close\"] == \"17:3016:00\":\n                    continue\n                item[\"opening_hours\"].add_range(\n                    day_name.title(),\n                    hours[\"open\"].replace(\".\", \":\"),\n                    hours[\"close\"].replace(\".\", \":\").replace(\":-\", \":\"),\n                )\n            yield item\n", "path": "locations/spiders/house_au.py"}], "after_files": [{"content": "import reverse_geocoder\nfrom scrapy import Request, Spider\n\nfrom locations.categories import Categories\nfrom locations.dict_parser import DictParser\nfrom locations.hours import OpeningHours\nfrom locations.pipelines.address_clean_up import clean_address\n\n\nclass HouseAUSpider(Spider):\n    name = \"house_au\"\n    allowed_domains = [\"www.house.com.au\"]\n    start_urls = [\"https://www.house.com.au/api/get-stores\"]\n    brands = {\n        \"House Bed & Bath\": {\n            \"brand\": \"House Bed & Bath\",\n            \"brand_wikidata\": \"\",\n            \"extras\": Categories.SHOP_HOUSEHOLD_LINEN.value,\n        },\n        \"House\": {\"brand\": \"House\", \"brand_wikidata\": \"Q117921987\", \"extras\": Categories.SHOP_HOUSEWARE.value},\n    }\n\n    def start_requests(self):\n        for url in self.start_urls:\n            yield Request(url=url, method=\"POST\")\n\n    def parse(self, response):\n        for location in response.json():\n            item = DictParser.parse(location)\n\n            for brand_name in self.brands.keys():\n                if item[\"name\"].startswith(f\"{brand_name} \"):\n                    item.update(self.brands[brand_name])\n                    item[\"branch\"] = item[\"name\"].replace(f\"{brand_name} \", \"\")\n                    break\n\n            # Some stores have wildly incorrect coordinates for\n            # locations as far away as France. Only add geometry\n            # where coordinates existing within Australia.\n            if result := reverse_geocoder.get((location[\"latitude\"], location[\"longitude\"]), mode=1, verbose=False):\n                if result[\"cc\"] == \"AU\":\n                    item[\"geometry\"] = location[\"location\"]\n\n            item[\"street_address\"] = clean_address([location[\"address1\"], location[\"address2\"]])\n            item[\"website\"] = \"https://www.house.com.au/stores/\" + location[\"slug\"]\n\n            item[\"opening_hours\"] = OpeningHours()\n            for day_name, hours in location[\"storeHours\"].items():\n                if hours[\"open\"] == \"-\" or hours[\"close\"] == \"-\" or hours[\"close\"] == \"17:3016:00\":\n                    continue\n                item[\"opening_hours\"].add_range(\n                    day_name.title(),\n                    hours[\"open\"].replace(\".\", \":\"),\n                    hours[\"close\"].replace(\".\", \":\").replace(\":-\", \":\"),\n                )\n\n            yield item\n", "path": "locations/spiders/house_au.py"}]}