internlm/SWE-Fixer-Train-110K huggingface dataset:
Repository: openstates/openstates-scrapers

Issue:
NH failing since at least 2018-07-21
NH has been failing since 2018-07-21

Based on automated runs it appears that NH has not run successfully in 2 days (2018-07-21).


```
   Incumbent
new
new
 Incumbent
 Incumbent
new
new
 Incumbent
 Incumbent
new
 Incumbent
 Incumbent
 Incumbent
Former
 Incumbent
new
 Incumbent
 Incumbent
 Incumbent
 Incumbent
new
 Incumbent
 Incumbent
 Incumbent
new
 Incumbent
 Incumbent
new
 Incumbent
new
 Incumbent
 Incumbent
Traceback (most recent call last):
  File "/opt/openstates/venv-pupa//bin/pupa", line 11, in <module>
    load_entry_point('pupa', 'console_scripts', 'pupa')()
  File "/opt/openstates/venv-pupa/src/pupa/pupa/cli/__main__.py", line 68, in main
    subcommands[args.subcommand].handle(args, other)
  File "/opt/openstates/venv-pupa/src/pupa/pupa/cli/commands/update.py", line 260, in handle
    return self.do_handle(args, other, juris)
  File "/opt/openstates/venv-pupa/src/pupa/pupa/cli/commands/update.py", line 305, in do_handle
    report['scrape'] = self.do_scrape(juris, args, scrapers)
  File "/opt/openstates/venv-pupa/src/pupa/pupa/cli/commands/update.py", line 173, in do_scrape
    report[scraper_name] = scraper.do_scrape(**scrape_args)
  File "/opt/openstates/venv-pupa/src/pupa/pupa/scrape/base.py", line 111, in do_scrape
    for obj in self.scrape(**kwargs) or []:
  File "/opt/openstates/openstates/openstates/nh/bills.py", line 59, in scrape
    yield from self.scrape_chamber(chamber, session)
  File "/opt/openstates/openstates/openstates/nh/bills.py", line 114, in scrape_chamber
    bill_type = bill_type_map[expanded_bill_id.split(' ')[0][1:]]
KeyError: 'SSB0001'
```

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



Discussion:

Resolving patch:
diff --git a/openstates/nh/bills.py b/openstates/nh/bills.py
--- a/openstates/nh/bills.py
+++ b/openstates/nh/bills.py
@@ -18,6 +18,9 @@
     # really "bill of address";
     # see https://github.com/opencivicdata/python-opencivicdata/issues/115
     'A': 'bill',
+    # special session senate/house bill
+    'SSSB': 'bill',
+    'SSHB': 'bill',
 }
 action_classifiers = [
     ('Minority Committee Report', None),        # avoid calling these passage
@@ -110,6 +113,9 @@ def scrape_chamber(self, chamber, session):
                     bill_type = 'petition'
                 elif expanded_bill_id.startswith('AR') and bill_id.startswith('CACR'):
                     bill_type = 'constitutional amendment'
+                elif expanded_bill_id.startswith('SSSB') or expanded_bill_id.startswith('SSHB'):
+                    # special session house/senate bills
+                    bill_type = 'bill'
                 else:
                     bill_type = bill_type_map[expanded_bill_id.split(' ')[0][1:]]
 


Test patch:
Repository: openstates/openstates-scrapers

Issue:
NC failing since at least 2018-09-23
NC has been failing since 2018-09-23

Based on automated runs it appears that NC has not run successfully in 2 days (2018-09-23).


```
  /opt/openstates/venv-pupa/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
  """)
23:01:28 CRITICAL pupa: Session(s) 2018 Third Extra Session were reported by NorthCarolina.get_session_list() but were not found in NorthCarolina.legislative_sessions or NorthCarolina.ignored_scraped_sessions.
loaded Open States pupa settings...
nc (scrape, import)
  people: {}
  committees: {}
  bills: {}
```

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



Discussion:
I'll jump on this.

Resolving patch:
diff --git a/billy_metadata/nc.py b/billy_metadata/nc.py
--- a/billy_metadata/nc.py
+++ b/billy_metadata/nc.py
@@ -111,6 +111,9 @@
         '2017E2': {'type': 'special',
                     'display_name': '2018 Extra Session 2',
                   },
+        # '2017E3': {'type': 'special',
+        #             'display_name': '2018 Extra Session 3',
+        #           },
     },
     _ignored_scraped_sessions=[
         '2008 Extra Session', '2007-2008 Session',
diff --git a/openstates/nc/__init__.py b/openstates/nc/__init__.py
--- a/openstates/nc/__init__.py
+++ b/openstates/nc/__init__.py
@@ -95,8 +95,17 @@ class NorthCarolina(Jurisdiction):
             "name": "2018 Extra Session 2",
             "start_date": "2018-08-24"
         },
+        # TODO: uncomment 10/9
+        # {
+        #     "_scraped_name": "2018 Third Extra Session",
+        #     "classification": "special",
+        #     "identifier": "2017E3",
+        #     "name": "2018 Extra Session 3",
+        #     "start_date": "2018-10-09"
+        # },
     ]
     ignored_scraped_sessions = [
+        '2018 Third Extra Session',  # TODO: remove 10/9
         '2008 Extra Session',
         '2007-2008 Session',
         '2007 Extra Session',


Test patch:
Repository: openstates/openstates-scrapers

Issue:
ME failing since at least 2018-10-25
ME has been failing since 2018-10-25

Based on automated runs it appears that ME has not run successfully in 2 days (2018-10-25).


```
  loaded Open States pupa settings...
me (scrape, import)
  bills: {}
Traceback (most recent call last):
  File "/opt/openstates/venv-pupa//bin/pupa", line 11, in <module>
    load_entry_point('pupa', 'console_scripts', 'pupa')()
  File "/opt/openstates/venv-pupa/src/pupa/pupa/cli/__main__.py", line 68, in main
    subcommands[args.subcommand].handle(args, other)
  File "/opt/openstates/venv-pupa/src/pupa/pupa/cli/commands/update.py", line 260, in handle
    return self.do_handle(args, other, juris)
  File "/opt/openstates/venv-pupa/src/pupa/pupa/cli/commands/update.py", line 301, in do_handle
    self.check_session_list(juris)
  File "/opt/openstates/venv-pupa/src/pupa/pupa/cli/commands/update.py", line 228, in check_session_list
    scraped_sessions = juris.get_session_list()
  File "/opt/openstates/openstates/openstates/me/__init__.py", line 98, in get_session_list
    sessions.remove('jb-Test')
ValueError: list.remove(x): x not in list
```

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



Discussion:
I'll grab this one shortly.

Resolving patch:
diff --git a/openstates/me/__init__.py b/openstates/me/__init__.py
--- a/openstates/me/__init__.py
+++ b/openstates/me/__init__.py
@@ -60,7 +60,9 @@ class Maine(Jurisdiction):
             "end_date": "2017-06-14",
         }
     ]
-    ignored_scraped_sessions = []
+    ignored_scraped_sessions = [
+        '2001-2002'
+    ]
 
     def get_organizations(self):
         legislature_name = "Maine Legislature"
@@ -95,6 +97,4 @@ def get_organizations(self):
     def get_session_list(self):
         sessions = url_xpath('http://www.mainelegislature.org/LawMakerWeb/advancedsearch.asp',
                              '//select[@name="LegSession"]/option/text()')
-        sessions.remove('jb-Test')
-        sessions.remove('2001-2002')
         return sessions


Test patch:
Repository: openstates/openstates-scrapers

Issue:
FL failing since at least 2018-11-14
FL has been failing since 2018-11-14

Based on automated runs it appears that FL has not run successfully in 2 days (2018-11-14).


```
  loaded Open States pupa settings...
fl (scrape, import)
  bills: {}
04:01:17 CRITICAL pupa: Session(s) 2018O were reported by Florida.get_session_list() but were not found in Florida.legislative_sessions or Florida.ignored_scraped_sessions.
```

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



Discussion:
this is an organizational session that can be ignored; i'll grab it later.

Resolving patch:
diff --git a/openstates/fl/__init__.py b/openstates/fl/__init__.py
--- a/openstates/fl/__init__.py
+++ b/openstates/fl/__init__.py
@@ -59,7 +59,7 @@ class Florida(Jurisdiction):
         '2012O',
         '2014O',
         '2016O',
-        '2018',
+        '2018O',
         '2019',
     ]
 
diff --git a/openstates/sc/__init__.py b/openstates/sc/__init__.py
--- a/openstates/sc/__init__.py
+++ b/openstates/sc/__init__.py
@@ -51,9 +51,19 @@ class SouthCarolina(Jurisdiction):
             "identifier": "2017-2018",
             "name": "2017-2018 Regular Session",
             "start_date": "2017-01-10"
-        }
+        },
+        # TODO: Uncomment this when they start posting
+        # {
+        #     "_scraped_name": "123 - (2019-2020)",
+        #     "classification": "primary",
+        #     "end_date": "2019-05-09",
+        #     "identifier": "2019-2020",
+        #     "name": "2019-2020 Regular Session",
+        #     "start_date": "2019-01-09"
+        # }
     ]
     ignored_scraped_sessions = [
+        "123 - (2019-2020)",
         "118 - (2009-2010)",
         "117 - (2007-2008)",
         "116 - (2005-2006)",
diff --git a/openstates/sc/bills.py b/openstates/sc/bills.py
--- a/openstates/sc/bills.py
+++ b/openstates/sc/bills.py
@@ -137,6 +137,7 @@ def scrape_subjects(self, session):
             '2013-2014': '120',
             '2015-2016': '121',
             '2017-2018': '122',
+            '2019-2020': '123',
         }[session]
 
         subject_search_url = 'https://www.scstatehouse.gov/subjectsearch.php'


Test patch:
Repository: openstates/openstates-scrapers

Issue:
CA not running with new image
it seems like CA isn't running right now w/ the switch to Alpine, need to investigate


Discussion:

Resolving patch:
diff --git a/openstates/ca/models.py b/openstates/ca/models.py
--- a/openstates/ca/models.py
+++ b/openstates/ca/models.py
@@ -1,7 +1,7 @@
 from sqlalchemy import (Column, Integer, String, ForeignKey,
                         DateTime, Numeric, UnicodeText)
 from sqlalchemy.sql import and_
-from sqlalchemy.orm import backref, relation
+from sqlalchemy.orm import backref, relation, foreign
 from sqlalchemy.ext.declarative import declarative_base
 
 from lxml import etree
@@ -225,8 +225,7 @@ def threshold(self):
 class CAVoteDetail(Base):
     __tablename__ = "bill_detail_vote_tbl"
 
-    bill_id = Column(String(20), ForeignKey(CABill.bill_id),
-                     ForeignKey(CAVoteSummary.bill_id), primary_key=True)
+    bill_id = Column(String(20), ForeignKey(CABill.bill_id), primary_key=True)
     location_code = Column(String(6), ForeignKey(CAVoteSummary.location_code),
                            primary_key=True)
     legislator_name = Column(String(50), primary_key=True)
@@ -240,10 +239,12 @@ class CAVoteDetail(Base):
     trans_uid = Column(String(30), primary_key=True)
     trans_update = Column(DateTime, primary_key=True)
 
-    bill = relation(CABill, backref=backref('detail_votes'))
+    bill = relation(CABill,
+                    primaryjoin="CABill.bill_id == foreign(CAVoteDetail.bill_id)",
+                    backref=backref('detail_votes'))
     summary = relation(
         CAVoteSummary,
-        primaryjoin=and_(CAVoteSummary.bill_id == bill_id,
+        primaryjoin=and_(CAVoteSummary.bill_id == foreign(bill_id),
                          CAVoteSummary.location_code == location_code,
                          CAVoteSummary.vote_date_time == vote_date_time,
                          CAVoteSummary.vote_date_seq == vote_date_seq,


Test patch:
Repository: openstates/openstates-scrapers

Issue:
TX: No vote data for v2 API
State: TX

There is no vote data being returned for TX bills/resolutions for the 86 session in the v2 API.  I am opening this issue because it is specific to the latest API, and previous issues were specific to the v1 API.

I would like to have a conversation with someone from open-states who can explain your use of the scrapers for retrieving vote data, since it appears you need some help to update/fix these.  We have some people that can probably be mobilized to help with this from [Open Austin](https://www.open-austin.org/]



Discussion:
Related: https://github.com/openstates/openstates/issues/2494
It looks like we had the TX vote scraper turned off while we waited for data to come in (we do this to make sure new sessions don't require any scraper fixes) and it just needs to be re-enabled. I'll do that shortly, thanks for flagging. 

We usually eagerly take offers to jump in and help, but this might just turn out to be a one-liner.

Resolving patch:
diff --git a/openstates/tx/__init__.py b/openstates/tx/__init__.py
--- a/openstates/tx/__init__.py
+++ b/openstates/tx/__init__.py
@@ -5,7 +5,7 @@
 # from .committees import TXCommitteeScraper
 # from .events import TXEventScraper
 from .people import TXPersonScraper
-# from .votes import TXVoteScraper
+from .votes import TXVoteScraper
 
 
 class Texas(Jurisdiction):
@@ -18,7 +18,7 @@ class Texas(Jurisdiction):
         # 'committees': TXCommitteeScraper,
         'bills': TXBillScraper,
         # Re-enable vote scraper when adding next regular session
-        # 'votes': TXVoteScraper,
+        'votes': TXVoteScraper,
         # 'events': TXEventScraper
     }
     legislative_sessions = [


Test patch:
Repository: openstates/openstates-scrapers

Issue:
KS failing since at least 2019-02-24
KS has been failing since 2019-02-24

Based on automated runs it appears that KS has not run successfully in 2 days (2019-02-24).


```
  06:02:22 INFO pupa: save jurisdiction Kansas as jurisdiction_ocd-jurisdiction-country:us-state:ks-government.json
06:02:22 INFO pupa: save organization Kansas State Legislature as organization_ea95774a-38c2-11e9-b4ad-021e9c8c6450.json
06:02:22 INFO pupa: save organization Senate as organization_ea957a1a-38c2-11e9-b4ad-021e9c8c6450.json
06:02:22 INFO pupa: save organization House as organization_ea957bbe-38c2-11e9-b4ad-021e9c8c6450.json
06:02:22 INFO pupa: no session specified, using 2019-2020
06:02:22 INFO scrapelib: GET - http://www.kslegislature.org/li/api/v11/rev-1/bill_status/
06:02:23 WARNING pupa: unknown action code on SB9: misc_he_200 Hearing: Tuesday, January 22, 2019, 10:30 AM Room 548-S
06:02:23 WARNING pupa: unknown action code on SB9: misc_he_200 Hearing: Tuesday, February 12, 2019, 9:00 AM Room 112-N
06:02:23 INFO scrapelib: GET - http://www.kslegislature.org/li/b2019_20/measures/sb9/
06:02:27 INFO scrapelib: GET - http://www.kslegislature.org/li/b2019_20/measures/vote_view/je_20190222111337_914158/
06:02:32 WARNING scrapelib: sleeping for 10 seconds before retry
06:02:42 WARNING scrapelib: sleeping for 20 seconds before retry
06:03:03 WARNING scrapelib: sleeping for 40 seconds before retry
```

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



Discussion:

Resolving patch:
diff --git a/openstates/ks/bills.py b/openstates/ks/bills.py
--- a/openstates/ks/bills.py
+++ b/openstates/ks/bills.py
@@ -1,6 +1,7 @@
 import re
 import json
 import datetime
+import requests
 
 import lxml.html
 from pupa.scrape import Scraper, Bill, VoteEvent
@@ -179,8 +180,16 @@ def scrape_html(self, bill, session):
                                        on_duplicate='ignore')
 
     def parse_vote(self, bill, link):
-        text = self.get(link).text
-        if 'Page Not Found' in text:
+        # Server sometimes sends proper error headers,
+        # sometimes not
+        try:
+            self.info("Get {}".format(link))
+            text = requests.get(link).text
+        except requests.exceptions.HTTPError as err:
+            self.warning("{} fetching vote {}, skipping".format(err, link))
+            return
+
+        if 'Page Not Found' in text or 'Page Unavailable' in text:
             self.warning("missing vote, skipping")
             return
         member_doc = lxml.html.fromstring(text)


Test patch:
Repository: openstates/openstates-scrapers

Issue:
CA Sponsor Logic not correct
State: CA

We appear to be grabbing an incomplete sponsor list in CA, i think because we're filtering sponsors to only the house of origin for some reason.

https://openstates.org/ca/bills/20192020/SB126/
http://leginfo.legislature.ca.gov/faces/billStatusClient.xhtml?bill_id=201920200SB126

https://github.com/openstates/openstates/blob/master/openstates/ca/bills.py#L461 appears to be the offending line. Are we safe to just remove it? Was it done for a reason?




Discussion:
Extra note; here's the SQL query for the CA mysql to get all authors across versions. The python code correctly limits to the current version:

```sql
SELECT bva.* FROM bill_version_authors_tbl bva, bill_version_tbl bv WHERE bv.bill_id = '201920200SB126' AND bva.bill_version_id = bv.bill_version_id;
```

Resolving patch:
diff --git a/openstates/ca/bills.py b/openstates/ca/bills.py
--- a/openstates/ca/bills.py
+++ b/openstates/ca/bills.py
@@ -326,11 +326,6 @@ def scrape(self, chamber=None, session=None):
 
     def scrape_bill_type(self, chamber, session, bill_type, type_abbr,
                          committee_abbr_regex=get_committee_name_regex()):
-        if chamber == 'upper':
-            chamber_name = 'SENATE'
-        else:
-            chamber_name = 'ASSEMBLY'
-
         bills = self.session.query(CABill).filter_by(
             session_year=session).filter_by(
             measure_type=type_abbr)
@@ -458,14 +453,13 @@ def scrape_bill_type(self, chamber, session, bill_type, type_abbr,
                 fsbill.add_title(title)
 
             for author in version.authors:
-                if author.house == chamber_name:
-                    fsbill.add_sponsorship(
-                        author.name,
-                        classification=SPONSOR_TYPES[author.contribution],
-                        primary=author.primary_author_flg == 'Y',
-                        entity_type='person',
-                    )
-                    # fsbill.sponsorships[-1]['extras'] = {'official_type': author.contribution}
+                fsbill.add_sponsorship(
+                    author.name,
+                    classification=SPONSOR_TYPES[author.contribution],
+                    primary=author.primary_author_flg == 'Y',
+                    entity_type='person',
+                )
+                # fsbill.sponsorships[-1]['extras'] = {'official_type': author.contribution}
 
             seen_actions = set()
             for action in bill.actions:


Test patch:
Repository: openstates/openstates-scrapers

Issue:
AL: Alabama bill count very low
State: AL - Alabama

The [bill results for AL](https://openstates.org/graphql?operationName=null&query=%7B%0A%20%20bills(jurisdiction%3A%22Alabama%22%2Csession%3A%222019rs%22%2Cfirst%3A10)%20%7B%0A%0A%20%20%20%20totalCount%0A%20%20%7D%0A%7D) indicate that 133 bills are available for session `2019rs`.

```
{
  "data": {
    "bills": {
      "totalCount": 133
    }
  }
}
```

However the AL website lists "849 Instruments" in the results for searching the 2019 regular session with bills from both houses that have had one reading in house of origin (this page is unlinkable, because AL site is a horror). So a lot more bills should be showing up.

Running the scraper locally, it seems to work fine:

`docker-compose run --rm scrape al bills --scrape session=2019rs`

```
al (scrape)
  bills: {'session': '2019rs'}
bills scrape:
  duration:  0:25:43.643260
  objects:
    bill: 1067
    vote_event: 458
jurisdiction scrape:
  duration:  0:00:00.019707
  objects:
    jurisdiction: 1
    organization: 3
```

Anything I can do to help?


Discussion:
By default we only scrape the latest session which is determined by the order in the __init__.py, I've moved the special session for now, the next scrape should fix this

https://github.com/openstates/openstates/commit/bf59a03ea074b81af166fd0a3771c0f3b7e4ccfb
Ah, OK. Most recent session is always the last item in the legislative_sessions array.
Today API still reports 133 bills, looks like bobsled reports a scraper failure last night, but I get 403 when I try to view it: http://bobsled.openstates.org/run-AL-2019-05-17.html
Looks like they slightly changed the markup which broke get_session_list(), i'm looking into it now.

PS @jamesturk I also get an aws access denied error on that bobsled run log.

Resolving patch:
diff --git a/openstates/al/__init__.py b/openstates/al/__init__.py
--- a/openstates/al/__init__.py
+++ b/openstates/al/__init__.py
@@ -106,7 +106,7 @@ class Alabama(Jurisdiction):
             "start_date": "2019-03-08"
         },
         {
-            "_scraped_name": "Regular Session 2019",
+            "_scraped_name": " Regular Session 2019",
             "classification": "primary",
             "end_date": "2019-06-17",
             "identifier": "2019rs",


Test patch:
Repository: openstates/openstates-scrapers

Issue:
OR failing since at least 2019-06-09
OR has been failing since 2019-06-09

Based on automated runs it appears that OR has not run successfully in 2 days (2019-06-09).


```
  loaded Open States pupa settings...
or (scrape, import)
  bills: {}
  votes: {}
08:01:13 CRITICAL pupa: Session(s) 2019-2020 Interim were reported by Oregon.get_session_list() but were not found in Oregon.legislative_sessions or Oregon.ignored_scraped_sessions.
```

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



Discussion:

Resolving patch:
diff --git a/openstates/or/__init__.py b/openstates/or/__init__.py
--- a/openstates/or/__init__.py
+++ b/openstates/or/__init__.py
@@ -108,6 +108,7 @@ class Oregon(Jurisdiction):
     ]
     ignored_scraped_sessions = [
         "Today",
+        "2019-2020 Interim",
         "2017-2018 Interim",
         "2015-2016 Interim",
         "2013 1st Special Session",


Test patch:
Repository: openstates/openstates-scrapers

Issue:
FL failing since at least 2019-06-03
FL has been failing since 2019-06-03

Based on automated runs it appears that FL has not run successfully in 2 days (2019-06-03).


```
  04:01:17 CRITICAL pupa: Session(s) 2009B, 2003C, 2003B, 2002E, 2004A, 2012 Org., 2007D, 1998 Org, 2000A (Jan.), 2007C, 2007A, 2000A (Dec.), 2006 Org., 2000 Org., 2001C, 2005B, 2002D, 2008 Org., 2018 Org., 2003A, 2010 Org., 2004 Org., 2003D, 2007B, 2009A, 2001B, 2014 Org., 2002 Org., 2016 Org., 2010C, 2003E were reported by Florida.get_session_list() but were not found in Florida.legislative_sessions or Florida.ignored_scraped_sessions.
loaded Open States pupa settings...
fl (scrape, import)
  bills: {}
```

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



Discussion:

Resolving patch:
diff --git a/openstates/fl/__init__.py b/openstates/fl/__init__.py
--- a/openstates/fl/__init__.py
+++ b/openstates/fl/__init__.py
@@ -62,6 +62,37 @@ class Florida(Jurisdiction):
         '2014O',
         '2016O',
         '2018O',
+        '2018 Org.',
+        '2016 Org.',
+        '2014 Org.',
+        '2012 Org.',
+        '2010 Org.',
+        '2010C',
+        '2009B',
+        '2009A',
+        '2008 Org.',
+        '2007D',
+        '2007C',
+        '2007B',
+        '2007A',
+        '2006 Org.',
+        '2005B',
+        '2004A',
+        '2004 Org.',
+        '2003E',
+        '2003D',
+        '2003C',
+        '2003B',
+        '2003A',
+        '2002E',
+        '2002D',
+        '2002 Org.',
+        '2001C',
+        '2001B',
+        '2000A (Jan.)',
+        '2000A (Dec.)',
+        '2000 Org.',
+        '1998 Org',
     ]
 
     def get_organizations(self):


Test patch:
Repository: openstates/openstates-scrapers

Issue:
AL failing since at least 2019-06-01
AL has been failing since 2019-06-01

Based on automated runs it appears that AL has not run successfully in 2 days (2019-06-01).


```
  loaded Open States pupa settings...
al (scrape, import)
  bills: {}
05:01:33 CRITICAL pupa: Session(s) Regular Session 2019 were reported by Alabama.get_session_list() but were not found in Alabama.legislative_sessions or Alabama.ignored_scraped_sessions.
```

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



Discussion:

Resolving patch:
diff --git a/openstates/al/__init__.py b/openstates/al/__init__.py
--- a/openstates/al/__init__.py
+++ b/openstates/al/__init__.py
@@ -106,7 +106,7 @@ class Alabama(Jurisdiction):
             "start_date": "2019-03-08"
         },
         {
-            "_scraped_name": " Regular Session 2019",
+            "_scraped_name": "Regular Session 2019",
             "classification": "primary",
             "end_date": "2019-06-17",
             "identifier": "2019rs",


Test patch: