HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Lib/site-packages/statsmodels/tools/validation/decorators.py
from functools import wraps

import numpy as np

import statsmodels.tools.validation.validation as v


def array_like(
    pos,
    name,
    dtype=np.double,
    ndim=None,
    maxdim=None,
    shape=None,
    order="C",
    contiguous=False,
):
    def inner(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            if pos < len(args):
                arg = args[pos]
                arg = v.array_like(
                    arg, name, dtype, ndim, maxdim, shape, order, contiguous
                )
                if pos == 0:
                    args = (arg,) + args[1:]
                else:
                    args = args[:pos] + (arg,) + args[pos + 1:]
            else:
                arg = kwargs[name]
                arg = v.array_like(
                    arg, name, dtype, ndim, maxdim, shape, order, contiguous
                )
                kwargs[name] = arg

            return func(*args, **kwargs)

        return wrapper

    return inner