11import abc
22import types
3- from typing import Any , Generic , Literal as L , TypeAlias , overload
3+ from typing import Any , Generic , Literal as L , overload
44from typing_extensions import TypeVar
55
66import numpy as np
@@ -11,22 +11,23 @@ from ._qmc import QMCEngine
1111
1212_XT_co = TypeVar ("_XT_co" , bound = npc .number , default = np .float64 , covariant = True )
1313
14- _MedianMethod : TypeAlias = L ["formula" , "icdf" ] | None
15- _ModeMethod : TypeAlias = L ["formula" , "optimization" ] | None
16- _SampleMethod : TypeAlias = L ["formula" , "inverse_transform" ] | None
17- _RMomentMethod : TypeAlias = L ["formula" , "transform" , "quadrature" , "cache" ] | None
18- _CMomentMethod : TypeAlias = L ["formula" , "transform" , "quadrature" , "cache" , "normalize" ] | None
19- _SMomentMethod : TypeAlias = L ["formula" , "transform" , "general" , "cache" , "normalize" ] | None
20- _EntropyMethod : TypeAlias = L ["formula" , "logexp" , "quadrature" ] | None
21- _PXFMethod : TypeAlias = L ["formula" , "logexp" ] | None
22- _CDFMethod : TypeAlias = L ["formula" , "logexp" , "complement" , "quadrature" , "subtraction" ] | None
23- _CCDFMethod : TypeAlias = L ["formula" , "logexp" , "complement" , "quadrature" , "addition" ] | None
24- _ICDFMethod : TypeAlias = L ["formula" , "complement" , "inversion" ] | None
14+ type _MedianMethod = L ["formula" , "icdf" ] | None
15+ type _ModeMethod = L ["formula" , "optimization" ] | None
16+ type _SampleMethod = L ["formula" , "inverse_transform" ] | None
17+ type _RMomentMethod = L ["formula" , "transform" , "quadrature" , "cache" ] | None
18+ type _CMomentMethod = L ["formula" , "transform" , "quadrature" , "cache" , "normalize" ] | None
19+ type _SMomentMethod = L ["formula" , "transform" , "general" , "cache" , "normalize" ] | None
20+ type _LMomentMethod = L ["formula" , "general" , "order_statistics" , "quadrature_icdf" , "cache" ]
21+ type _EntropyMethod = L ["formula" , "logexp" , "quadrature" ] | None
22+ type _PXFMethod = L ["formula" , "logexp" ] | None
23+ type _CDFMethod = L ["formula" , "logexp" , "complement" , "quadrature" , "subtraction" ] | None
24+ type _CCDFMethod = L ["formula" , "logexp" , "complement" , "quadrature" , "addition" ] | None
25+ type _ICDFMethod = L ["formula" , "complement" , "inversion" ] | None
2526
26- _Float : TypeAlias = np .float64 | np .longdouble
27- _Complex : TypeAlias = np .complex128 | np .clongdouble
28- _FloatND : TypeAlias = onp .ArrayND [_Float ]
29- _ToFloat0ND : TypeAlias = onp .ToFloat | onp .ToFloatND
27+ type _Float = np .float64 | np .longdouble
28+ type _Complex = np .complex128 | np .clongdouble
29+ type _FloatND = onp .ArrayND [_Float ]
30+ type _ToFloat0ND = onp .ToFloat | onp .ToFloatND
3031
3132###
3233
@@ -69,6 +70,10 @@ class _ProbabilityDistribution(Generic[_XT_co], metaclass=abc.ABCMeta):
6970 @abc .abstractmethod
7071 def moment (self , / , order : onp .ToInt , kind : L ["standardized" ], * , method : _SMomentMethod ) -> _Float | _FloatND : ...
7172
73+ # The `kind` param here is wrong: https://github.com/scipy/scipy/pull/25243
74+ @abc .abstractmethod
75+ def lmoment (self , / , order : int , kind : bool , * , method : _LMomentMethod | None ) -> _Float | _FloatND : ...
76+
7277 #
7378 @abc .abstractmethod
7479 def entropy (self , / , * , method : _EntropyMethod ) -> _Float | _FloatND : ...
0 commit comments