Old engine for Continuous Time Bayesian Networks. Superseded by reCTBN. 🐍
https://github.com/madlabunimib/PyCTBN
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.7 KiB
109 lines
3.7 KiB
4 years ago
|
from datetime import datetime, timedelta, tzinfo
|
||
|
from pathlib import Path
|
||
|
from typing import (
|
||
|
IO,
|
||
|
TYPE_CHECKING,
|
||
|
Any,
|
||
|
AnyStr,
|
||
|
Callable,
|
||
|
Collection,
|
||
|
Dict,
|
||
|
Hashable,
|
||
|
List,
|
||
|
Mapping,
|
||
|
Optional,
|
||
|
Type,
|
||
|
TypeVar,
|
||
|
Union,
|
||
|
)
|
||
|
|
||
|
import numpy as np
|
||
|
|
||
|
# To prevent import cycles place any internal imports in the branch below
|
||
|
# and use a string literal forward reference to it in subsequent types
|
||
|
# https://mypy.readthedocs.io/en/latest/common_issues.html#import-cycles
|
||
|
if TYPE_CHECKING:
|
||
|
from pandas._libs import Period, Timedelta, Timestamp # noqa: F401
|
||
|
|
||
|
from pandas.core.dtypes.dtypes import ExtensionDtype # noqa: F401
|
||
|
|
||
|
from pandas import Interval # noqa: F401
|
||
|
from pandas.core.arrays.base import ExtensionArray # noqa: F401
|
||
|
from pandas.core.frame import DataFrame # noqa: F401
|
||
|
from pandas.core.generic import NDFrame # noqa: F401
|
||
|
from pandas.core.indexes.base import Index # noqa: F401
|
||
|
from pandas.core.series import Series # noqa: F401
|
||
|
|
||
|
# array-like
|
||
|
|
||
|
AnyArrayLike = TypeVar("AnyArrayLike", "ExtensionArray", "Index", "Series", np.ndarray)
|
||
|
ArrayLike = TypeVar("ArrayLike", "ExtensionArray", np.ndarray)
|
||
|
|
||
|
# scalars
|
||
|
|
||
|
PythonScalar = Union[str, int, float, bool]
|
||
|
DatetimeLikeScalar = TypeVar("DatetimeLikeScalar", "Period", "Timestamp", "Timedelta")
|
||
|
PandasScalar = Union["Period", "Timestamp", "Timedelta", "Interval"]
|
||
|
Scalar = Union[PythonScalar, PandasScalar]
|
||
|
|
||
|
# timestamp and timedelta convertible types
|
||
|
|
||
|
TimestampConvertibleTypes = Union[
|
||
|
"Timestamp", datetime, np.datetime64, int, np.int64, float, str
|
||
|
]
|
||
|
TimedeltaConvertibleTypes = Union[
|
||
|
"Timedelta", timedelta, np.timedelta64, int, np.int64, float, str
|
||
|
]
|
||
|
Timezone = Union[str, tzinfo]
|
||
|
|
||
|
# other
|
||
|
|
||
|
Dtype = Union[
|
||
|
"ExtensionDtype", str, np.dtype, Type[Union[str, float, int, complex, bool]]
|
||
|
]
|
||
|
DtypeObj = Union[np.dtype, "ExtensionDtype"]
|
||
|
FilePathOrBuffer = Union[str, Path, IO[AnyStr]]
|
||
|
|
||
|
# FrameOrSeriesUnion means either a DataFrame or a Series. E.g.
|
||
|
# `def func(a: FrameOrSeriesUnion) -> FrameOrSeriesUnion: ...` means that if a Series
|
||
|
# is passed in, either a Series or DataFrame is returned, and if a DataFrame is passed
|
||
|
# in, either a DataFrame or a Series is returned.
|
||
|
FrameOrSeriesUnion = Union["DataFrame", "Series"]
|
||
|
|
||
|
# FrameOrSeries is stricter and ensures that the same subclass of NDFrame always is
|
||
|
# used. E.g. `def func(a: FrameOrSeries) -> FrameOrSeries: ...` means that if a
|
||
|
# Series is passed into a function, a Series is always returned and if a DataFrame is
|
||
|
# passed in, a DataFrame is always returned.
|
||
|
FrameOrSeries = TypeVar("FrameOrSeries", bound="NDFrame")
|
||
|
|
||
|
Axis = Union[str, int]
|
||
|
Label = Optional[Hashable]
|
||
|
Level = Union[Label, int]
|
||
|
Ordered = Optional[bool]
|
||
|
JSONSerializable = Optional[Union[PythonScalar, List, Dict]]
|
||
|
Axes = Collection
|
||
|
|
||
|
# For functions like rename that convert one label to another
|
||
|
Renamer = Union[Mapping[Label, Any], Callable[[Label], Label]]
|
||
|
|
||
|
# to maintain type information across generic functions and parametrization
|
||
|
T = TypeVar("T")
|
||
|
|
||
|
# used in decorators to preserve the signature of the function it decorates
|
||
|
# see https://mypy.readthedocs.io/en/stable/generics.html#declaring-decorators
|
||
|
FuncType = Callable[..., Any]
|
||
|
F = TypeVar("F", bound=FuncType)
|
||
|
|
||
|
# types of vectorized key functions for DataFrame::sort_values and
|
||
|
# DataFrame::sort_index, among others
|
||
|
ValueKeyFunc = Optional[Callable[["Series"], Union["Series", AnyArrayLike]]]
|
||
|
IndexKeyFunc = Optional[Callable[["Index"], Union["Index", AnyArrayLike]]]
|
||
|
|
||
|
# types of `func` kwarg for DataFrame.aggregate and Series.aggregate
|
||
|
AggFuncTypeBase = Union[Callable, str]
|
||
|
AggFuncType = Union[
|
||
|
AggFuncTypeBase,
|
||
|
List[AggFuncTypeBase],
|
||
|
Dict[Label, Union[AggFuncTypeBase, List[AggFuncTypeBase]]],
|
||
|
]
|