# Path: skutil/h2o/base.py
# def check_frame(X, copy=False):
#     """Returns ``X`` if ``X`` is an H2OFrame
#     else raises a TypeError. If ``copy`` is True,
#     will return a copy of ``X`` instead.
# 
#     Parameters
#     ----------
# 
#     X : ``H2OFrame``, shape=(n_samples, n_features)
#         The frame to evaluate
# 
#     copy : bool, optional (default=False)
#         Whether to return a copy of the H2OFrame.
# 
# 
#     Returns
#     -------
# 
#     X : ``H2OFrame``, shape=(n_samples, n_features)
#         The frame or the copy
#     """
#     if not isinstance(X, H2OFrame):
#         raise TypeError('expected H2OFrame but got %s' % type(X))
#     return X if not copy else X[X.columns]
# 
# Path: skutil/base.py
# def overrides(interface_class):
#     """Decorator for methods that override super methods. Provides
#     runtime validation that the method is, in fact, inherited from the
#     superclass. If not, will raise an ``AssertionError``.
# 
#     Parameters
#     ----------
# 
#     interface_class : type
#         The class/type from which the specified method is inherited.
#         If the method does not exist in the specified type, a ``RuntimeError``
#         will be raised.
# 
# 
#     Examples
#     --------
#     
#     The following is valid use:
# 
#         >>> class A(object):
#         ...     def a(self):
#         ...         return 1
# 
#         >>> class B(A):
#         ...     @overrides(A)
#         ...     def a(self):
#         ...         return 2
#         ...
#         ...     def b(self):
#         ...         return 0
# 
#     The following would be an invalid ``overrides`` statement, since
#     ``A`` does not have a ``b`` method to override.
# 
#         >>> class C(B): # doctest: +IGNORE_EXCEPTION_DETAIL
#         ...     @overrides(A) # should override B, not A
#         ...     def b(self):
#         ...         return 1
#         Traceback (most recent call last):  
#         AssertionError: A.b must override a super method!
# 
# 
#     .. versionadded:: 0.1.0
#     """
# 
#     def overrider(method):
#         assert (method.__name__ in dir(interface_class)), '%s.%s must override a super method!' % (
#             interface_class.__name__, method.__name__)
#         return method
# 
#     return overrider


import numbers
import warnings
import numpy as np
from abc import ABCMeta, abstractmethod
from .base import check_frame
from skutil.base import overrides
from sklearn.externals import six
from sklearn.base import _pprint
from sklearn.utils.fixes import signature, bincount
from sklearn.utils import check_random_state
from math import ceil, floor
    from h2o import H2OEstimator
    from h2o.estimators.estimator_base import H2OEstimator
    from sklearn.model_selection import KFold
    from sklearn.cross_validation import KFold
        """Get the number of splits or folds.

        Returns
        -------

        n_folds : int
            The number of folds
        """
        return self.n_folds


class H2OKFold(_H2OBaseKFold):
    """K-folds cross-validator for an H2OFrame.
    
    Parameters
    ----------

    n_folds : int, optional (default=3)
        The number of splits

    shuffle : bool, optional (default=False)
        Whether to shuffle indices

    random_state : int or RandomState, optional (default=None)
        The random state for the split
    """

    def __init__(self, n_folds=3, shuffle=False, random_state=None):
        super(H2OKFold, self).__init__(n_folds, shuffle, random_state)


# Path: skutil/h2o/base.py
# def check_frame(X, copy=False):
#     """Returns ``X`` if ``X`` is an H2OFrame
#     else raises a TypeError. If ``copy`` is True,
#     will return a copy of ``X`` instead.
# 
#     Parameters
#     ----------
# 
#     X : ``H2OFrame``, shape=(n_samples, n_features)
#         The frame to evaluate
# 
#     copy : bool, optional (default=False)
#         Whether to return a copy of the H2OFrame.
# 
# 
#     Returns
#     -------
# 
#     X : ``H2OFrame``, shape=(n_samples, n_features)
#         The frame or the copy
#     """
#     if not isinstance(X, H2OFrame):
#         raise TypeError('expected H2OFrame but got %s' % type(X))
#     return X if not copy else X[X.columns]
# 
# Path: skutil/base.py
# def overrides(interface_class):
#     """Decorator for methods that override super methods. Provides
#     runtime validation that the method is, in fact, inherited from the
#     superclass. If not, will raise an ``AssertionError``.
# 
#     Parameters
#     ----------
# 
#     interface_class : type
#         The class/type from which the specified method is inherited.
#         If the method does not exist in the specified type, a ``RuntimeError``
#         will be raised.
# 
# 
#     Examples
#     --------
#     
#     The following is valid use:
# 
#         >>> class A(object):
#         ...     def a(self):
#         ...         return 1
# 
#         >>> class B(A):
#         ...     @overrides(A)
#         ...     def a(self):
#         ...         return 2
#         ...
#         ...     def b(self):
#         ...         return 0
# 
#     The following would be an invalid ``overrides`` statement, since
#     ``A`` does not have a ``b`` method to override.
# 
#         >>> class C(B): # doctest: +IGNORE_EXCEPTION_DETAIL
#         ...     @overrides(A) # should override B, not A
#         ...     def b(self):
#         ...         return 1
#         Traceback (most recent call last):  
#         AssertionError: A.b must override a super method!
# 
# 
#     .. versionadded:: 0.1.0
#     """
# 
#     def overrider(method):
#         assert (method.__name__ in dir(interface_class)), '%s.%s must override a super method!' % (
#             interface_class.__name__, method.__name__)
#         return method
# 
#     return overrider


# Path: skutil/h2o/split.py
import numbers
import warnings
import numpy as np
from abc import ABCMeta, abstractmethod
from .base import check_frame
from skutil.base import overrides
from sklearn.externals import six
from sklearn.base import _pprint
from sklearn.utils.fixes import signature, bincount
from sklearn.utils import check_random_state
from math import ceil, floor
    from h2o import H2OEstimator
    from h2o.estimators.estimator_base import H2OEstimator
    from sklearn.model_selection import KFold
    from sklearn.cross_validation import KFold

        """Get the number of splits or folds.

        Returns
        -------

        n_folds : int
            The number of folds
        """
        return self.n_folds


class H2OKFold(_H2OBaseKFold):
    """K-folds cross-validator for an H2OFrame.
    
    Parameters
    ----------

    n_folds : int, optional (default=3)
        The number of splits

    shuffle : bool, optional (default=False)
        Whether to shuffle indices

    random_state : int or RandomState, optional (default=None)
        The random state for the split
    """

    def __init__(self, n_folds=3, shuffle=False, random_state=None):
        super(H2OKFold, self).__init__(n_folds, shuffle, random_state)


    @overrides(_H2OBaseKFold)