1from . import testing, tutorial, ufuncs
2from .backends.api import (
3    load_dataarray,
4    load_dataset,
5    open_dataarray,
6    open_dataset,
7    open_mfdataset,
8    save_mfdataset,
9)
10from .backends.rasterio_ import open_rasterio
11from .backends.zarr import open_zarr
12from .coding.cftime_offsets import cftime_range
13from .coding.cftimeindex import CFTimeIndex
14from .coding.frequencies import infer_freq
15from .conventions import SerializationWarning, decode_cf
16from .core.alignment import align, broadcast
17from .core.combine import combine_by_coords, combine_nested
18from .core.common import ALL_DIMS, full_like, ones_like, zeros_like
19from .core.computation import apply_ufunc, corr, cov, dot, polyval, unify_chunks, where
20from .core.concat import concat
21from .core.dataarray import DataArray
22from .core.dataset import Dataset
23from .core.extensions import register_dataarray_accessor, register_dataset_accessor
24from .core.merge import Context, MergeError, merge
25from .core.options import get_options, set_options
26from .core.parallel import map_blocks
27from .core.variable import Coordinate, IndexVariable, Variable, as_variable
28from .util.print_versions import show_versions
29
30try:
31    from importlib.metadata import version as _version
32except ImportError:
33    # if the fallback library is missing, we are doomed.
34    from importlib_metadata import version as _version  # type: ignore[no-redef]
35
36try:
37    __version__ = _version("xarray")
38except Exception:
39    # Local copy or not installed with setuptools.
40    # Disable minimum version checks on downstream libraries.
41    __version__ = "999"
42
43# A hardcoded __all__ variable is necessary to appease
44# `mypy --strict` running in projects that import xarray.
45__all__ = (
46    # Sub-packages
47    "ufuncs",
48    "testing",
49    "tutorial",
50    # Top-level functions
51    "align",
52    "apply_ufunc",
53    "as_variable",
54    "broadcast",
55    "cftime_range",
56    "combine_by_coords",
57    "combine_nested",
58    "concat",
59    "decode_cf",
60    "dot",
61    "cov",
62    "corr",
63    "full_like",
64    "get_options",
65    "infer_freq",
66    "load_dataarray",
67    "load_dataset",
68    "map_blocks",
69    "merge",
70    "ones_like",
71    "open_dataarray",
72    "open_dataset",
73    "open_mfdataset",
74    "open_rasterio",
75    "open_zarr",
76    "polyval",
77    "register_dataarray_accessor",
78    "register_dataset_accessor",
79    "save_mfdataset",
80    "set_options",
81    "show_versions",
82    "unify_chunks",
83    "where",
84    "zeros_like",
85    # Classes
86    "CFTimeIndex",
87    "Context",
88    "Coordinate",
89    "DataArray",
90    "Dataset",
91    "IndexVariable",
92    "Variable",
93    # Exceptions
94    "MergeError",
95    "SerializationWarning",
96    # Constants
97    "__version__",
98    "ALL_DIMS",
99)
100