# Helpers

Various helpers not related to the Telegram API itself

class telethon.helpers.TotalList(*args, **kwargs)

  Bases: `list`

  A list with an extra `total` property, which may not match its `len` since the total represents the total amount of items available somewhere else, not the items in this list.

  Examples:

  >     # Telethon returns these lists in some cases (for example,
  >     # only when a chunk is returned, but the "total" count
  >     # is available).
  >     result = await client.get_messages(chat, limit=10)

  >     print(result.total)  # large number
  >     print(len(result))  # 10
  >     print(result[0])  # latest message

  >     for x in result:  # show the 10 messages
  >         print(x.text)

  __repr__()

    Return repr(self).

  __str__()

    Return str(self).

  __weakref__

    list of weak references to the object (if defined)

telethon.helpers.add_surrogate(text)

telethon.helpers.del_surrogate(text)

telethon.helpers.ensure_parent_dir_exists(file_path)

  Ensures that the parent directory exists

telethon.helpers.generate_key_data_from_nonce(server_nonce, new_nonce)

  Generates the key data corresponding to the given nonce

telethon.helpers.generate_random_long(signed=True)

  Generates a random long integer (8 bytes), which is optionally signed

telethon.helpers.retry_range(retries, force_retry=True)

  Generates an integer sequence starting from 1. If `retries` is not a zero or a positive integer value, the sequence will be infinite, otherwise it will end at `retries + 1`.

telethon.helpers.strip_text(text, entities)

  Strips whitespace from the given text modifying the provided entities.

  This assumes that there are no overlapping entities, that their length is greater or equal to one, and that their length is not out of bounds.

telethon.helpers.within_surrogate(text, index, *, length=None)

  `True` if `index` is within a surrogate (before and after it, not at!).