def get_backends():
    """
    Get backends info so that we can find the correct one.
    We just look in the directory structure to find modules.
    """
    IGNORE_DIRS = ["core", "tools", "utils"]

    global backends
    if backends is None:
        backends = {}
        i3pystatus_dir = Path(i3pystatus.__file__).parent
        for subdir in i3pystatus_dir.iterdir():
            if (
                subdir.is_dir()
                and not subdir.name.startswith("_")
                and subdir.name not in IGNORE_DIRS
            ):
                for path in subdir.glob("*.py"):
                    if not path.stem.startswith("_"):
                        backends[path.stem] = f"i3pystatus.{subdir.name}.{path.stem}"
    return backends

    Get backends info so that we can find the correct one.
    We just look in the directory structure to find modules.
    
py3status/modules/i3pystatus.py