def get_lsst_bibtex(bibtex_filenames=None):
logger = logging.getLogger(__name__)<EOL>if bibtex_filenames is None:<EOL><INDENT>bibtex_names = KNOWN_LSSTTEXMF_BIB_NAMES<EOL><DEDENT>else:<EOL><INDENT>bibtex_names = []<EOL>for filename in bibtex_filenames:<EOL><INDENT>name = os.path.basename(os.path.splitext(filename)[<NUM_LIT:0>])<EOL>if name not in KNOWN_LSSTTEXMF_BIB_NAMES:<EOL><INDENT>logger.warning('<STR_LIT>',<EOL>name)<EOL>continue<EOL><DEDENT>bibtex_names.append(name)<EOL><DEDENT><DEDENT>uncached_names = [name for name in bibtex_names<EOL>if name not in _LSSTTEXMF_BIB_CACHE]<EOL>if len(uncached_names) > <NUM_LIT:0>:<EOL><INDENT>loop = asyncio.get_event_loop()<EOL>future = asyncio.ensure_future(_download_lsst_bibtex(uncached_names))<EOL>loop.run_until_complete(future)<EOL>for name, text in zip(bibtex_names, future.result()):<EOL><INDENT>_LSSTTEXMF_BIB_CACHE[name] = text<EOL><DEDENT><DEDENT>return {name: _LSSTTEXMF_BIB_CACHE[name] for name in bibtex_names}<EOL>
Get content of lsst-texmf bibliographies.

    BibTeX content is downloaded from GitHub (``master`` branch of
    https://github.com/lsst/lsst-texmf or retrieved from an in-memory cache.

    Parameters
    ----------
    bibtex_filenames : sequence of `str`, optional
        List of lsst-texmf BibTeX files to retrieve. These can be the filenames
        of lsst-bibtex files (for example, ``['lsst.bib', 'lsst-dm.bib']``)
        or names without an extension (``['lsst', 'lsst-dm']``). The default
        (recommended) is to get *all* lsst-texmf bibliographies:

        .. code-block:: python

           ['lsst', 'lsst-dm', 'refs', 'books', 'refs_ads']

    Returns
    -------
    bibtex : `dict`
        Dictionary with keys that are bibtex file names (such as ``'lsst'``,
        ``'lsst-dm'``). Values are the corresponding bibtex file content
        (`str`).