-
Notifications
You must be signed in to change notification settings - Fork 48
Expand file tree
/
Copy path_Method.py
More file actions
102 lines (91 loc) · 2.35 KB
/
Copy path_Method.py
File metadata and controls
102 lines (91 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
from __future__ import annotations
from typing import TYPE_CHECKING
import pandas as pd
from rapids_singlecell.decoupler_gpu._helper._run import _run
if TYPE_CHECKING:
from collections.abc import Callable
from rapids_singlecell.decoupler_gpu._helper._data import DataType
class MethodMeta:
def __init__(
self,
name: str,
desc: str,
func: Callable,
*,
stype: str,
adj: bool,
weight: bool,
test: bool,
limits: tuple,
reference: str,
):
self.name = name
self.desc = desc
self.func = func
self.stype = stype
self.adj = adj
self.weight = weight
self.test = test
self.limits = limits
self.reference = reference
def meta(self) -> pd.DataFrame:
meta = pd.DataFrame(
[
{
"name": self.name,
"desc": self.desc,
"stype": self.stype,
"weight": self.weight,
"test": self.test,
"limits": self.limits,
"reference": self.reference,
}
]
)
return meta
class Method(MethodMeta):
def __init__(
self,
_method: MethodMeta,
):
super().__init__(
name=_method.name,
desc=_method.desc,
func=_method.func,
stype=_method.stype,
adj=_method.adj,
weight=_method.weight,
test=_method.test,
limits=_method.limits,
reference=_method.reference,
)
self._method = _method
self.__doc__ = self.func.__doc__
def __call__(
self,
data: DataType,
net: pd.DataFrame,
*,
tmin: int | float = 5,
raw: bool = False,
empty: bool = True,
bsize: int | float = 5000,
verbose: bool = False,
pre_load: bool = False,
**kwargs,
):
return _run(
name=self.name,
func=self.func,
adj=self.adj,
test=self.test,
data=data,
net=net,
tmin=tmin,
raw=raw,
empty=empty,
bsize=bsize,
verbose=verbose,
pre_load=pre_load,
**kwargs,
)