Skip to content

hdx.utilities.text

module hdx.utilities.text

Text processing utilities.

Functions

  • normalise Mormalise text for example to support name matching. Accented characters are replaced with non-accented if possible. Any punctuation and whitespace is replaced with a space except for ' which is replaced with blank. Multiple spaces are replaced with a single space. Uppercase is replaced with lowercase. Spaces at start and end are removed. All non-ASCII characters are removed.

  • remove_end_characters Remove any characters at end of string that are in characters_to_remove.

  • remove_from_end Remove list of items from end of string, stripping any whitespace.

  • remove_string Remove string from another string and delete any preceding end characters - by default punctuation (eg. comma) and any whitespace following the punctuation

  • get_words_in_sentence Returns list of words in a sentence.

  • number_format Format float-castable input as string.

  • get_fraction_str Given float-castable numerator and optional float-castable denominator, format as string, returning '' for invalid numerator or 0 denominator.

  • only_allowed_in_str Returns True if test string contains only allowed characters, False if not.

  • get_numeric_if_possible Return val if it is not a string, otherwise see if it can be cast to float or int, taking into account commas and periods.

  • smart_split Splits text into paragraphs based on sentence length and structure.

normalise(text: str)str

Mormalise text for example to support name matching. Accented characters are replaced with non-accented if possible. Any punctuation and whitespace is replaced with a space except for ' which is replaced with blank. Multiple spaces are replaced with a single space. Uppercase is replaced with lowercase. Spaces at start and end are removed. All non-ASCII characters are removed.

Parameters

  • text : str Text to normalise

Returns

  • str Normalised text

remove_end_characters(string: str, characters_to_remove: str = punctuation)str

Remove any characters at end of string that are in characters_to_remove.

Parameters

  • string : str Input string

  • characters_to_remove : str Characters to remove. Defaults to punctuation.

Returns

  • str String with any characters at end of string that are in characters_to_remove removed

remove_from_end(string: str, things_to_remove: list[str], logging_text: str | None = None, whole_words: bool = True)str

Remove list of items from end of string, stripping any whitespace.

Parameters

  • string : str Input string

  • things_to_remove : list[str] Things to remove from the end of string

  • logging_text : str | None Text to log. Defaults to None.

  • whole_words : bool Remove parts of or whole words. Defaults to True (whole words only).

Returns

  • str String with text removed

remove_string(string: str, toremove: str, end_characters_to_remove: str = punctuation)str

Remove string from another string and delete any preceding end characters - by default punctuation (eg. comma) and any whitespace following the punctuation

Parameters

  • string : str String to process

  • toremove : str String to remove

  • end_characters_to_remove : str Characters to remove. Defaults to punctuation.

Returns

  • str String with other string removed

get_words_in_sentence(sentence: str)list[str]

Returns list of words in a sentence.

Parameters

  • sentence : str Sentence

Returns

  • list[str] List of words in sentence

number_format(val: Any, format: str = '%.4f', trailing_zeros: bool = True)str

Format float-castable input as string.

Parameters

  • val : Any Number to format

  • format : str Format to use. Defaults to %.4f.

  • trailing_zeros : bool Leave trailing zeros. Defaults to True.

Returns

  • str Formatted number as string

get_fraction_str(numerator: Any, denominator: Any | None = None, format: str = '%.4f', trailing_zeros: bool = True)str

Given float-castable numerator and optional float-castable denominator, format as string, returning '' for invalid numerator or 0 denominator.

Parameters

  • numerator : Any Numerator

  • denominator : Any | None Denominator. Defaults to None.

  • format : str Format to use. Defaults to %.4f.

  • trailing_zeros : bool Leave trailing zeros. Defaults to True.

Returns

  • str Formatted number as string

only_allowed_in_str(test_str: str, allowed_chars: set)bool

Returns True if test string contains only allowed characters, False if not.

Parameters

  • test_str : str Test string

  • allowed_chars : set Set of allowed characters

Returns

  • bool True if test string contains only allowed characters, False if not

get_numeric_if_possible(value: Any)Any

Return val if it is not a string, otherwise see if it can be cast to float or int, taking into account commas and periods.

Parameters

  • value : Any Value

Returns

  • Any Value

smart_split(text: str, target_length: int = 400)str

Splits text into paragraphs based on sentence length and structure.

Parameters

  • text : str The input text.

  • target_length : int Approximate characters per paragraph. Defaults to 400.

Returns

  • str The output text