# Path: ndd/exceptions.py
# class EstimatorParameterError(NddError):
#     """Getting/setting invalid estimator parameters."""


    from inspect import signature
    from ndd.funcsigs import signature
from collections import defaultdict
from ndd.exceptions import EstimatorParameterError  # pylint: disable=C0412
import logging
import numpy

    >>> estimator.estimated_param_ #doctest: +SKIP
    """

    @classmethod
    def _get_param_names(cls):
        """Get parameter names for the estimator.

        Raises
        ------
        EstimatorParameterError
            If the estimator parameters are not specified in the signature.
        """
        # fetch the constructor or the original constructor before
        # deprecation wrapping if any
        init = getattr(cls.__init__, 'deprecated_original', cls.__init__)
        if init is object.__init__:
            # No explicit constructor to introspect
            return []

        # introspect the constructor arguments to find the model parameters
        # to represent
        init_signature = signature(init)
        # Consider the constructor parameters excluding 'self'
        parameters = [
            p for p in init_signature.parameters.values()
            if p.name != 'self' and p.kind != p.VAR_KEYWORD
        ]
        for p in parameters:
            if p.kind == p.VAR_POSITIONAL:

# Path: ndd/exceptions.py
# class EstimatorParameterError(NddError):
#     """Getting/setting invalid estimator parameters."""


# Path: ndd/base.py
    from inspect import signature
    from ndd.funcsigs import signature
from collections import defaultdict
from ndd.exceptions import EstimatorParameterError  # pylint: disable=C0412
import logging
import numpy


    >>> estimator.estimated_param_ #doctest: +SKIP
    """

    @classmethod
    def _get_param_names(cls):
        """Get parameter names for the estimator.

        Raises
        ------
        EstimatorParameterError
            If the estimator parameters are not specified in the signature.
        """
        # fetch the constructor or the original constructor before
        # deprecation wrapping if any
        init = getattr(cls.__init__, 'deprecated_original', cls.__init__)
        if init is object.__init__:
            # No explicit constructor to introspect
            return []

        # introspect the constructor arguments to find the model parameters
        # to represent
        init_signature = signature(init)
        # Consider the constructor parameters excluding 'self'
        parameters = [
            p for p in init_signature.parameters.values()
            if p.name != 'self' and p.kind != p.VAR_KEYWORD
        ]
        for p in parameters:
            if p.kind == p.VAR_POSITIONAL:

                raise EstimatorParameterError(