We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
RI failing since at least 2018-01-02
RI has been failing since 2018-01-02

Based on automated runs it appears that RI has not run successfully in 2 days (2018-01-02).


```
  no pupa_settings on path, using defaults
ri (scrape, import)
  bills: {}
  people: {}
  committees: {}
23:00:36 CRITICAL pupa: Session(s) 2018 were reported by RhodeIsland.get_session_list() but were not found in RhodeIsland.legislative_sessions or RhodeIsland.ignored_scraped_sessions.
```

Visit http://bobsled.openstates.org for more info.


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `billy_metadata/ri.py`
Content:
```
1 import datetime
2 
3 metadata = {
4     'name': 'Rhode Island',
5     'abbreviation': 'ri',
6     'legislature_name': 'Rhode Island General Assembly',
7     'legislature_url': 'http://www.rilin.state.ri.us/',
8     'capitol_timezone': 'America/New_York',
9     'chambers': {
10         'upper': {'name': 'Senate', 'title': 'Senator'},
11         'lower': {'name': 'House', 'title': 'Representative'},
12     },
13     'terms': [
14         {
15             'name': '2012',
16             'start_year': 2012,
17             'end_year': 2012,
18             'sessions': ['2012'],
19         },
20         {
21             'name': '2013',
22             'start_year': 2013,
23             'end_year': 2013,
24             'sessions': ['2013'],
25         },
26 
27         {
28             'name': '2014',
29             'start_year': 2014,
30             'end_year': 2014,
31             'sessions': ['2014'],
32         },
33         {
34             'name': '2015',
35             'start_year': 2015,
36             'end_year': 2015,
37             'sessions': ['2015'],
38         },
39         {
40             'name': '2016',
41             'start_year': 2016,
42             'end_year': 2017,
43             'sessions': ['2016'],
44         },
45         {
46             'name': '2017',
47             'start_year': 2017,
48             'end_year': 2018,
49             'sessions': ['2017'],
50         },
51     ],
52     'session_details': {
53         '2012': {
54             'type': 'primary',
55             'start_date': datetime.date(2012, 1, 3),
56             'end_date': datetime.date(2012, 6, 13),
57             'display_name': '2012 Regular Session',
58             '_scraped_name': '2012',
59         },
60         '2013': {
61             'type': 'primary',
62             'start_date': datetime.date(2013, 1, 1),
63             'end_date': datetime.date(2013, 7, 3),
64             'display_name': '2013 Regular Session',
65             '_scraped_name': '2013',
66         },
67         '2014': {
68             'type': 'primary',
69             'start_date': datetime.date(2014, 1, 7),
70             'end_date': datetime.date(2014, 6, 21),
71             'display_name': '2014 Regular Session',
72             '_scraped_name': '2014',
73         },
74         '2015': {
75             'type': 'primary',
76             'start_date': datetime.date(2015, 1, 6),
77             'end_date': datetime.date(2015, 6, 25),
78             'display_name': '2015 Regular Session',
79             '_scraped_name': '2015',
80         },
81         '2016': {
82             'type': 'primary',
83             'start_date': datetime.date(2016, 1, 5),
84             'display_name': '2016 Regular Session',
85             '_scraped_name': '2016',
86         },
87         '2017': {
88             'type': 'primary',
89             'display_name': '2017 Regular Session',
90             '_scraped_name': '2017',
91         },
92     },
93     'feature_flags': ['subjects', 'events', 'influenceexplorer'],
94     '_ignored_scraped_sessions': [
95         '2015',
96         '2014',
97         '2013',
98         '2012',
99         '2011',
100         '2010',
101         '2009',
102         '2008',
103         '2007'
104     ],
105 }
106
```

Path: `openstates/ri/__init__.py`
Content:
```
1 from pupa.scrape import Jurisdiction, Organization
2 
3 from openstates.utils import url_xpath
4 
5 from .bills import RIBillScraper
6 from .events import RIEventScraper
7 from .people import RIPersonScraper
8 from .committees import RICommitteeScraper
9 
10 
11 class RhodeIsland(Jurisdiction):
12     division_id = "ocd-division/country:us/state:ri"
13     classification = "government"
14     name = "Rhode Island"
15     url = "http://www.ri.gov/"
16     scrapers = {
17         'bills': RIBillScraper,
18         'events': RIEventScraper,
19         'people': RIPersonScraper,
20         'committees': RICommitteeScraper,
21     }
22     parties = [
23         {'name': 'Republican'},
24         {'name': 'Democratic'}
25     ]
26     legislative_sessions = [
27         {
28             "_scraped_name": "2012",
29             "classification": "primary",
30             "end_date": "2012-06-13",
31             "identifier": "2012",
32             "name": "2012 Regular Session",
33             "start_date": "2012-01-03"
34         },
35         {
36             "_scraped_name": "2013",
37             "classification": "primary",
38             "end_date": "2013-07-03",
39             "identifier": "2013",
40             "name": "2013 Regular Session",
41             "start_date": "2013-01-01"
42         },
43         {
44             "_scraped_name": "2014",
45             "classification": "primary",
46             "end_date": "2014-06-21",
47             "identifier": "2014",
48             "name": "2014 Regular Session",
49             "start_date": "2014-01-07"
50         },
51         {
52             "_scraped_name": "2015",
53             "classification": "primary",
54             "end_date": "2015-06-25",
55             "identifier": "2015",
56             "name": "2015 Regular Session",
57             "start_date": "2015-01-06"
58         },
59         {
60             "_scraped_name": "2016",
61             "classification": "primary",
62             "identifier": "2016",
63             "name": "2016 Regular Session",
64             "start_date": "2016-01-05"
65         },
66         {
67             "_scraped_name": "2017",
68             "classification": "primary",
69             "identifier": "2017",
70             "name": "2017 Regular Session",
71             "start_date": "2017-01-03",
72             "end_date": "2017-06-30",
73         }
74     ]
75     ignored_scraped_sessions = [
76         "2015",
77         "2014",
78         "2013",
79         "2012",
80         "2011",
81         "2010",
82         "2009",
83         "2008",
84         "2007"
85     ]
86 
87     def get_organizations(self):
88         legislature_name = "Rhode Island General Assembly"
89         lower_chamber_name = "House of Representatives"
90         lower_seats = 75
91         lower_title = "Representative"
92         upper_chamber_name = "Senate"
93         upper_seats = 38
94         upper_title = "Senator"
95 
96         legislature = Organization(name=legislature_name,
97                                    classification="legislature")
98         executive = Organization(name='Office of the Governor',
99                                  classification="executive")
100         upper = Organization(upper_chamber_name, classification='upper',
101                              parent_id=legislature._id)
102         lower = Organization(lower_chamber_name, classification='lower',
103                              parent_id=legislature._id)
104 
105         for n in range(1, upper_seats + 1):
106             upper.add_post(
107                 label=str(n), role=upper_title,
108                 division_id='{}/sldu:{}'.format(self.division_id, n))
109         for n in range(1, lower_seats + 1):
110             lower.add_post(
111                 label=str(n), role=lower_title,
112                 division_id='{}/sldl:{}'.format(self.division_id, n))
113 
114         yield legislature
115         yield executive
116         yield upper
117         yield lower
118 
119     def get_session_list(self):
120         return url_xpath(
121             'http://status.rilin.state.ri.us/bill_history.aspx?mode=previous',
122             '//select[@name="ctl00$rilinContent$cbYear"]/option/text()')
123
```
--- 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()

```

diff --git a/billy_metadata/ri.py b/billy_metadata/ri.py
--- a/billy_metadata/ri.py
+++ b/billy_metadata/ri.py
@@ -46,7 +46,7 @@
             'name': '2017',
             'start_year': 2017,
             'end_year': 2018,
-            'sessions': ['2017'],
+            'sessions': ['2017', '2018'],
         },
     ],
     'session_details': {
@@ -89,6 +89,11 @@
             'display_name': '2017 Regular Session',
             '_scraped_name': '2017',
         },
+        '2018': {
+            'type': 'primary',
+            'display_name': '2018 Regular Session',
+            '_scraped_name': '2018',
+        },
     },
     'feature_flags': ['subjects', 'events', 'influenceexplorer'],
     '_ignored_scraped_sessions': [
diff --git a/openstates/ri/__init__.py b/openstates/ri/__init__.py
--- a/openstates/ri/__init__.py
+++ b/openstates/ri/__init__.py
@@ -70,7 +70,14 @@
             "name": "2017 Regular Session",
             "start_date": "2017-01-03",
             "end_date": "2017-06-30",
-        }
+        },
+        {
+            "_scraped_name": "2018",
+            "classification": "primary",
+            "identifier": "2018",
+            "name": "2018 Regular Session",
+            "start_date": "2018-01-02",
+        },
     ]
     ignored_scraped_sessions = [
         "2015",

{"golden_diff": "diff --git a/billy_metadata/ri.py b/billy_metadata/ri.py\n--- a/billy_metadata/ri.py\n+++ b/billy_metadata/ri.py\n@@ -46,7 +46,7 @@\n             'name': '2017',\n             'start_year': 2017,\n             'end_year': 2018,\n-            'sessions': ['2017'],\n+            'sessions': ['2017', '2018'],\n         },\n     ],\n     'session_details': {\n@@ -89,6 +89,11 @@\n             'display_name': '2017 Regular Session',\n             '_scraped_name': '2017',\n         },\n+        '2018': {\n+            'type': 'primary',\n+            'display_name': '2018 Regular Session',\n+            '_scraped_name': '2018',\n+        },\n     },\n     'feature_flags': ['subjects', 'events', 'influenceexplorer'],\n     '_ignored_scraped_sessions': [\ndiff --git a/openstates/ri/__init__.py b/openstates/ri/__init__.py\n--- a/openstates/ri/__init__.py\n+++ b/openstates/ri/__init__.py\n@@ -70,7 +70,14 @@\n             \"name\": \"2017 Regular Session\",\n             \"start_date\": \"2017-01-03\",\n             \"end_date\": \"2017-06-30\",\n-        }\n+        },\n+        {\n+            \"_scraped_name\": \"2018\",\n+            \"classification\": \"primary\",\n+            \"identifier\": \"2018\",\n+            \"name\": \"2018 Regular Session\",\n+            \"start_date\": \"2018-01-02\",\n+        },\n     ]\n     ignored_scraped_sessions = [\n         \"2015\",\n", "issue": "RI failing since at least 2018-01-02\nRI has been failing since 2018-01-02\n\nBased on automated runs it appears that RI has not run successfully in 2 days (2018-01-02).\n\n\n```\n  no pupa_settings on path, using defaults\nri (scrape, import)\n  bills: {}\n  people: {}\n  committees: {}\n23:00:36 CRITICAL pupa: Session(s) 2018 were reported by RhodeIsland.get_session_list() but were not found in RhodeIsland.legislative_sessions or RhodeIsland.ignored_scraped_sessions.\n```\n\nVisit http://bobsled.openstates.org for more info.\n\n", "before_files": [{"content": "import datetime\n\nmetadata = {\n    'name': 'Rhode Island',\n    'abbreviation': 'ri',\n    'legislature_name': 'Rhode Island General Assembly',\n    'legislature_url': 'http://www.rilin.state.ri.us/',\n    'capitol_timezone': 'America/New_York',\n    'chambers': {\n        'upper': {'name': 'Senate', 'title': 'Senator'},\n        'lower': {'name': 'House', 'title': 'Representative'},\n    },\n    'terms': [\n        {\n            'name': '2012',\n            'start_year': 2012,\n            'end_year': 2012,\n            'sessions': ['2012'],\n        },\n        {\n            'name': '2013',\n            'start_year': 2013,\n            'end_year': 2013,\n            'sessions': ['2013'],\n        },\n\n        {\n            'name': '2014',\n            'start_year': 2014,\n            'end_year': 2014,\n            'sessions': ['2014'],\n        },\n        {\n            'name': '2015',\n            'start_year': 2015,\n            'end_year': 2015,\n            'sessions': ['2015'],\n        },\n        {\n            'name': '2016',\n            'start_year': 2016,\n            'end_year': 2017,\n            'sessions': ['2016'],\n        },\n        {\n            'name': '2017',\n            'start_year': 2017,\n            'end_year': 2018,\n            'sessions': ['2017'],\n        },\n    ],\n    'session_details': {\n        '2012': {\n            'type': 'primary',\n            'start_date': datetime.date(2012, 1, 3),\n            'end_date': datetime.date(2012, 6, 13),\n            'display_name': '2012 Regular Session',\n            '_scraped_name': '2012',\n        },\n        '2013': {\n            'type': 'primary',\n            'start_date': datetime.date(2013, 1, 1),\n            'end_date': datetime.date(2013, 7, 3),\n            'display_name': '2013 Regular Session',\n            '_scraped_name': '2013',\n        },\n        '2014': {\n            'type': 'primary',\n            'start_date': datetime.date(2014, 1, 7),\n            'end_date': datetime.date(2014, 6, 21),\n            'display_name': '2014 Regular Session',\n            '_scraped_name': '2014',\n        },\n        '2015': {\n            'type': 'primary',\n            'start_date': datetime.date(2015, 1, 6),\n            'end_date': datetime.date(2015, 6, 25),\n            'display_name': '2015 Regular Session',\n            '_scraped_name': '2015',\n        },\n        '2016': {\n            'type': 'primary',\n            'start_date': datetime.date(2016, 1, 5),\n            'display_name': '2016 Regular Session',\n            '_scraped_name': '2016',\n        },\n        '2017': {\n            'type': 'primary',\n            'display_name': '2017 Regular Session',\n            '_scraped_name': '2017',\n        },\n    },\n    'feature_flags': ['subjects', 'events', 'influenceexplorer'],\n    '_ignored_scraped_sessions': [\n        '2015',\n        '2014',\n        '2013',\n        '2012',\n        '2011',\n        '2010',\n        '2009',\n        '2008',\n        '2007'\n    ],\n}\n", "path": "billy_metadata/ri.py"}, {"content": "from pupa.scrape import Jurisdiction, Organization\n\nfrom openstates.utils import url_xpath\n\nfrom .bills import RIBillScraper\nfrom .events import RIEventScraper\nfrom .people import RIPersonScraper\nfrom .committees import RICommitteeScraper\n\n\nclass RhodeIsland(Jurisdiction):\n    division_id = \"ocd-division/country:us/state:ri\"\n    classification = \"government\"\n    name = \"Rhode Island\"\n    url = \"http://www.ri.gov/\"\n    scrapers = {\n        'bills': RIBillScraper,\n        'events': RIEventScraper,\n        'people': RIPersonScraper,\n        'committees': RICommitteeScraper,\n    }\n    parties = [\n        {'name': 'Republican'},\n        {'name': 'Democratic'}\n    ]\n    legislative_sessions = [\n        {\n            \"_scraped_name\": \"2012\",\n            \"classification\": \"primary\",\n            \"end_date\": \"2012-06-13\",\n            \"identifier\": \"2012\",\n            \"name\": \"2012 Regular Session\",\n            \"start_date\": \"2012-01-03\"\n        },\n        {\n            \"_scraped_name\": \"2013\",\n            \"classification\": \"primary\",\n            \"end_date\": \"2013-07-03\",\n            \"identifier\": \"2013\",\n            \"name\": \"2013 Regular Session\",\n            \"start_date\": \"2013-01-01\"\n        },\n        {\n            \"_scraped_name\": \"2014\",\n            \"classification\": \"primary\",\n            \"end_date\": \"2014-06-21\",\n            \"identifier\": \"2014\",\n            \"name\": \"2014 Regular Session\",\n            \"start_date\": \"2014-01-07\"\n        },\n        {\n            \"_scraped_name\": \"2015\",\n            \"classification\": \"primary\",\n            \"end_date\": \"2015-06-25\",\n            \"identifier\": \"2015\",\n            \"name\": \"2015 Regular Session\",\n            \"start_date\": \"2015-01-06\"\n        },\n        {\n            \"_scraped_name\": \"2016\",\n            \"classification\": \"primary\",\n            \"identifier\": \"2016\",\n            \"name\": \"2016 Regular Session\",\n            \"start_date\": \"2016-01-05\"\n        },\n        {\n            \"_scraped_name\": \"2017\",\n            \"classification\": \"primary\",\n            \"identifier\": \"2017\",\n            \"name\": \"2017 Regular Session\",\n            \"start_date\": \"2017-01-03\",\n            \"end_date\": \"2017-06-30\",\n        }\n    ]\n    ignored_scraped_sessions = [\n        \"2015\",\n        \"2014\",\n        \"2013\",\n        \"2012\",\n        \"2011\",\n        \"2010\",\n        \"2009\",\n        \"2008\",\n        \"2007\"\n    ]\n\n    def get_organizations(self):\n        legislature_name = \"Rhode Island General Assembly\"\n        lower_chamber_name = \"House of Representatives\"\n        lower_seats = 75\n        lower_title = \"Representative\"\n        upper_chamber_name = \"Senate\"\n        upper_seats = 38\n        upper_title = \"Senator\"\n\n        legislature = Organization(name=legislature_name,\n                                   classification=\"legislature\")\n        executive = Organization(name='Office of the Governor',\n                                 classification=\"executive\")\n        upper = Organization(upper_chamber_name, classification='upper',\n                             parent_id=legislature._id)\n        lower = Organization(lower_chamber_name, classification='lower',\n                             parent_id=legislature._id)\n\n        for n in range(1, upper_seats + 1):\n            upper.add_post(\n                label=str(n), role=upper_title,\n                division_id='{}/sldu:{}'.format(self.division_id, n))\n        for n in range(1, lower_seats + 1):\n            lower.add_post(\n                label=str(n), role=lower_title,\n                division_id='{}/sldl:{}'.format(self.division_id, n))\n\n        yield legislature\n        yield executive\n        yield upper\n        yield lower\n\n    def get_session_list(self):\n        return url_xpath(\n            'http://status.rilin.state.ri.us/bill_history.aspx?mode=previous',\n            '//select[@name=\"ctl00$rilinContent$cbYear\"]/option/text()')\n", "path": "openstates/ri/__init__.py"}], "after_files": [{"content": "import datetime\n\nmetadata = {\n    'name': 'Rhode Island',\n    'abbreviation': 'ri',\n    'legislature_name': 'Rhode Island General Assembly',\n    'legislature_url': 'http://www.rilin.state.ri.us/',\n    'capitol_timezone': 'America/New_York',\n    'chambers': {\n        'upper': {'name': 'Senate', 'title': 'Senator'},\n        'lower': {'name': 'House', 'title': 'Representative'},\n    },\n    'terms': [\n        {\n            'name': '2012',\n            'start_year': 2012,\n            'end_year': 2012,\n            'sessions': ['2012'],\n        },\n        {\n            'name': '2013',\n            'start_year': 2013,\n            'end_year': 2013,\n            'sessions': ['2013'],\n        },\n\n        {\n            'name': '2014',\n            'start_year': 2014,\n            'end_year': 2014,\n            'sessions': ['2014'],\n        },\n        {\n            'name': '2015',\n            'start_year': 2015,\n            'end_year': 2015,\n            'sessions': ['2015'],\n        },\n        {\n            'name': '2016',\n            'start_year': 2016,\n            'end_year': 2017,\n            'sessions': ['2016'],\n        },\n        {\n            'name': '2017',\n            'start_year': 2017,\n            'end_year': 2018,\n            'sessions': ['2017', '2018'],\n        },\n    ],\n    'session_details': {\n        '2012': {\n            'type': 'primary',\n            'start_date': datetime.date(2012, 1, 3),\n            'end_date': datetime.date(2012, 6, 13),\n            'display_name': '2012 Regular Session',\n            '_scraped_name': '2012',\n        },\n        '2013': {\n            'type': 'primary',\n            'start_date': datetime.date(2013, 1, 1),\n            'end_date': datetime.date(2013, 7, 3),\n            'display_name': '2013 Regular Session',\n            '_scraped_name': '2013',\n        },\n        '2014': {\n            'type': 'primary',\n            'start_date': datetime.date(2014, 1, 7),\n            'end_date': datetime.date(2014, 6, 21),\n            'display_name': '2014 Regular Session',\n            '_scraped_name': '2014',\n        },\n        '2015': {\n            'type': 'primary',\n            'start_date': datetime.date(2015, 1, 6),\n            'end_date': datetime.date(2015, 6, 25),\n            'display_name': '2015 Regular Session',\n            '_scraped_name': '2015',\n        },\n        '2016': {\n            'type': 'primary',\n            'start_date': datetime.date(2016, 1, 5),\n            'display_name': '2016 Regular Session',\n            '_scraped_name': '2016',\n        },\n        '2017': {\n            'type': 'primary',\n            'display_name': '2017 Regular Session',\n            '_scraped_name': '2017',\n        },\n        '2018': {\n            'type': 'primary',\n            'display_name': '2018 Regular Session',\n            '_scraped_name': '2018',\n        },\n    },\n    'feature_flags': ['subjects', 'events', 'influenceexplorer'],\n    '_ignored_scraped_sessions': [\n        '2015',\n        '2014',\n        '2013',\n        '2012',\n        '2011',\n        '2010',\n        '2009',\n        '2008',\n        '2007'\n    ],\n}\n", "path": "billy_metadata/ri.py"}, {"content": "from pupa.scrape import Jurisdiction, Organization\n\nfrom openstates.utils import url_xpath\n\nfrom .bills import RIBillScraper\nfrom .events import RIEventScraper\nfrom .people import RIPersonScraper\nfrom .committees import RICommitteeScraper\n\n\nclass RhodeIsland(Jurisdiction):\n    division_id = \"ocd-division/country:us/state:ri\"\n    classification = \"government\"\n    name = \"Rhode Island\"\n    url = \"http://www.ri.gov/\"\n    scrapers = {\n        'bills': RIBillScraper,\n        'events': RIEventScraper,\n        'people': RIPersonScraper,\n        'committees': RICommitteeScraper,\n    }\n    parties = [\n        {'name': 'Republican'},\n        {'name': 'Democratic'}\n    ]\n    legislative_sessions = [\n        {\n            \"_scraped_name\": \"2012\",\n            \"classification\": \"primary\",\n            \"end_date\": \"2012-06-13\",\n            \"identifier\": \"2012\",\n            \"name\": \"2012 Regular Session\",\n            \"start_date\": \"2012-01-03\"\n        },\n        {\n            \"_scraped_name\": \"2013\",\n            \"classification\": \"primary\",\n            \"end_date\": \"2013-07-03\",\n            \"identifier\": \"2013\",\n            \"name\": \"2013 Regular Session\",\n            \"start_date\": \"2013-01-01\"\n        },\n        {\n            \"_scraped_name\": \"2014\",\n            \"classification\": \"primary\",\n            \"end_date\": \"2014-06-21\",\n            \"identifier\": \"2014\",\n            \"name\": \"2014 Regular Session\",\n            \"start_date\": \"2014-01-07\"\n        },\n        {\n            \"_scraped_name\": \"2015\",\n            \"classification\": \"primary\",\n            \"end_date\": \"2015-06-25\",\n            \"identifier\": \"2015\",\n            \"name\": \"2015 Regular Session\",\n            \"start_date\": \"2015-01-06\"\n        },\n        {\n            \"_scraped_name\": \"2016\",\n            \"classification\": \"primary\",\n            \"identifier\": \"2016\",\n            \"name\": \"2016 Regular Session\",\n            \"start_date\": \"2016-01-05\"\n        },\n        {\n            \"_scraped_name\": \"2017\",\n            \"classification\": \"primary\",\n            \"identifier\": \"2017\",\n            \"name\": \"2017 Regular Session\",\n            \"start_date\": \"2017-01-03\",\n            \"end_date\": \"2017-06-30\",\n        },\n        {\n            \"_scraped_name\": \"2018\",\n            \"classification\": \"primary\",\n            \"identifier\": \"2018\",\n            \"name\": \"2018 Regular Session\",\n            \"start_date\": \"2018-01-02\",\n        },\n    ]\n    ignored_scraped_sessions = [\n        \"2015\",\n        \"2014\",\n        \"2013\",\n        \"2012\",\n        \"2011\",\n        \"2010\",\n        \"2009\",\n        \"2008\",\n        \"2007\"\n    ]\n\n    def get_organizations(self):\n        legislature_name = \"Rhode Island General Assembly\"\n        lower_chamber_name = \"House of Representatives\"\n        lower_seats = 75\n        lower_title = \"Representative\"\n        upper_chamber_name = \"Senate\"\n        upper_seats = 38\n        upper_title = \"Senator\"\n\n        legislature = Organization(name=legislature_name,\n                                   classification=\"legislature\")\n        executive = Organization(name='Office of the Governor',\n                                 classification=\"executive\")\n        upper = Organization(upper_chamber_name, classification='upper',\n                             parent_id=legislature._id)\n        lower = Organization(lower_chamber_name, classification='lower',\n                             parent_id=legislature._id)\n\n        for n in range(1, upper_seats + 1):\n            upper.add_post(\n                label=str(n), role=upper_title,\n                division_id='{}/sldu:{}'.format(self.division_id, n))\n        for n in range(1, lower_seats + 1):\n            lower.add_post(\n                label=str(n), role=lower_title,\n                division_id='{}/sldl:{}'.format(self.division_id, n))\n\n        yield legislature\n        yield executive\n        yield upper\n        yield lower\n\n    def get_session_list(self):\n        return url_xpath(\n            'http://status.rilin.state.ri.us/bill_history.aspx?mode=previous',\n            '//select[@name=\"ctl00$rilinContent$cbYear\"]/option/text()')\n", "path": "openstates/ri/__init__.py"}]}