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.
@@ -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": "antiquewhite",
37
- "color": "orange",
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 = "antiquewhite"
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 orange
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="orange",
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
- _df_edges_from_children(record=record, field=field, distance=distance),
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": "orange",
106
- "fillcolor": "antiquewhite",
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="orange",
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"children__{field}"
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 = "children__" + 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 _get_children(record: ORM, field: str, distance: int):
147
- """Recursively get parent records within a distance."""
148
- model = record.__class__
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
- parents = _get_parents(record=record, field=field, distance=distance)
170
- records = parents | record.__class__.objects.filter(id=record.id)
171
- df = records.distinct().df(include=[f"parents__{field}"])
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
- df_edges = df_edges.drop_duplicates()
179
-
180
- # colons messes with the node formatting:
181
- # https://graphviz.readthedocs.io/en/stable/node_ports.html
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"children__{field}": "source", field: "target"}, inplace=True
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("&", "&amp;")
217
+
247
218
  return (
248
- rf'<{name} <BR/><FONT COLOR="GREY" POINT-SIZE="10"'
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("&", "&amp;")} '
223
+ name = f'{record.transform.name.replace("&", "&amp;")}'
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},'
@@ -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
  )
@@ -11,13 +11,22 @@ from .._settings import settings
11
11
 
12
12
 
13
13
  def file_fcs() -> Path:
14
- """Return fcs file example."""
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
- with open("./input.fastq.gz", "w") as f:
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 Path("./input.fastq.gz")
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
- with open("./output.bam", "w") as f:
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 Path("./output.bam")
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
- filename = Path("./mini.csv")
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(filename, index=False)
52
- return filename
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
- path = Path(".") if not in_storage_root else settings.storage
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=path)
93
+ zipObj.extractall(path=basedir)
66
94
 
67
- return path / "cellranger_run_001"
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
- return ad.read(filepath)
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.48a3
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.40.1
12
- Requires-Dist: lamindb_setup==0.49.0
13
- Requires-Dist: lamin_utils==0.9.1
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.27.4 ; extra == "bionty"
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=Jw_GabBpHKGMeq0sKzxB0aDwCB2-3OaLVjYbtxMFJ5g,2709
2
- lamindb/_context.py,sha256=J8YzSVFsnAvPBrQl0xlSei3d1-l01rp736RStIingqQ,17847
3
- lamindb/_dataset.py,sha256=J4kmPfS9cSPr9qJ5Rn7L0Zv2FnVA6FrUBvwEgGBMUDQ,5438
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=d043ps_Lw73_9-7sAG70mocUnN2TkAIMBnJrCax15zg,3755
6
- lamindb/_feature_set.py,sha256=36CuOUCpZiAh4mrwlNoCIXydy1edlBOv9_Ct4rev_F0,6582
7
- lamindb/_file.py,sha256=-0RhjTTE5TBzvIq50AFp8j2_cHo3EabMTcnwyAuEPRM,31754
8
- lamindb/_from_values.py,sha256=cmZdLV8ttq5cmYXT-R8fDDcTPLqlmKPf5eF3qH9xR1Y,10262
9
- lamindb/_label.py,sha256=ky9t_-dTA1u2iLeZn6Hj4IUfzyw9JY-2fDb64fCyYL0,1322
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=xOj2anF_z9hg2wrMncEpMqYHml5SehRbGxlNkeiIqzM,1877
12
- lamindb/_orm.py,sha256=tVskEYgvSWn2_y47btCzdxg0YQ_OlTrBfYjlGmbbCpk,19242
13
- lamindb/_queryset.py,sha256=WCM67hB3JwmN4GVVGs8AiIxxQjQ_rFH9kA7uEqpmHr0,9666
14
- lamindb/_save.py,sha256=iBrONuU-6cMtapouTACqcFDiZlNiipe7o9yLnMNmPoM,8539
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=Dw-JxVxRW6UzZTf5ENiaGmeB5VPXqmu0x44R5v8BOLE,311
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=nSO-FE-xMZRmV7cpU1poRKQWgXkGDqgBKWf6Yn7oVT8,9139
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=EiDuUQzFGEyXu_ynf8i5VZv6himLBt1pbmYf8gWqJcg,1017
25
- lamindb/dev/datasets/_core.py,sha256=VxM0Xo_E2-UTjCV6l30HDHlw3RKYGZaCapvHlOgbLS0,9585
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.48a3.dist-info/entry_points.txt,sha256=MioM8vSpKwXxY3geNBwjo1wnwy1l15WjJYlI3lpKuZI,53
38
- lamindb-0.48a3.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
39
- lamindb-0.48a3.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
40
- lamindb-0.48a3.dist-info/METADATA,sha256=QAEsZrkONc75rFcy3SI5NjJ1152gHG_tkUV-2RTWAmg,10841
41
- lamindb-0.48a3.dist-info/RECORD,,
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,,