bolster.data_sources.niassembly.members

NI Assembly Members (MLAs) data module.

Fetches current Member of the Legislative Assembly (MLA) data from the NI Assembly AIMS API. The API returns XML; this module parses it into tidy DataFrames.

Update frequency: Real-time (reflects current membership).

Example

>>> from bolster.data_sources.niassembly import members
>>> df = members.get_current_members()
>>> "PersonId" in df.columns
True
>>> len(df) >= 85
True

Attributes

logger

Functions

get_current_members()

Return all current MLAs as a DataFrame.

get_member_by_id(person_id)

Return a single MLA record by PersonId.

Module Contents

bolster.data_sources.niassembly.members.logger[source]
bolster.data_sources.niassembly.members.get_current_members()[source]

Return all current MLAs as a DataFrame.

Fetches live data from the NI Assembly AIMS API.

Returns:

PersonId, MemberName, MemberFirstName, MemberLastName, MemberFullDisplayName, PartyName, PartyOrganisationId, ConstituencyName, ConstituencyId, MemberTitle, MemberImgUrl, MemberPrefix, AffiliationId, MemberSortName.

Return type:

DataFrame with columns

Raises:

requests.HTTPError – If the API request fails.

Example

>>> df = get_current_members()
>>> "PartyName" in df.columns
True
>>> df["PersonId"].dtype == object or df["PersonId"].dtype.kind in "iu"
True
bolster.data_sources.niassembly.members.get_member_by_id(person_id)[source]

Return a single MLA record by PersonId.

Filters the full current members list to the requested person. The AIMS API does not expose a single-member endpoint, so the full list is fetched and filtered locally.

Parameters:

person_id (int) – NI Assembly AIMS PersonId for the MLA.

Returns:

Single-row DataFrame for the matching member, or an empty DataFrame if not found.

Return type:

pandas.DataFrame

Example

>>> df = get_member_by_id(5797)
>>> len(df) <= 1
True