massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-pyright / node_modules / pyright / dist / typeshed-fallback / stdlib / statistics.pyi
1 import sys
2 from _typeshed import SupportsLessThanT
3 from decimal import Decimal
4 from fractions import Fraction
5 from typing import Any, Hashable, Iterable, NamedTuple, Sequence, SupportsFloat, Type, TypeVar, Union
6
7 _T = TypeVar("_T")
8 # Most functions in this module accept homogeneous collections of one of these types
9 _Number = Union[float, Decimal, Fraction]
10 _NumberT = TypeVar("_NumberT", float, Decimal, Fraction)
11
12 # Used in mode, multimode
13 _HashableT = TypeVar("_HashableT", bound=Hashable)
14
15 class StatisticsError(ValueError): ...
16
17 if sys.version_info >= (3, 8):
18     def fmean(data: Iterable[SupportsFloat]) -> float: ...
19     def geometric_mean(data: Iterable[SupportsFloat]) -> float: ...
20
21 def mean(data: Iterable[_NumberT]) -> _NumberT: ...
22
23 if sys.version_info >= (3, 10):
24     def harmonic_mean(data: Iterable[_NumberT], weights: Iterable[_Number] | None = ...) -> _NumberT: ...
25
26 else:
27     def harmonic_mean(data: Iterable[_NumberT]) -> _NumberT: ...
28
29 def median(data: Iterable[_NumberT]) -> _NumberT: ...
30 def median_low(data: Iterable[SupportsLessThanT]) -> SupportsLessThanT: ...
31 def median_high(data: Iterable[SupportsLessThanT]) -> SupportsLessThanT: ...
32 def median_grouped(data: Iterable[_NumberT], interval: _NumberT = ...) -> _NumberT: ...
33 def mode(data: Iterable[_HashableT]) -> _HashableT: ...
34
35 if sys.version_info >= (3, 8):
36     def multimode(data: Iterable[_HashableT]) -> list[_HashableT]: ...
37
38 def pstdev(data: Iterable[_NumberT], mu: _NumberT | None = ...) -> _NumberT: ...
39 def pvariance(data: Iterable[_NumberT], mu: _NumberT | None = ...) -> _NumberT: ...
40
41 if sys.version_info >= (3, 8):
42     def quantiles(data: Iterable[_NumberT], *, n: int = ..., method: str = ...) -> list[_NumberT]: ...
43
44 def stdev(data: Iterable[_NumberT], xbar: _NumberT | None = ...) -> _NumberT: ...
45 def variance(data: Iterable[_NumberT], xbar: _NumberT | None = ...) -> _NumberT: ...
46
47 if sys.version_info >= (3, 8):
48     class NormalDist:
49         def __init__(self, mu: float = ..., sigma: float = ...) -> None: ...
50         @property
51         def mean(self) -> float: ...
52         @property
53         def median(self) -> float: ...
54         @property
55         def mode(self) -> float: ...
56         @property
57         def stdev(self) -> float: ...
58         @property
59         def variance(self) -> float: ...
60         @classmethod
61         def from_samples(cls: Type[_T], data: Iterable[SupportsFloat]) -> _T: ...
62         def samples(self, n: int, *, seed: Any | None = ...) -> list[float]: ...
63         def pdf(self, x: float) -> float: ...
64         def cdf(self, x: float) -> float: ...
65         def inv_cdf(self, p: float) -> float: ...
66         def overlap(self, other: NormalDist) -> float: ...
67         def quantiles(self, n: int = ...) -> list[float]: ...
68         if sys.version_info >= (3, 9):
69             def zscore(self, x: float) -> float: ...
70         def __add__(self, x2: float | NormalDist) -> NormalDist: ...
71         def __sub__(self, x2: float | NormalDist) -> NormalDist: ...
72         def __mul__(self, x2: float) -> NormalDist: ...
73         def __truediv__(self, x2: float) -> NormalDist: ...
74         def __pos__(self) -> NormalDist: ...
75         def __neg__(self) -> NormalDist: ...
76         __radd__ = __add__
77         def __rsub__(self, x2: float | NormalDist) -> NormalDist: ...
78         __rmul__ = __mul__
79         def __hash__(self) -> int: ...
80
81 if sys.version_info >= (3, 10):
82     def correlation(__x: Sequence[_Number], __y: Sequence[_Number]) -> float: ...
83     def covariance(__x: Sequence[_Number], __y: Sequence[_Number]) -> float: ...
84     class LinearRegression(NamedTuple):
85         slope: float
86         intercept: float
87     def linear_regression(__regressor: Sequence[_Number], __dependent_variable: Sequence[_Number]) -> LinearRegression: ...