Source code for scribe_data.cli.list.languages

# SPDX-License-Identifier: GPL-3.0-or-later
"""
Functions for listing languages for the Scribe-Data CLI.
"""

from scribe_data.utils import (
    get_language_iso,
    get_language_qid,
    language_metadata,
    list_all_languages,
)

# MARK: Languages


[docs] def list_languages() -> None: """ Generate a table of languages with their ISO-2 codes and Wikidata QIDs. Returns ------- None A table of all languages with their ISO-2 codes and Wikidata QIDs is printed. """ languages = list_all_languages(language_metadata) language_col_width = max(len(lang) for lang in languages) + 2 iso_col_width = max(len(get_language_iso(lang)) for lang in languages) + 2 qid_col_width = max(len(get_language_qid(lang)) for lang in languages) + 2 table_line_length = language_col_width + iso_col_width + qid_col_width print( f"{'\nLanguage':<{language_col_width}} {'ISO':<{iso_col_width}} {'QID':<{qid_col_width}}" ) print("=" * table_line_length) for lang in languages: print( f"{lang.title():<{language_col_width}} {get_language_iso(lang):<{iso_col_width}} {get_language_qid(lang):<{qid_col_width}}" ) print()
[docs] def list_languages_for_data_type(data_type: str) -> None: """ List the available languages for a given data type. Parameters ---------- data_type : str The data type to check for. Returns ------- None A list of languages for data types is printed to the terminal. """ list_languages()