lamindb 0.48a3__py3-none-any.whl → 0.48.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lamindb/__init__.py +11 -16
- lamindb/_context.py +4 -1
- lamindb/_dataset.py +6 -3
- lamindb/_feature.py +9 -3
- lamindb/_feature_manager.py +176 -0
- lamindb/_feature_set.py +22 -18
- lamindb/_file.py +90 -44
- lamindb/_from_values.py +61 -18
- lamindb/_label.py +36 -0
- lamindb/_manager.py +2 -2
- lamindb/_orm.py +144 -27
- lamindb/_queryset.py +4 -2
- lamindb/_save.py +17 -7
- lamindb/dev/__init__.py +4 -0
- lamindb/dev/_view_parents.py +34 -63
- lamindb/dev/datasets/__init__.py +8 -0
- lamindb/dev/datasets/_core.py +80 -15
- {lamindb-0.48a3.dist-info → lamindb-0.48.1.dist-info}/METADATA +6 -6
- {lamindb-0.48a3.dist-info → lamindb-0.48.1.dist-info}/RECORD +22 -21
- {lamindb-0.48a3.dist-info → lamindb-0.48.1.dist-info}/LICENSE +0 -0
- {lamindb-0.48a3.dist-info → lamindb-0.48.1.dist-info}/WHEEL +0 -0
- {lamindb-0.48a3.dist-info → lamindb-0.48.1.dist-info}/entry_points.txt +0 -0
lamindb/dev/_view_parents.py
CHANGED
@@ -33,9 +33,10 @@ def view_lineage(file: File, with_children: bool = True):
|
|
33
33
|
u = graphviz.Digraph(
|
34
34
|
file.id,
|
35
35
|
node_attr={
|
36
|
-
"fillcolor": "
|
37
|
-
"color": "
|
36
|
+
"fillcolor": "honeydew",
|
37
|
+
"color": "seagreen",
|
38
38
|
"fontname": "Helvetica",
|
39
|
+
"fontsize": "10",
|
39
40
|
},
|
40
41
|
edge_attr={"arrowsize": "0.5"},
|
41
42
|
)
|
@@ -50,7 +51,7 @@ def view_lineage(file: File, with_children: bool = True):
|
|
50
51
|
else:
|
51
52
|
style = "rounded,filled"
|
52
53
|
shape = "box"
|
53
|
-
fillcolor = "
|
54
|
+
fillcolor = "honeydew"
|
54
55
|
u.node(
|
55
56
|
node_id,
|
56
57
|
label=node_label,
|
@@ -65,12 +66,12 @@ def view_lineage(file: File, with_children: bool = True):
|
|
65
66
|
add_node(row["target_record"], row["target"], row["target_label"], u)
|
66
67
|
|
67
68
|
u.edge(row["source"], row["target"], color="dimgrey")
|
68
|
-
# label the searched file
|
69
|
+
# label the searched file mediumseagreen
|
69
70
|
u.node(
|
70
71
|
file.id,
|
71
72
|
label=file_label,
|
72
73
|
style="rounded,filled",
|
73
|
-
fillcolor="
|
74
|
+
fillcolor="mediumseagreen",
|
74
75
|
shape="box",
|
75
76
|
)
|
76
77
|
|
@@ -93,7 +94,9 @@ def view_parents(
|
|
93
94
|
df_edges = pd.concat(
|
94
95
|
[
|
95
96
|
df_edges,
|
96
|
-
|
97
|
+
_df_edges_from_parents(
|
98
|
+
record=record, field=field, distance=distance, children=True
|
99
|
+
),
|
97
100
|
]
|
98
101
|
).drop_duplicates()
|
99
102
|
|
@@ -102,18 +105,19 @@ def view_parents(
|
|
102
105
|
u = graphviz.Digraph(
|
103
106
|
record.id,
|
104
107
|
node_attr={
|
105
|
-
"color": "
|
106
|
-
"fillcolor": "
|
108
|
+
"color": "seagreen",
|
109
|
+
"fillcolor": "honeydew",
|
107
110
|
"shape": "box",
|
108
111
|
"style": "rounded,filled",
|
109
112
|
"fontname": "Helvetica",
|
113
|
+
"fontsize": "10",
|
110
114
|
},
|
111
115
|
edge_attr={"arrowsize": "0.5"},
|
112
116
|
)
|
113
117
|
u.node(
|
114
118
|
record_label.replace(":", "_"),
|
115
119
|
label=record_label,
|
116
|
-
fillcolor="
|
120
|
+
fillcolor="mediumseagreen",
|
117
121
|
)
|
118
122
|
for _, row in df_edges.iterrows():
|
119
123
|
u.node(row["source"], label=row["source_label"])
|
@@ -122,17 +126,21 @@ def view_parents(
|
|
122
126
|
return u
|
123
127
|
|
124
128
|
|
125
|
-
def _get_parents(record: ORM, field: str, distance: int):
|
129
|
+
def _get_parents(record: ORM, field: str, distance: int, children: bool = False):
|
126
130
|
"""Recursively get parent records within a distance."""
|
131
|
+
if children:
|
132
|
+
key = "parents"
|
133
|
+
else:
|
134
|
+
key = "children"
|
127
135
|
model = record.__class__
|
128
|
-
condition = f"
|
136
|
+
condition = f"{key}__{field}"
|
129
137
|
results = model.select(**{condition: record.__getattribute__(field)}).all()
|
130
138
|
if distance < 2:
|
131
139
|
return results
|
132
140
|
|
133
141
|
d = 2
|
134
142
|
while d < distance:
|
135
|
-
condition = "
|
143
|
+
condition = f"{key}__{condition}"
|
136
144
|
records = model.select(**{condition: record.__getattribute__(field)}).all()
|
137
145
|
|
138
146
|
if len(records) == 0:
|
@@ -143,59 +151,21 @@ def _get_parents(record: ORM, field: str, distance: int):
|
|
143
151
|
return results
|
144
152
|
|
145
153
|
|
146
|
-
def
|
147
|
-
|
148
|
-
|
149
|
-
condition = f"parents__{field}"
|
150
|
-
results = model.select(**{condition: record.__getattribute__(field)}).all()
|
151
|
-
if distance < 2:
|
152
|
-
return results
|
153
|
-
|
154
|
-
d = 2
|
155
|
-
while d < distance:
|
156
|
-
condition = "parents__" + condition
|
157
|
-
records = model.select(**{condition: record.__getattribute__(field)}).all()
|
158
|
-
|
159
|
-
if len(records) == 0:
|
160
|
-
return results
|
161
|
-
|
162
|
-
results = results | records
|
163
|
-
d += 1
|
164
|
-
return results
|
165
|
-
|
166
|
-
|
167
|
-
def _df_edges_from_parents(record: ORM, field: str, distance: int):
|
154
|
+
def _df_edges_from_parents(
|
155
|
+
record: ORM, field: str, distance: int, children: bool = False
|
156
|
+
):
|
168
157
|
"""Construct a DataFrame of edges as the input of graphviz.Digraph."""
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
df_edges = df[[f"parents__{field}", field]]
|
173
|
-
df_edges = df_edges.explode(f"parents__{field}")
|
174
|
-
df_edges.dropna(axis=0, inplace=True)
|
175
|
-
df_edges.rename(
|
176
|
-
columns={f"parents__{field}": "source", field: "target"}, inplace=True
|
158
|
+
key = "children" if children else "parents"
|
159
|
+
parents = _get_parents(
|
160
|
+
record=record, field=field, distance=distance, children=children
|
177
161
|
)
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
df_edges["source_label"] = df_edges["source"]
|
183
|
-
df_edges["target_label"] = df_edges["target"]
|
184
|
-
df_edges["source"] = df_edges["source"].str.replace(":", "_")
|
185
|
-
df_edges["target"] = df_edges["target"].str.replace(":", "_")
|
186
|
-
return df_edges
|
187
|
-
|
188
|
-
|
189
|
-
def _df_edges_from_children(record: ORM, field: str, distance: int):
|
190
|
-
"""Construct a DataFrame of edges as the input of graphviz.Digraph."""
|
191
|
-
children = _get_children(record=record, field=field, distance=distance)
|
192
|
-
records = children | record.__class__.objects.filter(id=record.id)
|
193
|
-
df = records.distinct().df(include=[f"children__{field}"])
|
194
|
-
df_edges = df[[f"children__{field}", field]]
|
195
|
-
df_edges = df_edges.explode(f"children__{field}")
|
162
|
+
records = parents | record.__class__.objects.filter(id=record.id)
|
163
|
+
df = records.distinct().df(include=[f"{key}__{field}"])
|
164
|
+
df_edges = df[[f"{key}__{field}", field]]
|
165
|
+
df_edges = df_edges.explode(f"{key}__{field}")
|
196
166
|
df_edges.dropna(axis=0, inplace=True)
|
197
167
|
df_edges.rename(
|
198
|
-
columns={f"
|
168
|
+
columns={f"{key}__{field}": "source", field: "target"}, inplace=True
|
199
169
|
)
|
200
170
|
df_edges = df_edges.drop_duplicates()
|
201
171
|
|
@@ -244,12 +214,13 @@ def _label_file_run(record: Union[File, Run]):
|
|
244
214
|
name = record.key
|
245
215
|
else:
|
246
216
|
name = record.description.replace("&", "&")
|
217
|
+
|
247
218
|
return (
|
248
|
-
rf'<{name}
|
219
|
+
rf'<{name}<BR/><FONT COLOR="GREY" POINT-SIZE="10"'
|
249
220
|
rf' FACE="Monospace">id={record.id}<BR/>suffix={record.suffix}</FONT>>'
|
250
221
|
)
|
251
222
|
elif isinstance(record, Run):
|
252
|
-
name = f'{record.transform.name.replace("&", "&")}
|
223
|
+
name = f'{record.transform.name.replace("&", "&")}'
|
253
224
|
return (
|
254
225
|
rf'<{name}<BR/><FONT COLOR="GREY" POINT-SIZE="10"'
|
255
226
|
rf' FACE="Monospace">id={record.id}<BR/>type={record.transform.type},'
|
lamindb/dev/datasets/__init__.py
CHANGED
@@ -4,7 +4,9 @@
|
|
4
4
|
:toctree: .
|
5
5
|
|
6
6
|
file_fcs
|
7
|
+
file_fcs_alpert19
|
7
8
|
file_jpg_paradisi05
|
9
|
+
file_tiff_suo22
|
8
10
|
file_fastq
|
9
11
|
file_bam
|
10
12
|
file_mini_csv
|
@@ -19,6 +21,8 @@
|
|
19
21
|
anndata_pbmc68k_reduced
|
20
22
|
anndata_pbmc3k_processed
|
21
23
|
anndata_with_obs
|
24
|
+
anndata_suo22_Visium10X
|
25
|
+
mudata_papalexi21_subset
|
22
26
|
schmidt22_crispra_gws_IFNG
|
23
27
|
schmidt22_perturbseq
|
24
28
|
fake_bio_notebook_titles
|
@@ -29,6 +33,7 @@ from ._core import (
|
|
29
33
|
anndata_mouse_sc_lymph_node,
|
30
34
|
anndata_pbmc3k_processed,
|
31
35
|
anndata_pbmc68k_reduced,
|
36
|
+
anndata_suo22_Visium10X,
|
32
37
|
anndata_with_obs,
|
33
38
|
df_iris,
|
34
39
|
df_iris_in_meter,
|
@@ -38,9 +43,12 @@ from ._core import (
|
|
38
43
|
file_bam,
|
39
44
|
file_fastq,
|
40
45
|
file_fcs,
|
46
|
+
file_fcs_alpert19,
|
41
47
|
file_jpg_paradisi05,
|
42
48
|
file_mini_csv,
|
49
|
+
file_tiff_suo22,
|
43
50
|
generate_cell_ranger_files,
|
51
|
+
mudata_papalexi21_subset,
|
44
52
|
schmidt22_crispra_gws_IFNG,
|
45
53
|
schmidt22_perturbseq,
|
46
54
|
)
|
lamindb/dev/datasets/_core.py
CHANGED
@@ -11,13 +11,22 @@ from .._settings import settings
|
|
11
11
|
|
12
12
|
|
13
13
|
def file_fcs() -> Path:
|
14
|
-
"""
|
14
|
+
"""Example FCS file."""
|
15
15
|
filepath, _ = urlretrieve(
|
16
16
|
"https://lamindb-test.s3.amazonaws.com/example.fcs", "example.fcs"
|
17
17
|
)
|
18
18
|
return Path(filepath)
|
19
19
|
|
20
20
|
|
21
|
+
def file_fcs_alpert19() -> Path:
|
22
|
+
"""FCS file from Alpert19."""
|
23
|
+
filepath, _ = urlretrieve(
|
24
|
+
"https://lamindb-test.s3.amazonaws.com/Alpert19-070314-Mike-Study+15-2013-plate+1-15-004-1-13_cells_found.fcs", # noqa
|
25
|
+
"Alpert19.fcs",
|
26
|
+
)
|
27
|
+
return Path(filepath)
|
28
|
+
|
29
|
+
|
21
30
|
def file_jpg_paradisi05() -> Path:
|
22
31
|
"""Return jpg file example.
|
23
32
|
|
@@ -30,26 +39,45 @@ def file_jpg_paradisi05() -> Path:
|
|
30
39
|
return Path(filepath)
|
31
40
|
|
32
41
|
|
33
|
-
def file_fastq() -> Path:
|
42
|
+
def file_fastq(in_storage_root=False) -> Path:
|
34
43
|
"""Mini mock fastq file."""
|
35
|
-
|
44
|
+
basedir = Path(".") if not in_storage_root else settings.storage
|
45
|
+
filepath = basedir / "input.fastq.gz"
|
46
|
+
with open(filepath, "w") as f:
|
36
47
|
f.write("Mock fastq file.")
|
37
|
-
return
|
48
|
+
return filepath
|
38
49
|
|
39
50
|
|
40
|
-
def file_bam() -> Path:
|
51
|
+
def file_bam(in_storage_root=False) -> Path:
|
41
52
|
"""Mini mock bam file."""
|
42
|
-
|
53
|
+
basedir = Path(".") if not in_storage_root else settings.storage
|
54
|
+
filepath = basedir / "output.bam"
|
55
|
+
with open(filepath, "w") as f:
|
43
56
|
f.write("Mock bam file.")
|
44
|
-
return
|
57
|
+
return filepath
|
45
58
|
|
46
59
|
|
47
|
-
def file_mini_csv() -> Path:
|
60
|
+
def file_mini_csv(in_storage_root=False) -> Path:
|
48
61
|
"""Mini csv file."""
|
49
|
-
|
62
|
+
basedir = Path(".") if not in_storage_root else settings.storage
|
63
|
+
filepath = basedir / "mini.csv"
|
50
64
|
df = pd.DataFrame([1, 2, 3], columns=["test"])
|
51
|
-
df.to_csv(
|
52
|
-
return
|
65
|
+
df.to_csv(filepath, index=False)
|
66
|
+
return filepath
|
67
|
+
|
68
|
+
|
69
|
+
def file_tiff_suo22():
|
70
|
+
"""Image file from Suo22.
|
71
|
+
|
72
|
+
Pair with anndata_suo22_Visium10X
|
73
|
+
"""
|
74
|
+
filepath, _ = urlretrieve(
|
75
|
+
"https://lamindb-test.s3.amazonaws.com/F121_LP1_4LIV.tiff",
|
76
|
+
"F121_LP1_4LIV.tiff",
|
77
|
+
)
|
78
|
+
Path("suo22/").mkdir(exist_ok=True)
|
79
|
+
filepath = Path(filepath).rename("suo22/F121_LP1_4LIV.tiff")
|
80
|
+
return Path(filepath)
|
53
81
|
|
54
82
|
|
55
83
|
def dir_scrnaseq_cellranger(in_storage_root=False) -> Path:
|
@@ -59,12 +87,12 @@ def dir_scrnaseq_cellranger(in_storage_root=False) -> Path:
|
|
59
87
|
)
|
60
88
|
from zipfile import ZipFile
|
61
89
|
|
62
|
-
|
90
|
+
basedir = Path(".") if not in_storage_root else settings.storage
|
63
91
|
with ZipFile(filepath, "r") as zipObj:
|
64
92
|
# Extract all the contents of zip file in current directory
|
65
|
-
zipObj.extractall(path=
|
93
|
+
zipObj.extractall(path=basedir)
|
66
94
|
|
67
|
-
return
|
95
|
+
return basedir / "cellranger_run_001"
|
68
96
|
|
69
97
|
|
70
98
|
def anndata_mouse_sc_lymph_node() -> ad.AnnData:
|
@@ -133,7 +161,10 @@ def anndata_human_immune_cells() -> ad.AnnData:
|
|
133
161
|
adata.write('human_immune.h5ad')
|
134
162
|
"""
|
135
163
|
filepath, _ = urlretrieve("https://lamindb-test.s3.amazonaws.com/human_immune.h5ad")
|
136
|
-
|
164
|
+
adata = ad.read(filepath)
|
165
|
+
del adata.raw
|
166
|
+
adata.var.drop(columns=["gene_symbols", "feature_name"], inplace=True)
|
167
|
+
return adata
|
137
168
|
|
138
169
|
|
139
170
|
def anndata_with_obs() -> ad.AnnData:
|
@@ -163,6 +194,40 @@ def anndata_with_obs() -> ad.AnnData:
|
|
163
194
|
return adata
|
164
195
|
|
165
196
|
|
197
|
+
def anndata_suo22_Visium10X():
|
198
|
+
"""AnnData from Suo22 generated by 10x Visium."""
|
199
|
+
import anndata as ad
|
200
|
+
|
201
|
+
filepath, _ = urlretrieve(
|
202
|
+
"https://lamindb-test.s3.amazonaws.com/suo22_Visium10X_data_LI_subset.h5ad",
|
203
|
+
"Visium10X_data_LI_subset.h5ad",
|
204
|
+
)
|
205
|
+
Path("suo22/").mkdir(exist_ok=True)
|
206
|
+
filepath = Path(filepath).rename("suo22/Visium10X_data_LI_subset.h5ad")
|
207
|
+
return ad.read(filepath)
|
208
|
+
|
209
|
+
|
210
|
+
def mudata_papalexi21_subset():
|
211
|
+
"""A subsetted mudata from papalexi21.
|
212
|
+
|
213
|
+
To reproduce the subsetting:
|
214
|
+
>>> !wget https://figshare.com/ndownloader/files/36509460
|
215
|
+
>>> import mudata as md
|
216
|
+
>>> import scanpy as sc
|
217
|
+
>>> mdata = md.read_h5mu("36509460")
|
218
|
+
>>> mdata = sc.pp.subsample(mdata, n_obs=200, copy=True)[0]
|
219
|
+
>>> mdata[:, -300:].copy().write("papalexi21_subset_200x300_lamindb_demo_2023-07-25.h5mu") # noqa
|
220
|
+
"""
|
221
|
+
import mudata as md
|
222
|
+
|
223
|
+
filepath, _ = urlretrieve(
|
224
|
+
"https://lamindb-test.s3.amazonaws.com/papalexi21_subset_200x300_lamindb_demo_2023-07-25.h5mu", # noqa
|
225
|
+
"papalexi21_subset.h5mu",
|
226
|
+
)
|
227
|
+
|
228
|
+
return md.read_h5mu(filepath)
|
229
|
+
|
230
|
+
|
166
231
|
def df_iris() -> pd.DataFrame:
|
167
232
|
"""The iris dataset as in sklearn.
|
168
233
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lamindb
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.48.1
|
4
4
|
Summary: LaminDB: Manage R&D data & analyses.
|
5
5
|
Author-email: Lamin Labs <laminlabs@gmail.com>
|
6
6
|
Requires-Python: >=3.8
|
@@ -8,9 +8,9 @@ Description-Content-Type: text/markdown
|
|
8
8
|
Classifier: Programming Language :: Python :: 3.8
|
9
9
|
Classifier: Programming Language :: Python :: 3.9
|
10
10
|
Classifier: Programming Language :: Python :: 3.10
|
11
|
-
Requires-Dist: lnschema_core==0.
|
12
|
-
Requires-Dist: lamindb_setup==0.49.
|
13
|
-
Requires-Dist: lamin_utils==0.9.
|
11
|
+
Requires-Dist: lnschema_core==0.42.2
|
12
|
+
Requires-Dist: lamindb_setup==0.49.1
|
13
|
+
Requires-Dist: lamin_utils==0.9.3
|
14
14
|
Requires-Dist: erdiagram>=0.1.2
|
15
15
|
Requires-Dist: rapidfuzz
|
16
16
|
Requires-Dist: pydantic[dotenv]
|
@@ -25,7 +25,7 @@ Requires-Dist: botocore==1.29.76 ; extra == "aws"
|
|
25
25
|
Requires-Dist: urllib3<2 ; extra == "aws"
|
26
26
|
Requires-Dist: boto3==1.26.76 ; extra == "aws"
|
27
27
|
Requires-Dist: fsspec[s3]==2023.5.0 ; extra == "aws"
|
28
|
-
Requires-Dist: lnschema_bionty==0.
|
28
|
+
Requires-Dist: lnschema_bionty==0.28.2 ; extra == "bionty"
|
29
29
|
Requires-Dist: pre-commit ; extra == "dev"
|
30
30
|
Requires-Dist: nox ; extra == "dev"
|
31
31
|
Requires-Dist: laminci>=0.3 ; extra == "dev"
|
@@ -257,7 +257,7 @@ pip install lamindb # basic data management
|
|
257
257
|
You can configure the installation using `extras`, e.g.,
|
258
258
|
|
259
259
|
```shell
|
260
|
-
pip install lamindb[jupyter,bionty,fcs,aws]
|
260
|
+
pip install 'lamindb[jupyter,bionty,fcs,aws]'
|
261
261
|
```
|
262
262
|
|
263
263
|
Supported `extras` are:
|
@@ -1,28 +1,29 @@
|
|
1
|
-
lamindb/__init__.py,sha256=
|
2
|
-
lamindb/_context.py,sha256=
|
3
|
-
lamindb/_dataset.py,sha256=
|
1
|
+
lamindb/__init__.py,sha256=2z4YI7b6UvGZHwooeAkDKiCVDpQ5TkxRK62EDLT9iMA,2647
|
2
|
+
lamindb/_context.py,sha256=lRGju9hB_rqaSAtIFY28kIciPSxy9yG86frdIBI1bBc,17875
|
3
|
+
lamindb/_dataset.py,sha256=nR1cGJZmNEoiATECFEBMKskk5ynP46ODejvSoOLH_hA,5546
|
4
4
|
lamindb/_delete.py,sha256=Jzb0sTlpdNDMa90ORMFiPbX0d-GhZsjmobQFc1miuJ8,1877
|
5
|
-
lamindb/_feature.py,sha256=
|
6
|
-
lamindb/
|
7
|
-
lamindb/
|
8
|
-
lamindb/
|
9
|
-
lamindb/
|
5
|
+
lamindb/_feature.py,sha256=CNSZpnMX25JX5C11ie6GPAvwPiKzd7EYhLZ9Uk1HEWk,4043
|
6
|
+
lamindb/_feature_manager.py,sha256=EaIUaFa67VyIJZ1u6ncPfiCzJkGNKmt2RZ9P3b_tzUA,6713
|
7
|
+
lamindb/_feature_set.py,sha256=zkhCuH33PgTc3-zsWT7XlJcxIf7fBv7OI4n8R8cS_8I,6747
|
8
|
+
lamindb/_file.py,sha256=sKCkAg0IMm0M4f0FwZhBKmgRUZPVN97vvwakicAp6oM,32815
|
9
|
+
lamindb/_from_values.py,sha256=bbahbzm18yLam3LC_rguX7wFaBX8KYG3So6BrPcvJzI,12106
|
10
|
+
lamindb/_label.py,sha256=taBj95rOrj56xQhjKN04E4FA1qWtsKZbCzC5OGLcIPA,2771
|
10
11
|
lamindb/_logger.py,sha256=Q9ugUnZE4EwH0N6qFMG2HlILmu-SArnEEy-nafTPjRg,47
|
11
|
-
lamindb/_manager.py,sha256=
|
12
|
-
lamindb/_orm.py,sha256=
|
13
|
-
lamindb/_queryset.py,sha256=
|
14
|
-
lamindb/_save.py,sha256=
|
12
|
+
lamindb/_manager.py,sha256=x6-rRsFlPHL1VAN_mipfNKInY_E6E-M28Q8xn4fphUo,1895
|
13
|
+
lamindb/_orm.py,sha256=AHia6AzRKLldg6n1emm02e9BOFGTbTv1qy-tdMJjWdY,23727
|
14
|
+
lamindb/_queryset.py,sha256=hhToC5NcKS2PF59jxpdbsA16VBg1oVqVeMzWEFQXQRE,9713
|
15
|
+
lamindb/_save.py,sha256=ZgV5qXBKLf84U0ssCS8z19bkIsh9SgjcJe38-laKlY8,9004
|
15
16
|
lamindb/_select.py,sha256=w-a_vOLBm-HFIfDhtLJd9ieeU-V8vn16EQ2QlgU0jyA,325
|
16
17
|
lamindb/_transform.py,sha256=K-Y37UqQPu06lsA3Jfnkyt5dssRpuMnpCDDHDbT40Z4,1251
|
17
18
|
lamindb/_view.py,sha256=V5zatnXT40UmcRQx1ZBxyRJUnIqTv_iEelv4Tli3WyI,2074
|
18
19
|
lamindb/types.py,sha256=svg5S_aynuGfbEOsbmqkR_gF9d9YMzfOkcvGN37Rzvg,232
|
19
|
-
lamindb/dev/__init__.py,sha256=
|
20
|
+
lamindb/dev/__init__.py,sha256=JYmmgCbPdYNGL6J4aXxWd988su__uFAScRppvLsOzLo,431
|
20
21
|
lamindb/dev/_settings.py,sha256=2mV4K29PZaf1FVM5XbMZD85_1wSvHc3iF20VSBRsFKY,2842
|
21
|
-
lamindb/dev/_view_parents.py,sha256=
|
22
|
+
lamindb/dev/_view_parents.py,sha256=IgW2fSwgViSJPIZhloW76pWvvljJ07Ev7Y1xl3ixF1E,7844
|
22
23
|
lamindb/dev/hashing.py,sha256=oYHDSEjINsmDYgCLasnhh_VHbB1dLag27ufVUwDgLyQ,1385
|
23
24
|
lamindb/dev/utils.py,sha256=LGdiW4k3GClLz65vKAVRkL6Tw-Gkx9DWAdez1jyA5bE,428
|
24
|
-
lamindb/dev/datasets/__init__.py,sha256=
|
25
|
-
lamindb/dev/datasets/_core.py,sha256=
|
25
|
+
lamindb/dev/datasets/__init__.py,sha256=ZVnWS5LhUjzrIe_v81hlqoCzgi_gDiV-W9T_rnqTuXo,1215
|
26
|
+
lamindb/dev/datasets/_core.py,sha256=NAjisahI6C7GaZfIvmaIl_MTgvin-1NJAjxSG-EZbUA,11767
|
26
27
|
lamindb/dev/datasets/_fake.py,sha256=S8mNho-oSh1M9x9oOSsUBLLHmBAegsOLlFk6LnF81EA,942
|
27
28
|
lamindb/dev/storage/__init__.py,sha256=zFr8mpH1c3fzaQMYMwoLU9-zIMQ7laiPn5YDHDdFL5Y,424
|
28
29
|
lamindb/dev/storage/_anndata_sizes.py,sha256=0XVzA6AQeVGPaGPrhGusKyxFgFjeo3qSN29hxb8D5E8,993
|
@@ -34,8 +35,8 @@ lamindb/schema/__init__.py,sha256=PznznlFvbeNSZKpn1RS6Gv0JMXFkLmU2_ej_1hVLSTs,79
|
|
34
35
|
lamindb/schema/_core.py,sha256=nWR3X_rNd1AbWw3naMiBi8ppAEpqIDyEYqM54feRB_s,766
|
35
36
|
lamindb/setup/__init__.py,sha256=8-0F2C4Glx23-b8-D_1CBGgRBM5PppVhazhoXZYOLsg,275
|
36
37
|
lamindb/setup/dev/__init__.py,sha256=iD0f2lx_Hgp-udkiPGal7si5waJSOgvnG6Id-g1mMOY,213
|
37
|
-
lamindb-0.
|
38
|
-
lamindb-0.
|
39
|
-
lamindb-0.
|
40
|
-
lamindb-0.
|
41
|
-
lamindb-0.
|
38
|
+
lamindb-0.48.1.dist-info/entry_points.txt,sha256=MioM8vSpKwXxY3geNBwjo1wnwy1l15WjJYlI3lpKuZI,53
|
39
|
+
lamindb-0.48.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
40
|
+
lamindb-0.48.1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
41
|
+
lamindb-0.48.1.dist-info/METADATA,sha256=hV5390-kWv89OW9gmlWPCNQ3-t2ynnezhp18bhh3klM,10843
|
42
|
+
lamindb-0.48.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|