def __init__(self, name: str, cursor=None, p: int=0, d: int=0, q: int=0, P: int=0, D: int=0, Q: int=0, s: int=0, tol: float=0.0001, max_iter: int=1000, solver: str='Newton', max_pik: int=100, papprox_ma: int=200):
    check_types([('name', name, [str])])
    (self.type, self.name) = ('SARIMAX', name)
    self.set_params({'p': p, 'd': d, 'q': q, 'P': P, 'D': D, 'Q': Q, 's': s, 'tol': tol, 'max_iter': max_iter, 'solver': solver, 'max_pik': max_pik, 'papprox_ma': papprox_ma})
    if (self.parameters['s'] == 0):
        assert ((self.parameters['D'] == 0) and (self.parameters['P'] == 0) and (self.parameters['Q'] == 0)), ParameterError('In case of non-seasonality (s = 0), all the parameters P, D or Q must be equal to 0.')
    else:
        assert ((self.parameters['D'] > 0) or (self.parameters['P'] > 0) or (self.parameters['Q'] > 0)), ParameterError('In case of seasonality (s > 0), at least one of the parameters P, D or Q must be strictly greater than 0.')
    cursor = check_cursor(cursor)[0]
    self.cursor = cursor
    version(cursor=cursor, condition=[8, 0, 0])
def __init__(self, name: str, cursor=None, p: int=0, d: int=0, q: int=0, P: int=0, D: int=0, Q: int=0, s: int=0, tol: float=0.0001, max_iter: int=1000, solver: str='Newton', max_pik: int=100, papprox_ma: int=200):
    check_types([('name', name, [str])])
    (self.type, self.name) = ('SARIMAX', name)
    self.set_params({'p': p, 'd': d, 'q': q, 'P': P, 'D': D, 'Q': Q, 's': s, 'tol': tol, 'max_iter': max_iter, 'solver': solver, 'max_pik': max_pik, 'papprox_ma': papprox_ma})
    if (self.parameters['s'] == 0):
        assert ((self.parameters['D'] == 0) and (self.parameters['P'] == 0) and (self.parameters['Q'] == 0)), ParameterError('In case of non-seasonality (s = 0), all the parameters P, D or Q must be equal to 0.')
    else:
        assert ((self.parameters['D'] > 0) or (self.parameters['P'] > 0) or (self.parameters['Q'] > 0)), ParameterError('In case of seasonality (s > 0), at least one of the parameters P, D or Q must be strictly greater than 0.')
    cursor = check_cursor(cursor)[0]
    self.cursor = cursor
    version(cursor=cursor, condition=[8, 0, 0])