# Copyright 2022, European Centre for Medium Range Weather Forecasts.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

try:
    # NOTE: the `version.py` file must not be present in the git repository
    #   as it is generated by setuptools at install time
    from earthkit.aggregate.version import __version__
except ImportError:  # pragma: no cover
    # Local copy or not installed with setuptools
    __version__ = "999"

from earthkit.aggregate import climatology, general, spatial, temporal

try:
    from earthkit.data.utils.module_inputs_wrapper import (
        transform_function_inputs,
        transform_module_inputs,
    )
except ImportError:
    pass
else:
    general = transform_module_inputs(general)

    temporal = transform_module_inputs(temporal)

    climatology = transform_module_inputs(climatology)

    spatial = transform_module_inputs(spatial)

from earthkit.aggregate.general import reduce, resample, rolling_reduce

reduce = transform_function_inputs(reduce)
rolling_reduce = transform_function_inputs(rolling_reduce)
resample = transform_function_inputs(resample)

__all__ = [
    "__version__",
    "general",
    "temporal",
    "climatology",
    "spatial",
    "reduce",
    "resample",
    "rolling_reduce",
]
