@param y a numpy array of observed maxima or minima values. See ‘Details’ for how the values of ‘y’ should be ordered if there are multiple replicates and the values of ‘x’ are identical for all replicates. For better optimization performance, it is recommended that the ‘y’ have magnitude around one (see ‘Details’), for which one can use ‘scaling’.
@param x a numpy array or pandas data frame with columns corresponding to covariate/predictor/feature variables and each row containing the values of the variable for the corresponding observed maximum/minimum. The number of rows should either equal the length of ‘y’ or (if there is more than one replicate) it can optionally equal the number of observations in a single replicate, in which case the values will be assumed to be the same for all replicates. 
@param locationFun numpy array of either character strings or indices describing a linear model (i.e., regression function) for the location parameter using columns from ‘x’. ‘x’ must be supplied if this is anything other than ‘None’.
@param scaleFun numpy array of either character strings or indices describing a linear model (i.e., regression function) for the (potentially transformed) scale parameter using columns from ‘x’. ‘x’ must be supplied if this is anything other than ‘None’. ‘logscale’ controls whether this determines the log of the scale or the scale directly. 
@param shapeFun numpy array of either character strings or indices describing a linear model (i.e., regression function) for the shape parameter using columns from ‘x’. ‘x’ must be supplied if this is anything other than ‘None’.
@param nReplicates numeric value indicating the number of replicates.
@param replicateIndex numpy array providing the index of the replicate corresponding to each element of ‘y’. Used (and therefore required) only when using bootstrapping with the resampling by replicates based on the ‘by’ element of ‘bootControl’.
@param weights a numpy array providing the weights for each observation. When there is only one replicate or the weights do not vary by replicate, an array of length equal to the number of observations. When weights vary by replicate, this should be of equal length to ‘y’. Likelihood contribution of each observation is multiplied by the corresponding weight. 
@param returnPeriod numeric value giving the number of blocks for which return values should be calculated. For example a returnPeriod of 20 corresponds to the value of an event that occurs with probability 1/20 in any block and therefore occurs on average every 20 blocks. Often blocks will correspond to years.
@param returnValue numeric value giving the value for which return probabilities/periods should be calculated, where the period would be the average number of blocks until the value is exceeded and the probability the probability of exceeding the value in any single block.
@param getParams boolean indicating whether to return the fitted parameter values and their standard errors; WARNING: parameter values for models with covariates for the scale parameter must interpreted based on the value of ‘logScale’.
@param getFit boolean indicating whether to return the full fitted model (potentially useful for model evaluation and for understanding optimization problems); note that estimated parameters in the fit object for nonstationary models will not generally match the MLE provided when ‘getParams’ is ‘TRUE’ because covariates are normalized before fitting and the fit object is based on the normalized covariates. Similarly, parameters will not match if ‘scaling’ is not 1. 
@param xNew object of the same form as ‘x’, providing covariate/predictor/feature values for which return values/periods/probabilities are desired.
@param xContrast object of the same form and dimensions as ‘xNew’, providing covariate/predictor/feature values for which to calculate the differences of the return values and/or log return probabilities relative to the values in ‘xNew’. This provides a way to estimate the difference in return value or log return probabilities (i.e., log risk ratios).
@param maxes boolean indicating whether analysis is for block maxima (‘True’) or block minima (‘False’); in the latter case, the function works with the negative of the values, changing the sign of the resulting location parameters
@param scaling positive-valued number used to scale the data values for more robust optimization performance. When multiplied by the values, it should produce values with magnitude around 1.
@param bootSE boolean indicating whether to use the bootstrap to estimate standard errors.
@param bootControl a dictionary of control parameters for the bootstrapping. See ‘Details’.
@param optimArgs a dictionary with named components matching exactly any arguments that the user wishes to pass to R's ‘optim’ function. See ‘help(optim)’ in R for details. Of particular note, ‘'method'’ can be used to choose the optimization method used for maximizing the log-likelihood to fit the model (e.g., ‘'method'’ could be 'BFGS' instead of the default 'Nelder-Mead'). To specify the ‘control’ argument, use ‘optimControl’ rather than including ‘control’ here.
@param optimControl a dictionary with named components matching exactly any elements that the user wishes to pass as the ‘control’ argument to R's ‘optim’ function. For example, ‘control={'maxit': VALUE)’ for a user-specified VALUE can be used to increase the number of iterations if the optimization is converging slowly.
@param missingFlag optional value to be interpreted as missing values (instead of default ‘numpy.nan’)
@param initial a dictionary with components named ‘'location'’, ‘'scale'’, and ‘'shape'’ providing initial parameter values, intended for use in speeding up or enabling optimization when the default initial values are resulting in failure of the optimization; note that use of ‘scaling’, ‘logScale’, and ‘.normalizeX = True’ cause numerical changes in some of the parameters. For example with ‘logScale = True’, initial value(s) for ‘'scale'’ should be specified on the log scale.
@param logScale boolean indicating whether optimization for the scale parameter should be done on the log scale. By default this is ‘False’ when the scale is not a function of covariates and ‘True’ when the scale is a function of covariates (to ensure the scale is positive regardless of the regression coefficients). 
@param .normalizeX boolean indicating whether to normalize ‘x’ values for better numerical performance; default is ‘True’.
@param .getInputs boolean indicating whether to return intermediate objects used in fitting. Defaults to ‘False’ and intended for internal use only
