lamin_cli 0.12.3__tar.gz → 0.13.0__tar.gz

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.
Files changed (27) hide show
  1. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/PKG-INFO +1 -1
  2. lamin_cli-0.13.0/lamin_cli/__init__.py +3 -0
  3. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/lamin_cli/_get.py +3 -1
  4. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/lamin_cli/_save.py +38 -1
  5. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/tests/conftest.py +5 -4
  6. lamin_cli-0.13.0/tests/notebooks/with-title-and-initialized-consecutive.ipynb +193 -0
  7. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -1
  8. lamin_cli-0.13.0/tests/scripts/initialized-no-git-sync.py +4 -0
  9. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/tests/scripts/initialized.py +2 -2
  10. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/tests/test_get.py +2 -2
  11. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/tests/test_save_notebooks.py +14 -10
  12. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/tests/test_save_scripts.py +9 -3
  13. lamin_cli-0.12.3/lamin_cli/__init__.py +0 -3
  14. lamin_cli-0.12.3/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -218
  15. lamin_cli-0.12.3/tests/scripts/initialized-no-git-sync.py +0 -9
  16. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/.gitignore +0 -0
  17. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/.pre-commit-config.yaml +0 -0
  18. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/README.md +0 -0
  19. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/lamin_cli/__main__.py +0 -0
  20. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/lamin_cli/_cache.py +0 -0
  21. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/lamin_cli/_migration.py +0 -0
  22. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/pyproject.toml +0 -0
  23. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/tests/notebooks/not-initialized.ipynb +0 -0
  24. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/tests/test_cli.py +0 -0
  25. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/tests/test_migrate.py +0 -0
  26. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/tests/test_multi_process.py +0 -0
  27. {lamin_cli-0.12.3 → lamin_cli-0.13.0}/tests/test_save_files.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamin_cli
3
- Version: 0.12.3
3
+ Version: 0.13.0
4
4
  Summary: Lamin CLI.
5
5
  Author-email: Lamin Labs <open-source@lamin.ai>
6
6
  Description-Content-Type: text/markdown
@@ -0,0 +1,3 @@
1
+ """Lamin CLI."""
2
+
3
+ __version__ = "0.13.0"
@@ -30,7 +30,9 @@ def get(url: str):
30
30
  if entity == "transform":
31
31
  transform = ln.Transform.filter(uid=uid).one()
32
32
  filepath_cache = transform.source_code.cache()
33
- target_filename = f"{transform.key}.ipynb"
33
+ target_filename = transform.key
34
+ if not target_filename.endswith(transform.source_code.suffix):
35
+ target_filename += transform.source_code.suffix
34
36
  filepath_cache.rename(target_filename)
35
37
  logger.success(f"cached source code of transform {uid} as {target_filename}")
36
38
  else:
@@ -3,6 +3,44 @@ from pathlib import Path
3
3
  from typing import Optional, Union
4
4
  import lamindb_setup as ln_setup
5
5
  from lamin_utils import logger
6
+ import re
7
+
8
+
9
+ def get_stem_uid_and_version_from_file(file_path: Path) -> tuple[str, str]:
10
+ # line-by-line matching might be faster, but let's go with this for now
11
+ with open(file_path) as file:
12
+ content = file.read()
13
+
14
+ if file_path.suffix == ".py":
15
+ stem_uid_pattern = re.compile(
16
+ r'\.transform\.stem_uid\s*=\s*["\']([^"\']+)["\']'
17
+ )
18
+ version_pattern = re.compile(r'\.transform\.version\s*=\s*["\']([^"\']+)["\']')
19
+ elif file_path.suffix == ".ipynb":
20
+ stem_uid_pattern = re.compile(
21
+ r'\.transform\.stem_uid\s*=\s*\\["\']([^"\']+)\\["\']'
22
+ )
23
+ version_pattern = re.compile(
24
+ r'\.transform\.version\s*=\s*\\["\']([^"\']+)\\["\']'
25
+ )
26
+ else:
27
+ raise ValueError("Only .py and .ipynb files are supported.")
28
+
29
+ # Search for matches in the entire file content
30
+ stem_uid_match = stem_uid_pattern.search(content)
31
+ version_match = version_pattern.search(content)
32
+
33
+ # Extract values if matches are found
34
+ stem_uid = stem_uid_match.group(1) if stem_uid_match else None
35
+ version = version_match.group(1) if version_match else None
36
+
37
+ if stem_uid is None or version is None:
38
+ raise SystemExit(
39
+ "ln.settings.transform.stem_uid and ln.settings.transform.version aren't"
40
+ f" set in {file_path}\nCall ln.track() and copy/paste the output into the"
41
+ " notebook"
42
+ )
43
+ return stem_uid, version
6
44
 
7
45
 
8
46
  def save_from_filepath_cli(
@@ -17,7 +55,6 @@ def save_from_filepath_cli(
17
55
  ln_setup.settings.auto_connect = True
18
56
 
19
57
  import lamindb as ln
20
- from lamindb.core._run_context import get_stem_uid_and_version_from_file
21
58
  from lamindb._finish import save_run_context_core
22
59
 
23
60
  ln_setup.settings.auto_connect = auto_connect_state
@@ -7,12 +7,13 @@ from lamin_utils import logger
7
7
 
8
8
  def pytest_sessionstart(session: pytest.Session):
9
9
  ln.setup.init(
10
- storage="./default_storage",
11
- name="lamindb-unit-tests",
10
+ storage="./default_storage_ci",
11
+ name="laminci-unit-tests",
12
12
  )
13
+ ln.setup.settings.auto_connect = True
13
14
 
14
15
 
15
16
  def pytest_sessionfinish(session: pytest.Session):
16
17
  logger.set_verbosity(1)
17
- ln.setup.delete("lamindb-unit-tests", force=True)
18
- shutil.rmtree("./default_storage")
18
+ shutil.rmtree("./default_storage_ci")
19
+ ln.setup.delete("laminci-unit-tests", force=True)
@@ -0,0 +1,193 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# My test notebook (consecutive)"
8
+ ]
9
+ },
10
+ {
11
+ "cell_type": "code",
12
+ "execution_count": 1,
13
+ "metadata": {
14
+ "execution": {
15
+ "iopub.execute_input": "2024-04-30T02:45:28.590279Z",
16
+ "iopub.status.busy": "2024-04-30T02:45:28.590128Z",
17
+ "iopub.status.idle": "2024-04-30T02:45:29.921019Z",
18
+ "shell.execute_reply": "2024-04-30T02:45:29.920739Z"
19
+ }
20
+ },
21
+ "outputs": [
22
+ {
23
+ "name": "stdout",
24
+ "output_type": "stream",
25
+ "text": [
26
+ "💡 connected lamindb: testuser1/laminci-unit-tests\n"
27
+ ]
28
+ }
29
+ ],
30
+ "source": [
31
+ "import lamindb as ln"
32
+ ]
33
+ },
34
+ {
35
+ "cell_type": "code",
36
+ "execution_count": 2,
37
+ "metadata": {
38
+ "execution": {
39
+ "iopub.execute_input": "2024-04-30T02:45:29.923093Z",
40
+ "iopub.status.busy": "2024-04-30T02:45:29.922808Z",
41
+ "iopub.status.idle": "2024-04-30T02:45:32.189053Z",
42
+ "shell.execute_reply": "2024-04-30T02:45:32.188627Z"
43
+ }
44
+ },
45
+ "outputs": [
46
+ {
47
+ "name": "stdout",
48
+ "output_type": "stream",
49
+ "text": [
50
+ "💡 notebook imports: lamindb==0.71.0\n"
51
+ ]
52
+ },
53
+ {
54
+ "name": "stdout",
55
+ "output_type": "stream",
56
+ "text": [
57
+ "💡 saved: Transform(uid='hlsFXswrJjtt5zKv', name='My test notebook (consecutive)', key='with-title-and-initialized-consecutive', version='1', type='notebook', updated_at=2024-04-30 02:45:31 UTC, created_by_id=1)\n"
58
+ ]
59
+ },
60
+ {
61
+ "name": "stdout",
62
+ "output_type": "stream",
63
+ "text": [
64
+ "💡 saved: Run(uid='oX11QZyYk6dhucek9jNg', transform_id=1, created_by_id=1)\n"
65
+ ]
66
+ }
67
+ ],
68
+ "source": [
69
+ "ln.settings.transform.stem_uid = \"hlsFXswrJjtt\"\n",
70
+ "ln.settings.transform.version = \"1\"\n",
71
+ "ln.track()"
72
+ ]
73
+ },
74
+ {
75
+ "cell_type": "code",
76
+ "execution_count": 3,
77
+ "metadata": {
78
+ "execution": {
79
+ "iopub.execute_input": "2024-04-30T02:45:32.191144Z",
80
+ "iopub.status.busy": "2024-04-30T02:45:32.191016Z",
81
+ "iopub.status.idle": "2024-04-30T02:45:32.193262Z",
82
+ "shell.execute_reply": "2024-04-30T02:45:32.192907Z"
83
+ }
84
+ },
85
+ "outputs": [
86
+ {
87
+ "name": "stdout",
88
+ "output_type": "stream",
89
+ "text": [
90
+ "my consecutive cell\n"
91
+ ]
92
+ }
93
+ ],
94
+ "source": [
95
+ "print(\"my consecutive cell\")"
96
+ ]
97
+ }
98
+ ],
99
+ "metadata": {
100
+ "kernelspec": {
101
+ "display_name": "py39",
102
+ "language": "python",
103
+ "name": "python3"
104
+ },
105
+ "language_info": {
106
+ "codemirror_mode": {
107
+ "name": "ipython",
108
+ "version": 3
109
+ },
110
+ "file_extension": ".py",
111
+ "mimetype": "text/x-python",
112
+ "name": "python",
113
+ "nbconvert_exporter": "python",
114
+ "pygments_lexer": "ipython3",
115
+ "version": "3.10.13"
116
+ },
117
+ "widgets": {
118
+ "application/vnd.jupyter.widget-state+json": {
119
+ "state": {
120
+ "31729cb39d074e8fb483120775f53731": {
121
+ "model_module": "ipylab",
122
+ "model_module_version": "^1.0.0",
123
+ "model_name": "SessionManagerModel",
124
+ "state": {
125
+ "_model_module": "ipylab",
126
+ "_model_module_version": "^1.0.0",
127
+ "_model_name": "SessionManagerModel",
128
+ "_view_count": null,
129
+ "_view_module": null,
130
+ "_view_module_version": "",
131
+ "_view_name": null,
132
+ "current_session": {},
133
+ "sessions": []
134
+ }
135
+ },
136
+ "6939d8a17fbb46b8877f987b20b56757": {
137
+ "model_module": "ipylab",
138
+ "model_module_version": "^1.0.0",
139
+ "model_name": "CommandRegistryModel",
140
+ "state": {
141
+ "_command_list": [],
142
+ "_commands": [],
143
+ "_model_module": "ipylab",
144
+ "_model_module_version": "^1.0.0",
145
+ "_model_name": "CommandRegistryModel",
146
+ "_view_count": null,
147
+ "_view_module": null,
148
+ "_view_module_version": "",
149
+ "_view_name": null
150
+ }
151
+ },
152
+ "82c3ccb5d1114b968e80e1605d528742": {
153
+ "model_module": "ipylab",
154
+ "model_module_version": "^1.0.0",
155
+ "model_name": "JupyterFrontEndModel",
156
+ "state": {
157
+ "_model_module": "ipylab",
158
+ "_model_module_version": "^1.0.0",
159
+ "_model_name": "JupyterFrontEndModel",
160
+ "_view_count": null,
161
+ "_view_module": null,
162
+ "_view_module_version": "",
163
+ "_view_name": null,
164
+ "commands": "IPY_MODEL_6939d8a17fbb46b8877f987b20b56757",
165
+ "sessions": "IPY_MODEL_31729cb39d074e8fb483120775f53731",
166
+ "shell": "IPY_MODEL_9f239e52e3794df9b2c06052072cad24",
167
+ "version": ""
168
+ }
169
+ },
170
+ "9f239e52e3794df9b2c06052072cad24": {
171
+ "model_module": "ipylab",
172
+ "model_module_version": "^1.0.0",
173
+ "model_name": "ShellModel",
174
+ "state": {
175
+ "_model_module": "ipylab",
176
+ "_model_module_version": "^1.0.0",
177
+ "_model_name": "ShellModel",
178
+ "_view_count": null,
179
+ "_view_module": null,
180
+ "_view_module_version": "",
181
+ "_view_name": null,
182
+ "_widgets": []
183
+ }
184
+ }
185
+ },
186
+ "version_major": 2,
187
+ "version_minor": 0
188
+ }
189
+ }
190
+ },
191
+ "nbformat": 4,
192
+ "nbformat_minor": 2
193
+ }
@@ -65,7 +65,6 @@
65
65
  }
66
66
  ],
67
67
  "source": [
68
- "ln.connect(\"lamindb-unit-tests\")\n",
69
68
  "ln.settings.transform.stem_uid = \"HDMGkxN9rgFA\"\n",
70
69
  "ln.settings.transform.version = \"1\"\n",
71
70
  "ln.track()"
@@ -0,0 +1,4 @@
1
+ import lamindb as ln # noqa
2
+
3
+ if __name__ == "__main__":
4
+ print("hello!")
@@ -1,7 +1,5 @@
1
1
  import lamindb as ln
2
2
 
3
- ln.connect("lamindb-unit-tests")
4
-
5
3
  ln.settings.sync_git_repo = "https://github.com/laminlabs/lamin-cli"
6
4
  ln.settings.transform.stem_uid = "m5uCHTTpJnjQ"
7
5
  ln.settings.transform.version = "1"
@@ -13,3 +11,5 @@ if __name__ == "__main__":
13
11
  ln.track(new_run=False)
14
12
 
15
13
  print("hello!")
14
+
15
+ ln.finish()
@@ -3,7 +3,7 @@ import subprocess
3
3
 
4
4
 
5
5
  def test_decompose_url():
6
- url = "https://lamin.ai/laminlabs/arrayloader-benchmarks/core/transform/1GCKs8zLtkc85zKv" # noqa
6
+ url = "https://lamin.ai/laminlabs/arrayloader-benchmarks/transform/1GCKs8zLtkc85zKv" # noqa
7
7
  result = decompose_url(url)
8
8
  instance_slug, entity, uid = result
9
9
  assert instance_slug == "laminlabs/arrayloader-benchmarks"
@@ -14,7 +14,7 @@ def test_decompose_url():
14
14
  def test_get():
15
15
  result = subprocess.run(
16
16
  "lamin get"
17
- " 'https://lamin.ai/laminlabs/arrayloader-benchmarks/core/transform/1GCKs8zLtkc85zKv'", # noqa
17
+ " 'https://lamin.ai/laminlabs/arrayloader-benchmarks/transform/1GCKs8zLtkc85zKv'", # noqa
18
18
  shell=True,
19
19
  capture_output=True,
20
20
  )
@@ -4,6 +4,7 @@ from pathlib import Path
4
4
  import nbproject_test
5
5
  import pytest
6
6
  from nbclient.exceptions import CellExecutionError
7
+ import lamindb as ln
7
8
 
8
9
  notebook_dir = "./sub/lamin-cli/tests/notebooks/"
9
10
 
@@ -30,9 +31,6 @@ def test_save_non_consecutive():
30
31
  notebook_path = Path(
31
32
  f"{notebook_dir}with-title-and-initialized-non-consecutive.ipynb"
32
33
  ).resolve()
33
- import lamindb as ln
34
-
35
- ln.connect("lamindb-unit-tests")
36
34
 
37
35
  # here, we're mimicking a non-consecutive run
38
36
  transform = ln.Transform(
@@ -63,11 +61,6 @@ def test_save_consecutive():
63
61
  env = os.environ
64
62
  env["LAMIN_TESTING"] = "true"
65
63
 
66
- # let's inspect what got written to the database
67
- import lamindb as ln
68
-
69
- ln.connect("lamindb-unit-tests")
70
-
71
64
  transform = ln.Transform.filter(uid="hlsFXswrJjtt5zKv").one_or_none()
72
65
  assert transform is None
73
66
 
@@ -106,7 +99,8 @@ def test_save_consecutive():
106
99
  assert transform is not None
107
100
  assert transform.latest_report.path.exists()
108
101
  assert transform.latest_run.report.path == transform.latest_report.path
109
- assert transform.source_code.hash == "AvZdpq4EHax5rNcnW-RACw"
102
+ print(transform.source_code.path.read_text())
103
+ assert transform.source_code.hash == "5nc_HMjPvT9n26OWrjq6uQ"
110
104
  assert transform.latest_run.environment.path.exists()
111
105
  assert transform.source_code.path.exists()
112
106
 
@@ -136,10 +130,20 @@ def test_save_consecutive():
136
130
  assert transform is not None
137
131
  assert transform.latest_report.path.exists()
138
132
  assert transform.latest_run.report.path == transform.latest_report.path
139
- assert transform.source_code.hash == "-hK6xaIrA04vJFAY2wWAQQ"
133
+ assert transform.source_code.hash == "ocLybD0Hv_L3NhhXgTyQcw"
140
134
  assert transform.latest_run.environment.path.exists()
141
135
  assert transform.source_code.path.exists()
142
136
 
137
+ # get the the source code via command line
138
+ result = subprocess.run(
139
+ "lamin get"
140
+ f" https://lamin.ai/{ln.setup.settings.user.handle}/laminci-unit-tests/transform/hlsFXswrJjtt5zKv", # noqa
141
+ shell=True,
142
+ capture_output=True,
143
+ )
144
+ print(result.stderr.decode())
145
+ assert result.returncode == 0
146
+
143
147
  # now, assume the user renames the notebook
144
148
  new_path = notebook_path.with_name("new_name.ipynb")
145
149
  os.system(f"cp {notebook_path} {new_path}")
@@ -1,6 +1,7 @@
1
1
  from pathlib import Path
2
2
  import subprocess
3
3
  import os
4
+ import lamindb as ln
4
5
  from lamindb_setup import settings
5
6
 
6
7
 
@@ -23,7 +24,7 @@ def test_run_save_cache():
23
24
  assert result.returncode == 1
24
25
  assert "Did you run ln.track()" in result.stdout.decode()
25
26
 
26
- # python sub/lamin-cli/tests/scripts/initialized.py
27
+ # run the script
27
28
  result = subprocess.run(
28
29
  f"python {filepath}",
29
30
  shell=True,
@@ -35,7 +36,11 @@ def test_run_save_cache():
35
36
  assert "saved: Transform" in result.stdout.decode()
36
37
  assert "saved: Run" in result.stdout.decode()
37
38
 
38
- # python sub/lamin-cli/tests/scripts/initialized.py
39
+ transform = ln.Transform.get("m5uCHTTpJnjQ")
40
+ assert transform.source_code.hash == "-QN2dVdC8T3xWG8vBl-wew"
41
+ assert transform.latest_run.environment.path.exists()
42
+ assert transform.source_code.path.exists()
43
+
39
44
  # you can rerun the same script
40
45
  result = subprocess.run(
41
46
  f"python {filepath}",
@@ -47,9 +52,10 @@ def test_run_save_cache():
47
52
  print(result.stderr.decode())
48
53
  assert result.returncode == 0
49
54
 
55
+ # try to get the the source code via command line
50
56
  result = subprocess.run(
51
57
  "lamin get"
52
- f" https://lamin.ai/{settings.user.handle}/lamindb-unit-tests/transform/m5uCHTTpJnjQ5zKv", # noqa
58
+ f" https://lamin.ai/{settings.user.handle}/laminci-unit-tests/transform/m5uCHTTpJnjQ5zKv", # noqa
53
59
  shell=True,
54
60
  capture_output=True,
55
61
  )
@@ -1,3 +0,0 @@
1
- """Lamin CLI."""
2
-
3
- __version__ = "0.12.3"
@@ -1,218 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "# My test notebook (consecutive)"
8
- ]
9
- },
10
- {
11
- "cell_type": "code",
12
- "execution_count": 1,
13
- "metadata": {
14
- "execution": {
15
- "iopub.execute_input": "2024-02-28T10:26:34.123001Z",
16
- "iopub.status.busy": "2024-02-28T10:26:34.122692Z",
17
- "iopub.status.idle": "2024-02-28T10:26:35.334278Z",
18
- "shell.execute_reply": "2024-02-28T10:26:35.333942Z"
19
- }
20
- },
21
- "outputs": [
22
- {
23
- "name": "stdout",
24
- "output_type": "stream",
25
- "text": [
26
- "💡 lamindb instance: falexwolf/lamindb-setup-notebook-tests\n"
27
- ]
28
- }
29
- ],
30
- "source": [
31
- "import lamindb as ln"
32
- ]
33
- },
34
- {
35
- "cell_type": "code",
36
- "execution_count": 2,
37
- "metadata": {
38
- "execution": {
39
- "iopub.execute_input": "2024-02-28T10:26:35.351854Z",
40
- "iopub.status.busy": "2024-02-28T10:26:35.351500Z",
41
- "iopub.status.idle": "2024-02-28T10:26:37.516724Z",
42
- "shell.execute_reply": "2024-02-28T10:26:37.516289Z"
43
- }
44
- },
45
- "outputs": [
46
- {
47
- "name": "stdout",
48
- "output_type": "stream",
49
- "text": [
50
- "💡 notebook imports: lamindb==0.67.3\n"
51
- ]
52
- },
53
- {
54
- "name": "stdout",
55
- "output_type": "stream",
56
- "text": [
57
- "💡 saved: Transform(uid='hlsFXswrJjtt5zKv', name='My test notebook (consecutive)', key='with-title-and-initialized-consecutive', version='1', type=notebook, updated_at=2024-02-28 10:26:36 UTC, created_by_id=1)\n"
58
- ]
59
- },
60
- {
61
- "name": "stdout",
62
- "output_type": "stream",
63
- "text": [
64
- "💡 saved: Run(uid='FyKeQx6bw3o1okN4khF7', started_at=2024-02-28 10:26:36 UTC, transform_id=1, created_by_id=1)\n"
65
- ]
66
- }
67
- ],
68
- "source": [
69
- "ln.connect(\"lamindb-unit-tests\")\n",
70
- "ln.settings.transform.stem_uid = \"hlsFXswrJjtt\"\n",
71
- "ln.settings.transform.version = \"1\"\n",
72
- "ln.track()"
73
- ]
74
- },
75
- {
76
- "cell_type": "code",
77
- "execution_count": 3,
78
- "metadata": {
79
- "execution": {
80
- "iopub.execute_input": "2024-02-28T10:26:37.518448Z",
81
- "iopub.status.busy": "2024-02-28T10:26:37.518331Z",
82
- "iopub.status.idle": "2024-02-28T10:26:37.520409Z",
83
- "shell.execute_reply": "2024-02-28T10:26:37.520130Z"
84
- }
85
- },
86
- "outputs": [
87
- {
88
- "name": "stdout",
89
- "output_type": "stream",
90
- "text": [
91
- "my consecutive cell\n"
92
- ]
93
- }
94
- ],
95
- "source": [
96
- "print(\"my consecutive cell\")"
97
- ]
98
- },
99
- {
100
- "cell_type": "code",
101
- "execution_count": 4,
102
- "metadata": {
103
- "execution": {
104
- "iopub.execute_input": "2024-02-28T10:26:37.518448Z",
105
- "iopub.status.busy": "2024-02-28T10:26:37.518331Z",
106
- "iopub.status.idle": "2024-02-28T10:26:37.520409Z",
107
- "shell.execute_reply": "2024-02-28T10:26:37.520130Z"
108
- }
109
- },
110
- "outputs": [
111
- {
112
- "name": "stdout",
113
- "output_type": "stream",
114
- "text": [
115
- "my consecutive cell\n"
116
- ]
117
- }
118
- ],
119
- "source": [
120
- "print(\"my consecutive cell\")"
121
- ]
122
- }
123
- ],
124
- "metadata": {
125
- "kernelspec": {
126
- "display_name": "py39",
127
- "language": "python",
128
- "name": "python3"
129
- },
130
- "language_info": {
131
- "codemirror_mode": {
132
- "name": "ipython",
133
- "version": 3
134
- },
135
- "file_extension": ".py",
136
- "mimetype": "text/x-python",
137
- "name": "python",
138
- "nbconvert_exporter": "python",
139
- "pygments_lexer": "ipython3",
140
- "version": "3.10.13"
141
- },
142
- "widgets": {
143
- "application/vnd.jupyter.widget-state+json": {
144
- "state": {
145
- "444383c3d65b4d12a4f133df8dc72a9f": {
146
- "model_module": "ipylab",
147
- "model_module_version": "^1.0.0",
148
- "model_name": "ShellModel",
149
- "state": {
150
- "_model_module": "ipylab",
151
- "_model_module_version": "^1.0.0",
152
- "_model_name": "ShellModel",
153
- "_view_count": null,
154
- "_view_module": null,
155
- "_view_module_version": "",
156
- "_view_name": null,
157
- "_widgets": []
158
- }
159
- },
160
- "b782fd14699442f5af38bfdaefae8b43": {
161
- "model_module": "ipylab",
162
- "model_module_version": "^1.0.0",
163
- "model_name": "SessionManagerModel",
164
- "state": {
165
- "_model_module": "ipylab",
166
- "_model_module_version": "^1.0.0",
167
- "_model_name": "SessionManagerModel",
168
- "_view_count": null,
169
- "_view_module": null,
170
- "_view_module_version": "",
171
- "_view_name": null,
172
- "current_session": {},
173
- "sessions": []
174
- }
175
- },
176
- "c5cf1ccc24ea4a49a6f6a8350c2cea24": {
177
- "model_module": "ipylab",
178
- "model_module_version": "^1.0.0",
179
- "model_name": "CommandRegistryModel",
180
- "state": {
181
- "_command_list": [],
182
- "_commands": [],
183
- "_model_module": "ipylab",
184
- "_model_module_version": "^1.0.0",
185
- "_model_name": "CommandRegistryModel",
186
- "_view_count": null,
187
- "_view_module": null,
188
- "_view_module_version": "",
189
- "_view_name": null
190
- }
191
- },
192
- "c63b8662332149d7a748445640768bf8": {
193
- "model_module": "ipylab",
194
- "model_module_version": "^1.0.0",
195
- "model_name": "JupyterFrontEndModel",
196
- "state": {
197
- "_model_module": "ipylab",
198
- "_model_module_version": "^1.0.0",
199
- "_model_name": "JupyterFrontEndModel",
200
- "_view_count": null,
201
- "_view_module": null,
202
- "_view_module_version": "",
203
- "_view_name": null,
204
- "commands": "IPY_MODEL_c5cf1ccc24ea4a49a6f6a8350c2cea24",
205
- "sessions": "IPY_MODEL_b782fd14699442f5af38bfdaefae8b43",
206
- "shell": "IPY_MODEL_444383c3d65b4d12a4f133df8dc72a9f",
207
- "version": ""
208
- }
209
- }
210
- },
211
- "version_major": 2,
212
- "version_minor": 0
213
- }
214
- }
215
- },
216
- "nbformat": 4,
217
- "nbformat_minor": 2
218
- }
@@ -1,9 +0,0 @@
1
- import lamindb as ln
2
-
3
- ln.connect("lamindb-unit-tests")
4
-
5
- if __name__ == "__main__":
6
- # we're using new_run here to mock the notebook situation
7
- # and cover the look up of an existing run in the tests
8
- # new_run = True is trivial
9
- print("hello!")
File without changes
File without changes
File without changes
File without changes