From c117f9b9e4df260a0cd1c73b26a970a1459d664e Mon Sep 17 00:00:00 2001 From: Maciej Date: Fri, 10 Jan 2020 22:42:00 +0100 Subject: [PATCH] SPARK-29143 (#278) * Adjust LSH-related annotations * Update IDF-related annotations * Update Imupter-related annotations * Update MaxAbsScaler-related annotations * Update MinMaxScaler-related annotations * Update OneHotEncoder-related annotations * Update RobustScaler-related annotations * Update StandardScaler-related annotations * Update VectorIndexer-related annotations * Update Word2Vec-related annotations * Update PCA-related annotations * Update RFormula-related annotations * Update ChiSqSelector-related annotations --- third_party/3/pyspark/ml/feature.pyi | 157 ++++++++++++++++----------- 1 file changed, 92 insertions(+), 65 deletions(-) diff --git a/third_party/3/pyspark/ml/feature.pyi b/third_party/3/pyspark/ml/feature.pyi index 8a5e28d1..d4c43db7 100644 --- a/third_party/3/pyspark/ml/feature.pyi +++ b/third_party/3/pyspark/ml/feature.pyi @@ -2,8 +2,8 @@ # from typing import overload -from typing import Any, Dict, List, Optional, Tuple -from pyspark.ml._typing import P +from typing import Any, Dict, Generic, List, Optional, Tuple +from pyspark.ml._typing import JM, P from pyspark.ml.param.shared import * from pyspark.ml.util import JavaMLReadable, JavaMLWritable @@ -18,24 +18,30 @@ class Binarizer(JavaTransformer, HasInputCol, HasOutputCol, JavaMLReadable[Binar def setThreshold(self, value: float) -> Binarizer: ... def getThreshold(self) -> float: ... -class LSHParams(Params): +class _LSHParams(HasInputCol, HasOutputCol): numHashTables: Param[int] - def __init__(self) -> None: ... - def setNumHashTables(self: P, value: int) -> P: ... def getNumHashTables(self) -> int: ... -class LSHModel(JavaModel): +class _LSH(Generic[JM], JavaEstimator[JM], _LSHParams, JavaMLReadable, JavaMLWritable): + def setNumHashTables(self: P, value) -> P: ... + def setInputCol(self: P, value) -> P: ... + def setOutputCol(self: P, value) -> P: ... + +class _LSHModel(JavaModel, _LSHParams): def approxNearestNeighbors(self, dataset: DataFrame, key: Vector, numNearestNeighbors: int, distCol: str = ...) -> DataFrame: ... def approxSimilarityJoin(self, datasetA: DataFrame, datasetB: DataFrame, threshold: float, distCol: str = ...) -> DataFrame: ... -class BucketedRandomProjectionLSH(JavaEstimator[BucketedRandomProjectionLSHModel], LSHParams, HasInputCol, HasOutputCol, HasSeed, JavaMLReadable[BucketedRandomProjectionLSH], JavaMLWritable): +class _BucketedRandomProjectionLSHParams(): bucketLength: Param[float] + def getBucketLength(self) -> float: ... + +class BucketedRandomProjectionLSH(_LSH[BucketedRandomProjectionLSHModel], _LSHParams, HasSeed, JavaMLReadable[BucketedRandomProjectionLSH], JavaMLWritable): def __init__(self, *, inputCol: Optional[str] = ..., outputCol: Optional[str] = ..., seed: Optional[int] = ..., numHashTables: int = ..., bucketLength: Optional[float] = ...) -> None: ... def setParams(self, *, inputCol: Optional[str] = ..., outputCol: Optional[str] = ..., seed: Optional[int] = ..., numHashTables: int = ..., bucketLength: Optional[float] = ...) -> BucketedRandomProjectionLSH: ... def setBucketLength(self, value: float) -> BucketedRandomProjectionLSH: ... def getBucketLength(self) -> float: ... -class BucketedRandomProjectionLSHModel(LSHModel, JavaMLReadable[BucketedRandomProjectionLSHModel], JavaMLWritable): ... +class BucketedRandomProjectionLSHModel(_LSHModel, _BucketedRandomProjectionLSHParams, JavaMLReadable[BucketedRandomProjectionLSHModel], JavaMLWritable): ... class Bucketizer(JavaTransformer, HasInputCol, HasOutputCol, HasInputCols, HasOutputCols, HasHandleInvalid, JavaMLReadable[Bucketizer], JavaMLWritable): splits: Param[List[float]] @@ -112,14 +118,16 @@ class HashingTF(JavaTransformer, HasInputCol, HasOutputCol, HasNumFeatures, Java def getBinary(self) -> bool: ... def indexOf(self, term: Any) -> int: ... -class IDF(JavaEstimator[IDFModel], HasInputCol, HasOutputCol, JavaMLReadable[IDF], JavaMLWritable): +class _IDFParams(HasInputCol, HasOutputCol): minDocFreq: Param[int] + def getMinDocFreq(self) -> int: ... + +class IDF(JavaEstimator[IDFModel], _IDFParams, JavaMLReadable[IDF], JavaMLWritable): def __init__(self, *, minDocFreq: int = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ...) -> None: ... def setParams(self, *, minDocFreq: int = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ...) -> IDF: ... def setMinDocFreq(self, value: int) -> IDF: ... - def getMinDocFreq(self) -> int: ... -class IDFModel(JavaModel, JavaMLReadable[IDFModel], JavaMLWritable): +class IDFModel(JavaModel, _IDFParams, JavaMLReadable[IDFModel], JavaMLWritable): @property def idf(self) -> Vector: ... @property @@ -127,20 +135,19 @@ class IDFModel(JavaModel, JavaMLReadable[IDFModel], JavaMLWritable): @property def numDocs(self) -> int: ... -class Imputer(JavaEstimator[ImputerModel], HasInputCols, JavaMLReadable[Imputer], JavaMLWritable): - outputCols: Param[List[str]] +class _ImputerParams(HasInputCols, HasOutputCols): strategy: Param[str] missingValue: Param[float] + def getStrategy(self) -> str: ... + def getMissingValue(self) -> float: ... + +class Imputer(JavaEstimator[ImputerModel], _ImputerParams, JavaMLReadable[Imputer], JavaMLWritable): def __init__(self, *, strategy: str = ..., missingValue: float = ..., inputCols: Optional[List[str]] = ..., outputCols: Optional[List[str]] = ...) -> None: ... def setParams(self, *, strategy: str = ..., missingValue: float = ..., inputCols: Optional[List[str]] = ..., outputCols: Optional[List[str]] = ...) -> Imputer: ... - def setOutputCols(self, value: List[str]) -> Imputer: ... - def getOutputCols(self) -> List[str]: ... def setStrategy(self, value: str) -> Imputer: ... - def getStrategy(self) -> str: ... def setMissingValue(self, value: float) -> Imputer: ... - def getMissingValue(self) -> float: ... -class ImputerModel(JavaModel, JavaMLReadable[ImputerModel], JavaMLWritable): +class ImputerModel(JavaModel, _ImputerParams, JavaMLReadable[ImputerModel], JavaMLWritable): @property def surrogateDF(self) -> DataFrame: ... @@ -148,31 +155,35 @@ class Interaction(JavaTransformer, HasInputCols, HasOutputCol, JavaMLReadable[In def __init__(self, *, inputCols: Optional[List[str]] = ..., outputCol: Optional[List[str]] = ...) -> None: ... def setParams(self, *, inputCols: Optional[List[str]] = ..., outputCol: Optional[List[str]] = ...) -> Interaction: ... -class MaxAbsScaler(JavaEstimator[MaxAbsScalerModel], HasInputCol, HasOutputCol, JavaMLReadable[MaxAbsScaler], JavaMLWritable): +class _MaxAbsScalerParams(HasInputCol, HasOutputCol): ... + +class MaxAbsScaler(JavaEstimator[MaxAbsScalerModel], _MaxAbsScalerParams, JavaMLReadable[MaxAbsScaler], JavaMLWritable): def __init__(self, *, inputCol: Optional[str] = ..., outputCol: Optional[str] = ...) -> None: ... def setParams(self, *, inputCol: Optional[str] = ..., outputCol: Optional[str] = ...) -> MaxAbsScaler: ... -class MaxAbsScalerModel(JavaModel, JavaMLReadable[MaxAbsScalerModel], JavaMLWritable): +class MaxAbsScalerModel(JavaModel, _MaxAbsScalerParams, JavaMLReadable[MaxAbsScalerModel], JavaMLWritable): @property def maxAbs(self) -> Vector: ... -class MinHashLSH(JavaEstimator[MinHashLSHModel], LSHParams, HasInputCol, HasOutputCol, HasSeed, JavaMLReadable[MinHashLSH], JavaMLWritable): +class MinHashLSH(_LSH[MinHashLSHModel], HasInputCol, HasOutputCol, HasSeed, JavaMLReadable[MinHashLSH], JavaMLWritable): def __init__(self, *, inputCol: Optional[str] = ..., outputCol: Optional[str] = ..., seed: Optional[int] = ..., numHashTables: int = ...) -> None: ... def setParams(self, *, inputCol: Optional[str] = ..., outputCol: Optional[str] = ..., seed: Optional[int] = ..., numHashTables: int = ...) -> MinHashLSH: ... -class MinHashLSHModel(LSHModel, JavaMLReadable[MinHashLSHModel], JavaMLWritable): ... +class MinHashLSHModel(_LSHModel, JavaMLReadable[MinHashLSHModel], JavaMLWritable): ... -class MinMaxScaler(JavaEstimator[MinMaxScalerModel], HasInputCol, HasOutputCol, JavaMLReadable[MinMaxScaler], JavaMLWritable): +class _MinMaxScalerParams(HasInputCol, HasOutputCol): min: Param[float] max: Param[float] + def getMin(self) -> float: ... + def getMax(self) -> float: ... + +class MinMaxScaler(JavaEstimator[MinMaxScalerModel], _MinMaxScalerParams, JavaMLReadable[MinMaxScaler], JavaMLWritable): def __init__(self, *, min: float = ..., max: float = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ...) -> None: ... def setParams(self, *, min: float = ..., max: float = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ...) -> MinMaxScaler: ... def setMin(self, value: float) -> MinMaxScaler: ... - def getMin(self) -> float: ... def setMax(self, value: float) -> MinMaxScaler: ... - def getMax(self) -> float: ... -class MinMaxScalerModel(JavaModel, JavaMLReadable[MinMaxScalerModel], JavaMLWritable): +class MinMaxScalerModel(JavaModel, _MinMaxScalerParams, JavaMLReadable[MinMaxScalerModel], JavaMLWritable): @property def originalMin(self) -> Vector: ... @property @@ -192,15 +203,17 @@ class Normalizer(JavaTransformer, HasInputCol, HasOutputCol, JavaMLReadable[Norm def setP(self, value: float) -> Normalizer: ... def getP(self) -> float: ... -class OneHotEncoder(JavaEstimator[OneHotEncoderModel], HasInputCols, HasOutputCols, HasHandleInvalid, JavaMLReadable[OneHotEncoder], JavaMLWritable): +class _OneHotEncoderParams(HasInputCols, HasOutputCols, HasHandleInvalid): handleInvalid: Param[str] dropLast: Param[bool] + def getDropLast(self) -> bool: ... + +class OneHotEncoder(JavaEstimator[OneHotEncoderModel], _OneHotEncoderParams, JavaMLReadable[OneHotEncoder], JavaMLWritable): def __init__(self, *, inputCols: Optional[List[str]] = ..., outputCols: Optional[List[str]] = ..., handleInvalid: str = ..., dropLast: bool = ...) -> None: ... def setParams(self, *, inputCols: Optional[List[str]] = ..., outputCols: Optional[List[str]] = ..., handleInvalid: str = ..., dropLast: bool = ...) -> OneHotEncoder: ... def setDropLast(self, value: bool) -> OneHotEncoder: ... - def getDropLast(self) -> bool: ... -class OneHotEncoderModel(JavaModel, JavaMLReadable[OneHotEncoderModel], JavaMLWritable): +class OneHotEncoderModel(JavaModel, _OneHotEncoderParams, JavaMLReadable[OneHotEncoderModel], JavaMLWritable): @property def categorySizes(self) -> List[int]: ... @@ -231,23 +244,25 @@ class QuantileDiscretizer(JavaEstimator[Bucketizer], HasInputCol, HasOutputCol, def setRelativeError(self, value: float) -> QuantileDiscretizer: ... def getRelativeError(self) -> float: ... -class RobustScaler(JavaEstimator, HasInputCol, HasOutputCol, JavaMLReadable[RobustScaler], JavaMLWritable): +class _RobustScalerParams(HasInputCol, HasOutputCol): lower: Param[float] upper: Param[float] withCentering: Param[bool] withScaling: Param[bool] + def getLower(self) -> float: ... + def getUpper(self) -> float: ... + def getWithCentering(self) -> bool: ... + def getWithScaling(self) -> bool: ... + +class RobustScaler(JavaEstimator, _RobustScalerParams, JavaMLReadable[RobustScaler], JavaMLWritable): def __init__(self, *, lower: float = ..., upper: float = ..., withCentering: bool = ..., withScaling: bool = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ...) -> None: ... def setParams(self, *, lower: float = ..., upper: float = ..., withCentering: bool = ..., withScaling: bool = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ...) -> RobustScaler: ... def setLower(self, value: float) -> RobustScaler: ... - def getLower(self) -> float: ... def setUpper(self, value: float) -> RobustScaler: ... - def getUpper(self) -> float: ... def setWithCentering(self, value: bool) -> RobustScaler: ... - def getWithCentering(self) -> bool: ... def setWithScaling(self, value: bool) -> RobustScaler: ... - def getWithScaling(self) -> bool: ... -class RobustScalerModel(JavaModel, JavaMLReadable[RobustScalerModel], JavaMLWritable): +class RobustScalerModel(JavaModel, _RobustScalerParams, JavaMLReadable[RobustScalerModel], JavaMLWritable): @property def median(self) -> Vector: ... @property @@ -276,17 +291,19 @@ class SQLTransformer(JavaTransformer, JavaMLReadable[SQLTransformer], JavaMLWrit def setStatement(self, value: str) -> SQLTransformer: ... def getStatement(self) -> str: ... -class StandardScaler(JavaEstimator[StandardScalerModel], HasInputCol, HasOutputCol, JavaMLReadable[StandardScaler], JavaMLWritable): +class _StandardScalerParams(HasInputCol, HasOutputCol): withMean: Param[bool] withStd: Param[bool] + def getWithMean(self) -> bool: ... + def getWithStd(self) -> bool: ... + +class StandardScaler(JavaEstimator[StandardScalerModel], _StandardScalerParams, JavaMLReadable[StandardScaler], JavaMLWritable): def __init__(self, *, withMean: bool = ..., withStd: bool = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ...) -> None: ... def setParams(self, *, withMean: bool = ..., withStd: bool = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ...) -> StandardScaler: ... def setWithMean(self, value: bool) -> StandardScaler: ... - def getWithMean(self) -> bool: ... def setWithStd(self, value: bool) -> StandardScaler: ... - def getWithStd(self) -> bool: ... -class StandardScalerModel(JavaModel, JavaMLReadable[StandardScalerModel], JavaMLWritable): +class StandardScalerModel(JavaModel, _StandardScalerParams, JavaMLReadable[StandardScalerModel], JavaMLWritable): @property def std(self) -> Vector: ... @property @@ -349,15 +366,17 @@ class VectorAssembler(JavaTransformer, HasInputCols, HasOutputCol, HasHandleInva def __init__(self, *, inputCols: Optional[List[str]] = ..., outputCol: Optional[str] = ..., handleInvalid: str = ...) -> None: ... def setParams(self, *, inputCols: Optional[List[str]] = ..., outputCol: Optional[str] = ..., handleInvalid: str = ...) -> VectorAssembler: ... -class VectorIndexer(JavaEstimator[VectorIndexerModel], HasInputCol, HasOutputCol, HasHandleInvalid, JavaMLReadable[VectorIndexer], JavaMLWritable): +class _VectorIndexerParams(HasInputCol, HasOutputCol, HasHandleInvalid): maxCategories: Param[int] handleInvalid: Param[str] + def getMaxCategories(self) -> int: ... + +class VectorIndexer(JavaEstimator[VectorIndexerModel], _VectorIndexerParams, HasHandleInvalid, JavaMLReadable[VectorIndexer], JavaMLWritable): def __init__(self, *, maxCategories: int = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ..., handleInvalid: str = ...) -> None: ... def setParams(self, *, maxCategories: int = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ..., handleInvalid: str = ...) -> VectorIndexer: ... def setMaxCategories(self, value: int) -> VectorIndexer: ... - def getMaxCategories(self) -> int: ... -class VectorIndexerModel(JavaModel, JavaMLReadable[VectorIndexerModel], JavaMLWritable): +class VectorIndexerModel(JavaModel, _VectorIndexerParams, JavaMLReadable[VectorIndexerModel], JavaMLWritable): @property def numFeatures(self) -> int: ... @property @@ -373,26 +392,28 @@ class VectorSlicer(JavaTransformer, HasInputCol, HasOutputCol, JavaMLReadable[Ve def setNames(self, value: List[str]) -> VectorSlicer: ... def getNames(self) -> List[str]: ... -class Word2Vec(JavaEstimator[Word2VecModel], HasStepSize, HasMaxIter, HasSeed, HasInputCol, HasOutputCol, JavaMLReadable[Word2Vec], JavaMLWritable): +class _Word2VecParams(HasStepSize, HasMaxIter, HasSeed, HasInputCol, HasOutputCol): vectorSize: Param[int] numPartitions: Param[int] minCount: Param[int] windowSize: Param[int] maxSentenceLength: Param[int] + def getVectorSize(self) -> int: ... + def getNumPartitions(self) -> int: ... + def getMinCount(self) -> int: ... + def getWindowSize(self) -> int: ... + def getMaxSentenceLength(self) -> int: ... + +class Word2Vec(JavaEstimator[Word2VecModel], _Word2VecParams, JavaMLReadable[Word2Vec], JavaMLWritable): def __init__(self, *, vectorSize: int = ..., minCount: int = ..., numPartitions: int = ..., stepSize: float = ..., maxIter: int = ..., seed: Optional[int] = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ..., windowSize: int = ..., maxSentenceLength: int = ...) -> None: ... def setParams(self, *, vectorSize: int = ..., minCount: int = ..., numPartitions: int = ..., stepSize: float = ..., maxIter: int = ..., seed: Optional[int] = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ..., windowSize: int = ..., maxSentenceLength: int = ...) -> Word2Vec: ... def setVectorSize(self, value: int) -> Word2Vec: ... - def getVectorSize(self) -> int: ... def setNumPartitions(self, value: int) -> Word2Vec: ... - def getNumPartitions(self) -> int: ... def setMinCount(self, value: int) -> Word2Vec: ... - def getMinCount(self) -> int: ... def setWindowSize(self, value: int) -> Word2Vec: ... - def getWindowSize(self) -> int: ... def setMaxSentenceLength(self, value: int) -> Word2Vec: ... - def getMaxSentenceLength(self) -> int: ... -class Word2VecModel(JavaModel, JavaMLReadable[Word2VecModel], JavaMLWritable): +class Word2VecModel(JavaModel, _Word2VecParams, JavaMLReadable[Word2VecModel], JavaMLWritable): def getVectors(self) -> DataFrame: ... @overload def findSynonyms(self, word: str, num: int) -> DataFrame: ... @@ -403,58 +424,64 @@ class Word2VecModel(JavaModel, JavaMLReadable[Word2VecModel], JavaMLWritable): @overload def findSynonymsArray(self, word: Vector, num: int) -> List[Tuple[str, float]]: ... -class PCA(JavaEstimator[PCAModel], HasInputCol, HasOutputCol, JavaMLReadable[PCA], JavaMLWritable): +class _PCAParams(HasInputCol, HasOutputCol): k: Param[int] + def getK(self) -> int: ... + +class PCA(JavaEstimator[PCAModel], _PCAParams, JavaMLReadable[PCA], JavaMLWritable): def __init__(self, *, k: Optional[int] = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ...) -> None: ... def setParams(self, *, k: Optional[int] = ..., inputCol: Optional[str] = ..., outputCol: Optional[str] = ...) -> PCA: ... def setK(self, value: int) -> PCA: ... - def getK(self) -> int: ... -class PCAModel(JavaModel, JavaMLReadable[PCAModel], JavaMLWritable): +class PCAModel(JavaModel, _PCAParams, JavaMLReadable[PCAModel], JavaMLWritable): @property def pc(self) -> DenseMatrix: ... @property def explainedVariance(self) -> DenseVector: ... -class RFormula(JavaEstimator[RFormulaModel], HasFeaturesCol, HasLabelCol, HasHandleInvalid, JavaMLReadable[RFormula], JavaMLWritable): +class _RFormulaParams(HasFeaturesCol, HasLabelCol, HasHandleInvalid): formula: Param[str] forceIndexLabel: Param[bool] stringIndexerOrderType: Param[str] handleInvalid: Param[str] + def getFormula(self) -> str: ... + def getForceIndexLabel(self) -> bool: ... + def getStringIndexerOrderType(self) -> str: ... + +class RFormula(JavaEstimator[RFormulaModel], _RFormulaParams, JavaMLReadable[RFormula], JavaMLWritable): def __init__(self, *, formula: Optional[str] = ..., featuresCol: str = ..., labelCol: str = ..., forceIndexLabel: bool = ..., stringIndexerOrderType: str = ..., handleInvalid: str = ...) -> None: ... def setParams(self, *, formula: Optional[str] = ..., featuresCol: str = ..., labelCol: str = ..., forceIndexLabel: bool = ..., stringIndexerOrderType: str = ..., handleInvalid: str = ...) -> RFormula: ... def setFormula(self, value: str) -> RFormula: ... - def getFormula(self) -> str: ... def setForceIndexLabel(self, value: bool) -> RFormula: ... - def getForceIndexLabel(self) -> bool: ... def setStringIndexerOrderType(self, value: str) -> RFormula: ... - def getStringIndexerOrderType(self) -> str: ... -class RFormulaModel(JavaModel, JavaMLReadable[RFormulaModel], JavaMLWritable): ... +class RFormulaModel(JavaModel, _RFormulaParams, JavaMLReadable[RFormulaModel], JavaMLWritable): ... -class ChiSqSelector(JavaEstimator[ChiSqSelectorModel], HasFeaturesCol, HasOutputCol, HasLabelCol, JavaMLReadable[ChiSqSelector], JavaMLWritable): +class _ChiSqSelectorParams(HasFeaturesCol, HasOutputCol, HasLabelCol): selectorType: Param[str] numTopFeatures: Param[int] percentile: Param[float] fpr: Param[float] fdr: Param[float] fwe: Param[float] + def getSelectorType(self) -> str: ... + def getNumTopFeatures(self) -> int: ... + def getPercentile(self) -> float: ... + def getFpr(self) -> float: ... + def getFdr(self) -> float: ... + def getFwe(self) -> float: ... + +class ChiSqSelector(JavaEstimator[ChiSqSelectorModel], _ChiSqSelectorParams, JavaMLReadable[ChiSqSelector], JavaMLWritable): def __init__(self, *, numTopFeatures: int = ..., featuresCol: str = ..., outputCol: Optional[str] = ..., labelCol: str = ..., selectorType: str = ..., percentile: float = ..., fpr: float = ..., fdr: float = ..., fwe: float = ...) -> None: ... def setParams(self, *, numTopFeatures: int = ..., featuresCol: str = ..., outputCol: Optional[str] = ..., labelCol: str = ..., selectorType: str = ..., percentile: float = ..., fpr: float = ..., fdr: float = ..., fwe: float = ...): ... def setSelectorType(self, value: str) -> ChiSqSelector: ... - def getSelectorType(self) -> str: ... def setNumTopFeatures(self, value: int) -> ChiSqSelector: ... - def getNumTopFeatures(self) -> int: ... def setPercentile(self, value: float) -> ChiSqSelector: ... - def getPercentile(self) -> float: ... def setFpr(self, value: float) -> ChiSqSelector: ... - def getFpr(self) -> float: ... def setFdr(self, value: float) -> ChiSqSelector: ... - def getFdr(self) -> float: ... def setFwe(self, value: float) -> ChiSqSelector: ... - def getFwe(self) -> float: ... -class ChiSqSelectorModel(JavaModel, JavaMLReadable[ChiSqSelectorModel], JavaMLWritable): +class ChiSqSelectorModel(JavaModel, _ChiSqSelectorParams, JavaMLReadable[ChiSqSelectorModel], JavaMLWritable): @property def selectedFeatures(self) -> List[int]: ...