# -*- coding: utf-8 -*-
"""HDF5 functions, and utils, and generators, OH MY!"""
from h5py import AttributeManager, Dataset, File, Group, __version__ as __h5py_version__

from h5.__about__ import __version__
from h5.core import (
    as_h5py_obj as as_h5py_obj,
    attrs as attrs,
    attrs_dict as attrs_dict,
    attrs_gen as attrs_gen,
    attrs_gen_from_fspath as attrs_gen_from_fspath,
    datasets as datasets,
    datasets_dict as datasets_dict,
    datasets_gen as datasets_gen,
    datasets_gen_from_fspath as datasets_gen_from_fspath,
    datasets_keys_list as datasets_keys_list,
    fmt_h5_path as fmt_h5_path,
    groups as groups,
    groups_gen as groups_gen,
    groups_gen_from_fspath as groups_gen_from_fspath,
    groups_keys_list as groups_keys_list,
    h5iter as h5iter,
    h5py_obj_attrs_gen as h5py_obj_attrs_gen,
    h5py_obj_dataset_gen as h5py_obj_dataset_gen,
    h5py_obj_gen as h5py_obj_gen,
    h5py_obj_groups_gen as h5py_obj_groups_gen,
    h5py_obj_keys_gen as h5py_obj_keys_gen,
    is_dataset as is_dataset,
    is_file as is_file,
    is_fspath as is_fspath,
    is_group as is_group,
    is_group_like as is_group_like,
    is_h5py_dataset as is_h5py_dataset,
    is_h5py_file as is_h5py_file,
    is_h5py_group as is_h5py_group,
    is_hdf5 as is_hdf5,
    keys_list as keys_list,
)
from h5.dev import (
    H5Dataset as H5Dataset,
    H5DatasetDict as H5DatasetDict,
    H5File as H5File,
    H5FileDict as H5FileDict,
    H5FileDumpDict as H5FileDumpDict,
    H5Group as H5Group,
    H5GroupDict as H5GroupDict,
    H5GroupDumpDict as H5GroupDumpDict,
    info as info,
)
from h5.legacy import (
    h5_attrs_dict as h5_attrs_dict,
    h5_attrs_gen as h5_attrs_gen,
    h5_attrs_gen_from_fspath as h5_attrs_gen_from_fspath,
    h5_datasets_dict as h5_datasets_dict,
    h5_datasets_gen as h5_datasets_gen,
    h5_datasets_gen_from_fspath as h5_datasets_gen_from_fspath,
)

__all__ = (
    "AttributeManager",
    "Dataset",
    "File",
    "Group",
    "H5Dataset",
    "H5DatasetDict",
    "H5File",
    "H5FileDict",
    "H5FileDumpDict",
    "H5Group",
    "H5GroupDict",
    "H5GroupDumpDict",
    "__h5py_version__",
    "__version__",
    "as_h5py_obj",
    "attrs",
    "attrs_dict",
    "attrs_gen",
    "attrs_gen_from_fspath",
    "datasets",
    "datasets_dict",
    "datasets_gen",
    "datasets_gen_from_fspath",
    "datasets_keys_list",
    "fmt_h5_path",
    "groups",
    "groups_gen",
    "groups_gen_from_fspath",
    "groups_keys_list",
    "h5_attrs_dict",
    "h5_attrs_gen",
    "h5_attrs_gen_from_fspath",
    "h5_datasets_dict",
    "h5_datasets_gen",
    "h5_datasets_gen_from_fspath",
    "h5iter",
    "h5py_obj_attrs_gen",
    "h5py_obj_dataset_gen",
    "h5py_obj_gen",
    "h5py_obj_groups_gen",
    "h5py_obj_keys_gen",
    "info",
    "is_dataset",
    "is_file",
    "is_fspath",
    "is_group",
    "is_group_like",
    "is_h5py_dataset",
    "is_h5py_file",
    "is_h5py_group",
    "is_hdf5",
    "keys_list",
)
