<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _read_pretrained_embeddings_file(file_uri: str, embedding_dim: int, vocab: Vocabulary, namespace: str = "tokens") -> torch.FloatTensor: """ Returns and embedding matrix for the given vocabulary using the pretrained embeddings contained in the given file. Embeddings for tokens not found in the pretrained embedding file are randomly initialized using a normal distribution with mean and standard deviation equal to those of the pretrained embeddings. We support two file formats: The text file can eventually be compressed, and even resides in an archive with multiple files. If the file resides in an archive with other files, then ``embeddings_filename`` must be a URI "(archive_uri)#file_path_inside_the_archive" * hdf5 format - hdf5 file containing an embedding matrix in the form of a torch.Tensor. If the filename ends with '.hdf5' or '.h5' then we load from hdf5, otherwise we assume text format. Parameters file_uri : str, required. It can be: * a file system path or a URL of an eventually compressed text file or a zip/tar archive containing a single file. * URI of the type ``(archive_path_or_url)#file_path_inside_archive`` if the text file is contained in a multi-file archive. vocab : Vocabulary, required. A Vocabulary object. namespace : str, (optional, default=tokens) The namespace of the vocabulary to find pretrained embeddings for. trainable : bool, (optional, default=True) Whether or not the embedding parameters should be optimized. Returns ------- A weight matrix with embeddings initialized from the read file. The matrix has shape ``(vocab.get_vocab_size(namespace), embedding_dim)``, where the indices of words appearing in the pretrained embedding file are initialized to the pretrained embedding value. """

    file_ext = get_file_extension(file_uri)
    if file_ext in ['.h5', '.hdf5']:
        return _read_embeddings_from_hdf5(file_uri,
                                          embedding_dim,
                                          vocab, namespace)

    return _read_embeddings_from_text_file(file_uri,
                                           embedding_dim,
                                           vocab, namespace)