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:
-
- 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:
-
- 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:
-
- 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:
-
- 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