Module: panelist

This module provides objects used to retrieve panelists, panelist information and panelist details from a copy of the Wait Wait Don't Tell Me! Stats database.

Panelist

class wwdtm.panelist.Panelist(connect_dict=None, database_connection=None)

Panelist information retrieval class.

Contains methods used to retrieve panelist information, including IDs, names, slug strings, appearances and scores.

Parameters:
  • connect_dict (dict[str, Any]) -- A dictionary containing database connection settings as required by MySQL Connector/Python

  • database_connection (MySQLConnection | PooledMySQLConnection) -- MySQL database connection object

retrieve_all()

Retrieve panelist information for all panelists.

Returns:

A list of dictionaries containing panelist ID, name, slug string, gender and pronouns for each panelist

Return type:

list[dict[str, Any]]

retrieve_all_details(number_decimal_places=5)

Retrieves panelist information, appearances and scores for all panelists.

Parameters:

number_decimal_places (int) -- Number of decimal places to include when rounding (valid range: 0 through 20)

Returns:

A list of dictionaries containing panelist ID, name, slug string, gender, pronouns, whether the panelist is also a guest, host or scorekeeper, scoring statistics and appearances for each panelist

Return type:

list[dict[str, Any]]

retrieve_all_ids()

Retrieves all panelist IDs, sorted by panelist name.

Returns:

A list of panelist IDs as integers

Return type:

list[int]

retrieve_all_slugs()

Retrieves all panelist slug strings, sorted by panelist name.

Returns:

A list of panelist slug strings

Return type:

list[str]

retrieve_by_id(panelist_id)

Retrieves panelist information.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A dictionary containing panelist ID, name, slug string, gender and pronouns

Return type:

dict[str, Any]

retrieve_by_slug(panelist_slug)

Retrieves panelist information.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A dictionary containing panelist ID, name, slug string, gender and pronouns

Return type:

dict[str, Any]

retrieve_details_by_id(panelist_id, number_decimal_places=5)

Retrieves panelist information, appearances and scores.

Parameters:
  • panelist_id (int) -- Panelist ID

  • number_decimal_places (int) -- Number of decimal places to include when rounding (valid range: 0 through 20)

Returns:

A dictionary containing panelist ID, name, slug string, gender, pronouns, whether the panelist is also a guest, host or scorekeeper, scoring statistics and appearances

Return type:

dict[str, Any]

retrieve_details_by_slug(panelist_slug, number_decimal_places=5)

Retrieves panelist information, appearances and scores.

Parameters:
  • panelist_slug (str) -- Panelist slug string

  • number_decimal_places (int) -- Number of decimal places to include when rounding (valid range: 0 through 20)

Returns:

A dictionary containing panelist ID, name, slug string, gender, pronouns, whether the panelist is also a guest, host or scorekeeper, scoring statistics and appearances

Return type:

dict[str, Any]

retrieve_random()

Retrieves information for a random panelist.

Returns:

A dictionary containing panelist ID, name, slug string and gender

Return type:

dict[str, Any]

retrieve_random_details(number_decimal_places=5)

Retrieves information and appearances for a random panelist.

Parameters:

number_decimal_places (int) -- Number of decimal places to include when rounding (valid range: 0 through 20)

Returns:

A dictionary containing panelist ID, name, slug string, gender, pronouns, whether the panelist is also a guest, host or scorekeeper, scoring statistics and appearances

Return type:

dict[str, Any]

retrieve_random_id()

Retrieves an ID for a random panelist.

Returns:

ID for a random panelist.

Return type:

int

retrieve_random_slug()

Retrieves an slug string for a random panelist.

Returns:

Slug string for a random panelist.

Return type:

str

PanelistAppearances

class wwdtm.panelist.PanelistAppearances(connect_dict=None, database_connection=None)

Panelist appearance information retrieval class.

Contains methods used to retrieve panelist appearance information and statistics, scores and rankings.

Parameters:
  • connect_dict (dict[str, Any]) -- A dictionary containing database connection settings as required by MySQL Connector/Python

  • database_connection (MySQLConnection | PooledMySQLConnection) -- MySQL database connection object

retrieve_appearances_by_id(panelist_id)

Retrieves panelist appearance information.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A dictionary containing appearance statistics, scoring and ranking details

Return type:

dict[str, Any]

retrieve_appearances_by_slug(panelist_slug)

Retrieves panelist appearance information.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A dictionary containing appearance statistics, scoring and ranking details

Return type:

dict[str, Any]

retrieve_yearly_appearances_by_id(panelist_id)

Retrieves panelist appearance counts grouped by year.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A dictionary containing years as keys and appearance counts for each year as values

Return type:

dict[int, int]

retrieve_yearly_appearances_by_slug(panelist_slug)

Retrieves panelist appearance counts grouped by year.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A dictionary containing years as keys and appearance counts for each year as values

Return type:

dict[int, int]

PanelistDecimalScores

class wwdtm.panelist.PanelistDecimalScores(connect_dict=None, database_connection=None)

Panelist decimal score retrieval class.

Contains methods used to retrieve panelist decimal scores and calculate scoring statistics.

Parameters:
  • connect_dict (dict[str, Any]) -- A dictionary containing database connection settings as required by MySQL Connector/Python

  • database_connection (MySQLConnection | PooledMySQLConnection) -- MySQL database connection object

retrieve_scores_by_id(panelist_id)

Retrieves a list of panelist decimal scores, sorted by show date.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A list containing panelist decimal scores

Return type:

list[Decimal]

retrieve_scores_by_slug(panelist_slug)

Retrieves a list of panelist decimal scores, sorted by show date.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A list containing panelist decimal scores

Return type:

list[Decimal]

retrieve_scores_grouped_list_by_id(panelist_id)

Retrieves panelist grouped decimal scores.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A dictionary containing two lists, one containing decimal scores and one containing counts of those scores

Return type:

dict[str, list[str | int]]

retrieve_scores_grouped_list_by_slug(panelist_slug)

Retrieves panelist grouped decimal scores.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A dictionary containing two lists, one containing decimal scores and one containing counts of those scores

Return type:

dict[str, list[int]]

retrieve_scores_grouped_ordered_pair_by_id(panelist_id)

Retrieves a list of panelist decimal scores and counts as a tuple.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A list of tuples containing decimal scores and score counts

Return type:

list[tuple[str, int]]

retrieve_scores_grouped_ordered_pair_by_slug(panelist_slug)

Retrieves a list of panelist decimal scores and counts as a tuple.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A list of tuples containing decimal scores and score counts

Return type:

list[tuple[str, int]]

retrieve_scores_list_by_id(panelist_id)

Retrieves panelist appearances and decimal scores as paired lists.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A dictionary containing a list show dates and a list of decimal scores

Return type:

dict[str, list[str | Decimal]]

retrieve_scores_list_by_slug(panelist_slug)

Retrieves panelist appearances and decimal scores as paired lists.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A dictionary containing a list show dates and a list of decimal scores

Return type:

dict[str, list[str | Decimal]]

retrieve_scores_ordered_pair_by_id(panelist_id)

Retrieves panelist appearances and decimal scores as a list of tuples.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A list of tuples containing show dates and decimal scores

Return type:

list[tuple[str, Decimal]]

retrieve_scores_ordered_pair_by_slug(panelist_slug)

Retrieves panelist appearances and decimal scores as a list of tuples.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A list of tuples containing show dates and decimal scores

Return type:

list[tuple[str, Decimal]]

PanelistScores

class wwdtm.panelist.PanelistScores(connect_dict=None, database_connection=None)

Panelist score retrieval class.

Contains methods used to retrieve panelist scores and calculate scoring statistics.

Parameters:
  • connect_dict (dict[str, Any]) -- A dictionary containing database connection settings as required by MySQL Connector/Python

  • database_connection (MySQLConnection | PooledMySQLConnection) -- MySQL database connection object

retrieve_scores_by_id(panelist_id)

Retrieves a list of panelist scores, sorted by show date.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A list containing panelist decimal scores

Return type:

list[int]

retrieve_scores_by_slug(panelist_slug)

Retrieves a list of panelist scores, sorted by show date.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A list containing panelist scores

Return type:

list[int]

retrieve_scores_grouped_list_by_id(panelist_id)

Retrieves panelist grouped scores.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A dictionary containing two lists, one containing scores and one containing counts of those scores

Return type:

dict[str, list[int]]

retrieve_scores_grouped_list_by_slug(panelist_slug)

Retrieves panelist grouped scores.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A dictionary containing two lists, one containing scores and one containing counts of those scores

Return type:

dict[str, list[int]]

retrieve_scores_grouped_ordered_pair_by_id(panelist_id)

Retrieves a list of panelist scores and counts as a tuple.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A list of tuples containing scores and score counts

Return type:

list[tuple[int, int]]

retrieve_scores_grouped_ordered_pair_by_slug(panelist_slug)

Retrieves a list of panelist scores and counts as a tuple.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A list of tuples containing scores and score counts

Return type:

list[tuple[int, int]]

retrieve_scores_list_by_id(panelist_id)

Retrieves panelist appearances and scores as paired lists.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A dictionary containing a list show dates and a list of scores

Return type:

dict[str, list]

retrieve_scores_list_by_slug(panelist_slug)

Retrieves panelist appearances and scores as paired lists.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A dictionary containing a list show dates and a list of scores

Return type:

dict[str, list]

retrieve_scores_ordered_pair_by_id(panelist_id)

Retrieves panelist appearances and scores as a list of tuples.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A list of tuples containing show dates and scores

Return type:

list[tuple[str, int]]

retrieve_scores_ordered_pair_by_slug(panelist_slug)

Retrieves panelist appearances and scores as a list of tuples.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A list of tuples containing show dates and scores

Return type:

list[tuple[str, int]]

PanelistStatistics

class wwdtm.panelist.PanelistStatistics(connect_dict=None, database_connection=None)

Panelist statistics information retrieval and calculation class.

Contains methods used to retrieve Bluff the Listener, ranking and scoring statistics.

Parameters:
  • connect_dict (dict[str, Any]) -- A dictionary containing database connection settings as required by MySQL Connector/Python

  • database_connection (MySQLConnection | PooledMySQLConnection) -- MySQL database connection object

retrieve_bluffs_by_id(panelist_id)

Retrieve panelist Bluff the Listener statistics.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A dictionary containing number of times a panelist's Bluff the Listener story was chosen and number of times they had the correct story

Return type:

dict[str, int]

retrieve_bluffs_by_slug(panelist_slug)

Retrieve panelist Bluff the Listener statistics.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A dictionary containing number of times a panelist's Bluff the Listener story was chosen and number of times they had the correct story

Return type:

dict[str, int]

retrieve_rank_info_by_id(panelist_id)

Retrieves panelist ranking information.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

A dictionary containing the number of times a panelist has finished in 1st, 1st tied, 2nd, 2nd tied and 3rd place

Return type:

dict[str, int]

retrieve_rank_info_by_slug(panelist_slug)

Retrieves panelist ranking information.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

A dictionary containing the number of times a panelist has finished in 1st, 1st tied, 2nd, 2nd tied and 3rd place

Return type:

dict[str, int]

retrieve_statistics_by_id(panelist_id, number_decimal_places=5)

Retrieves and calculates panelist statistics.

The returned statistics includes estimated population variance and standard deviation based on the full set of total scores for the requested panelist.

Parameters:
  • panelist_id (int) -- Panelist ID

  • number_decimal_places (int) -- Number of decimal places to include when rounding (valid range: 0 through 20)

Returns:

A dictionary containing panelist scoring and ranking statistics. Returns an empty dictionary if number_digits value is not valid.

Return type:

dict[str, Any]

retrieve_statistics_by_slug(panelist_slug, number_decimal_places=5)

Retrieves and calculates panelist statistics.

The returned statistics includes estimated population variance and standard deviation based on the full set of total scores for the requested panelist.

Parameters:
  • panelist_slug (str) -- Panelist slug string

  • number_decimal_places (int) -- Number of decimal places to include when rounding (valid range: 0 through 20)

Returns:

A dictionary containing panelist scoring and ranking statistics. Returns an empty dictionary if number_digits value is not valid.

Return type:

dict[str, Any]

PanelistUtility

class wwdtm.panelist.PanelistUtility(connect_dict=None, database_connection=None)

Panelist information and utilities class.

Contains methods used to convert between panelist ID and slug strings, and to check if panelist IDs and slug strings exist.

Parameters:
  • connect_dict (dict[str, Any]) -- A dictionary containing database connection settings as required by MySQL Connector/Python

  • database_connection (MySQLConnection | PooledMySQLConnection) -- MySQL database connection object

convert_id_to_slug(panelist_id)

Converts a panelist ID to the corresponding panelist slug string.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

Panelist slug string if a corresponding value is found. Otherwise, None is returned

Return type:

str | None

convert_slug_to_id(panelist_slug)

Converts a panelist slug string to the corresponding panelist ID.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

Panelist ID if a corresponding value is found. Otherwise, None is returned

Return type:

int | None

id_exists(panelist_id)

Validates if a panelist ID exists.

Parameters:

panelist_id (int) -- Panelist ID

Returns:

True if the ID exists, otherwise False

Return type:

bool

slug_exists(panelist_slug)

Validates if a panelist slug string exists.

Parameters:

panelist_slug (str) -- Panelist slug string

Returns:

True if the slug string exists, otherwise False

Return type:

bool