prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Spider texas_roadhouse is broken
  During the global build at 2021-08-11-14-42-19, spider **texas_roadhouse** failed with **0 features** and **0 errors**.
  
  Here's [the log](https://data.alltheplaces.xyz/runs/2021-08-11-14-42-19/logs/texas_roadhouse.txt) and [the output](https://data.alltheplaces.xyz/runs/2021-08-11-14-42-19/output/texas_roadhouse.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-08-11-14-42-19/output/texas_roadhouse.geojson))
  
  </issue>
  <code>
  [start of locations/spiders/texas_roadhouse.py]
  1 import json
  2 import scrapy
  3 from locations.items import GeojsonPointItem
  4 from locations.hours import OpeningHours
  5 
  6 
  7 class TexasRoadhouseSpider(scrapy.Spider):
  8     name = "texas_roadhouse"
  9     item_attributes = { 'brand': "Texas Roadhouse", 'brand_wikidata': "Q7707945" }
  10     allowed_domains = ["www.texasroadhouse.com"]
  11     start_urls = (
  12         'https://www.texasroadhouse.com/sitemap.xml',
  13     )
  14 
  15     def parse_hours(self, store_hours):
  16         opening_hours = OpeningHours()
  17 
  18         for weekday in store_hours:
  19             # convert day from full Monday to Mo, etc
  20             day = weekday.get('day')[:2]
  21             open_time = weekday.get('hours').get('openTime')
  22             close_time = weekday.get('hours').get('closeTime')
  23             opening_hours.add_range(day=day,
  24                                     open_time=open_time,
  25                                     close_time=close_time,
  26                                     time_format='%I:%M%p')
  27 
  28         return opening_hours.as_opening_hours()
  29 
  30     def parse(self, response):
  31         response.selector.remove_namespaces()
  32         city_urls = response.xpath('//url/loc/text()').extract()
  33         for path in city_urls:
  34             if path.startswith('https://www.texasroadhouse.com/locations/'):
  35                 yield scrapy.Request(
  36                     path.strip(),
  37                     callback=self.parse_store,
  38                 )
  39 
  40     def parse_store(self, response):
  41         data = json.loads(response.xpath('//script/text()').extract_first()[22:-1])
  42 
  43         properties = {
  44             'lat': data['latitude'],
  45             'lon': data['longitude'],
  46             'ref': data['url'],
  47             'name': data['name'],
  48             'addr_full': data['address1'],
  49             'city': data['city'],
  50             'state': data['state'],
  51             'postcode': data['postalCode'],
  52             'country': data['countryCode'],
  53             'phone': data['telephone'],
  54             'website': response.urljoin(data['url']),
  55             'opening_hours': self.parse_hours(data['schedule']),
  56         }
  57 
  58         yield GeojsonPointItem(**properties)
  59
  [end of locations/spiders/texas_roadhouse.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/locations/spiders/texas_roadhouse.py b/locations/spiders/texas_roadhouse.py
  --- a/locations/spiders/texas_roadhouse.py
  +++ b/locations/spiders/texas_roadhouse.py
  @@ -6,7 +6,10 @@
   
   class TexasRoadhouseSpider(scrapy.Spider):
       name = "texas_roadhouse"
  -    item_attributes = { 'brand': "Texas Roadhouse", 'brand_wikidata': "Q7707945" }
  +    item_attributes = {
  +        'brand': "Texas Roadhouse",
  +        'brand_wikidata': "Q7707945",
  +    }
       allowed_domains = ["www.texasroadhouse.com"]
       start_urls = (
           'https://www.texasroadhouse.com/sitemap.xml',
  
verification_info: {"golden_diff": "diff --git a/locations/spiders/texas_roadhouse.py b/locations/spiders/texas_roadhouse.py\n--- a/locations/spiders/texas_roadhouse.py\n+++ b/locations/spiders/texas_roadhouse.py\n@@ -6,7 +6,10 @@\n \n class TexasRoadhouseSpider(scrapy.Spider):\n     name = \"texas_roadhouse\"\n-    item_attributes = { 'brand': \"Texas Roadhouse\", 'brand_wikidata': \"Q7707945\" }\n+    item_attributes = {\n+        'brand': \"Texas Roadhouse\",\n+        'brand_wikidata': \"Q7707945\",\n+    }\n     allowed_domains = [\"www.texasroadhouse.com\"]\n     start_urls = (\n         'https://www.texasroadhouse.com/sitemap.xml',\n", "issue": "Spider texas_roadhouse is broken\nDuring the global build at 2021-08-11-14-42-19, spider **texas_roadhouse** failed with **0 features** and **0 errors**.\n\nHere's [the log](https://data.alltheplaces.xyz/runs/2021-08-11-14-42-19/logs/texas_roadhouse.txt) and [the output](https://data.alltheplaces.xyz/runs/2021-08-11-14-42-19/output/texas_roadhouse.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-08-11-14-42-19/output/texas_roadhouse.geojson))\n", "before_files": [{"content": "import json\nimport scrapy\nfrom locations.items import GeojsonPointItem\nfrom locations.hours import OpeningHours\n\n\nclass TexasRoadhouseSpider(scrapy.Spider):\n    name = \"texas_roadhouse\"\n    item_attributes = { 'brand': \"Texas Roadhouse\", 'brand_wikidata': \"Q7707945\" }\n    allowed_domains = [\"www.texasroadhouse.com\"]\n    start_urls = (\n        'https://www.texasroadhouse.com/sitemap.xml',\n    )\n\n    def parse_hours(self, store_hours):\n        opening_hours = OpeningHours()\n\n        for weekday in store_hours:\n            # convert day from full Monday to Mo, etc\n            day = weekday.get('day')[:2]\n            open_time = weekday.get('hours').get('openTime')\n            close_time = weekday.get('hours').get('closeTime')\n            opening_hours.add_range(day=day,\n                                    open_time=open_time,\n                                    close_time=close_time,\n                                    time_format='%I:%M%p')\n\n        return opening_hours.as_opening_hours()\n\n    def parse(self, response):\n        response.selector.remove_namespaces()\n        city_urls = response.xpath('//url/loc/text()').extract()\n        for path in city_urls:\n            if path.startswith('https://www.texasroadhouse.com/locations/'):\n                yield scrapy.Request(\n                    path.strip(),\n                    callback=self.parse_store,\n                )\n\n    def parse_store(self, response):\n        data = json.loads(response.xpath('//script/text()').extract_first()[22:-1])\n\n        properties = {\n            'lat': data['latitude'],\n            'lon': data['longitude'],\n            'ref': data['url'],\n            'name': data['name'],\n            'addr_full': data['address1'],\n            'city': data['city'],\n            'state': data['state'],\n            'postcode': data['postalCode'],\n            'country': data['countryCode'],\n            'phone': data['telephone'],\n            'website': response.urljoin(data['url']),\n            'opening_hours': self.parse_hours(data['schedule']),\n        }\n\n        yield GeojsonPointItem(**properties)\n", "path": "locations/spiders/texas_roadhouse.py"}]}