lamin_cli 1.5.2__tar.gz → 1.5.3__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 (41) hide show
  1. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/PKG-INFO +1 -1
  2. lamin_cli-1.5.3/lamin_cli/__init__.py +3 -0
  3. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/lamin_cli/_save.py +17 -1
  4. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/core/test_save_scripts.py +21 -0
  5. lamin_cli-1.5.3/tests/scripts/testscript.py +2 -0
  6. lamin_cli-1.5.2/lamin_cli/__init__.py +0 -3
  7. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/.github/workflows/build.yml +0 -0
  8. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/.github/workflows/doc-changes.yml +0 -0
  9. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/.gitignore +0 -0
  10. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/.pre-commit-config.yaml +0 -0
  11. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/LICENSE +0 -0
  12. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/README.md +0 -0
  13. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/lamin_cli/__main__.py +0 -0
  14. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/lamin_cli/_cache.py +0 -0
  15. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/lamin_cli/_load.py +0 -0
  16. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/lamin_cli/_migration.py +0 -0
  17. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/lamin_cli/_settings.py +0 -0
  18. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/lamin_cli/compute/__init__.py +0 -0
  19. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/lamin_cli/compute/modal.py +0 -0
  20. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/noxfile.py +0 -0
  21. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/pyproject.toml +0 -0
  22. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/core/conftest.py +0 -0
  23. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/core/test_create_switch_delete_list.py +0 -0
  24. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/core/test_load.py +0 -0
  25. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/core/test_login.py +0 -0
  26. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/core/test_migrate.py +0 -0
  27. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/core/test_multi_process.py +0 -0
  28. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/core/test_parse_uid_from_code.py +0 -0
  29. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/core/test_save_files.py +0 -0
  30. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/core/test_save_notebooks.py +0 -0
  31. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/core/test_save_r_code.py +0 -0
  32. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/modal/test_modal.py +0 -0
  33. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/notebooks/not-initialized.ipynb +0 -0
  34. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
  35. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
  36. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/scripts/merely-import-lamindb.py +0 -0
  37. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/scripts/run-track-and-finish-sync-git.py +0 -0
  38. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/scripts/run-track-and-finish.py +0 -0
  39. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/scripts/run-track-with-params.py +0 -0
  40. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/scripts/run-track.R +0 -0
  41. {lamin_cli-1.5.2 → lamin_cli-1.5.3}/tests/scripts/run-track.qmd +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lamin_cli
3
- Version: 1.5.2
3
+ Version: 1.5.3
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__ = "1.5.3"
@@ -6,6 +6,7 @@ from typing import TYPE_CHECKING
6
6
 
7
7
  import click
8
8
  from lamin_utils import logger
9
+ from lamindb_setup.core.hashing import hash_file
9
10
 
10
11
  if TYPE_CHECKING:
11
12
  from pathlib import Path
@@ -155,6 +156,10 @@ def save_from_path_cli(
155
156
  return None
156
157
 
157
158
  if registry == "transform":
159
+ if key is not None:
160
+ logger.warning(
161
+ "key is ignored for transforms, the transform key is determined by the filename"
162
+ )
158
163
  if is_cloud_path:
159
164
  logger.error("Can not register a transform from a cloud path")
160
165
  return "transform-with-cloud-path"
@@ -201,8 +206,19 @@ def save_from_path_cli(
201
206
  if transform is None:
202
207
  uid = f"{stem_uid}0000"
203
208
  else:
204
- # TODO: account for folders and hash equivalence as we do in ln.track()
209
+ # TODO: account for folders as we do in ln.track()
210
+ transform_hash, _ = hash_file(path)
205
211
  transform = ln.Transform.filter(key=path.name, is_latest=True).one_or_none()
212
+ if transform is not None and transform.hash is not None:
213
+ if transform.hash == transform_hash:
214
+ logger.important(
215
+ f"found existing Transform('{uid}') with matching hash"
216
+ )
217
+ return None
218
+ else:
219
+ # we need to create a new version
220
+ stem_uid = transform.uid[:12]
221
+ transform = None
206
222
  revises = None
207
223
  if stem_uid is not None:
208
224
  revises = (
@@ -8,6 +8,27 @@ from lamindb_setup import settings
8
8
  scripts_dir = Path(__file__).parent.parent.resolve() / "scripts"
9
9
 
10
10
 
11
+ def test_save_resave_script_no_uids():
12
+ filepath = scripts_dir / "testscript.py"
13
+ filepath.write_text("print('hello')")
14
+ result = subprocess.run(
15
+ f"lamin save {filepath}",
16
+ shell=True,
17
+ capture_output=True,
18
+ )
19
+ assert result.returncode == 0
20
+ assert "created Transform" in result.stdout.decode()
21
+ filepath.write_text("print('hello')\nprint('world')\n")
22
+ result = subprocess.run(
23
+ f"lamin save {filepath}",
24
+ shell=True,
25
+ capture_output=True,
26
+ )
27
+ assert result.returncode == 0
28
+ assert "created Transform" in result.stdout.decode()
29
+ assert ln.Transform.filter(key=filepath.name).count() == 2
30
+
31
+
11
32
  def test_save_without_uid():
12
33
  env = os.environ
13
34
  env["LAMIN_TESTING"] = "true"
@@ -0,0 +1,2 @@
1
+ print("hello")
2
+ print("world")
@@ -1,3 +0,0 @@
1
- """Lamin CLI."""
2
-
3
- __version__ = "1.5.2"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes