Skip to content

Commit

Permalink
Merge pull request #142 from openstates/improve-resolve-person
Browse files Browse the repository at this point in the history
Improve multiple people return resolve_person()
  • Loading branch information
alexobaseki authored Sep 18, 2024
2 parents a631f96 + 7518382 commit ececf68
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 7 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## 6.20.5 - Sept 18, 2024

* Improve Event to Person matching

## 6.20.4 - Sept 16, 2024

* Add Chamber on Bill Sponsorship matches for people
Expand Down
18 changes: 12 additions & 6 deletions openstates/importers/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -588,14 +588,20 @@ def resolve_person(
memberships__start_date__lt=end_date
)

ids = set(Person.objects.filter(spec).values_list("id", flat=True))
if len(ids) == 1:
self.person_cache[cache_key] = ids.pop()
errmsg = None
elif not ids:
query_result = Person.objects.filter(spec).values("id", "current_role")
result_set = set([p["id"] for p in query_result])
errmsg = None
if len(result_set) == 1:
self.person_cache[cache_key] = result_set.pop()
elif not result_set:
errmsg = "no people returned for spec"
else:
errmsg = "multiple people returned for spec"
# If there are multiple rows returned see we can get the active legislator.
ids = set([p["id"] for p in query_result if p["current_role"] is not None])
if len(ids) == 1:
self.person_cache[cache_key] = ids.pop()
else:
errmsg = "multiple people returned for spec"

# either raise or log error
if errmsg:
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openstates"
version = "6.20.4"
version = "6.20.5"
description = "core infrastructure for the openstates project"
authors = ["James Turk <[email protected]>"]
license = "MIT"
Expand Down

0 comments on commit ececf68

Please sign in to comment.