lamindb_setup 0.76.3__tar.gz → 0.76.4__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.
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/PKG-INFO +1 -1
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/__init__.py +1 -1
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_hub_core.py +3 -3
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_hub_crud.py +22 -5
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_settings_load.py +2 -7
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/upath.py +4 -4
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-local/conftest.py +5 -3
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/storage/test_storage_stats.py +15 -1
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/.github/workflows/build.yml +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/.github/workflows/doc-changes.yml +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/.gitignore +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/.pre-commit-config.yaml +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/LICENSE +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/README.md +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/changelog.md +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-cloud/01-init-local-instance.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-cloud/02-connect-local-instance.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-cloud/03-add-managed-storage.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-cloud/04-test-bionty.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-cloud/05-init-hosted-instance.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-cloud/06-connect-hosted-instance.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-cloud/07-keep-artifacts-local.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-cloud/test-multi-session.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-cloud/test_notebooks.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-prod/test-cache-management.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-prod/test-cloud-sync.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-prod/test-empty-init.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-prod/test-import-schema.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-prod/test-invalid-schema.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-prod/test_notebooks2.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/index.md +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/notebooks.md +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/reference.md +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_cache.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_check.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_check_setup.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_close.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_connect_instance.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_delete.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_django.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_exportdb.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_importdb.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_init_instance.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_migrate.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_register_instance.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_schema.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_schema_metadata.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_set_managed_storage.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_setup_user.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/_silence_loggers.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/__init__.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_aws_credentials.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_aws_storage.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_deprecated.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_docs.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_hub_client.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_hub_utils.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_private_django_api.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_settings.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_settings_instance.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_settings_save.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_settings_storage.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_settings_store.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_settings_user.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/_setup_bionty_sources.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/cloud_sqlite_locker.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/django.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/exceptions.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/hashing.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/lamindb_setup/core/types.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/noxfile.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/pyproject.toml +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-cloud/test_connect_instance.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-cloud/test_delete_instance.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-cloud/test_init_instance.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-cloud/test_login.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-cloud/test_migrate.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-cloud/test_set_storage.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-local/test_all.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-local/test_update_schema_in_hub.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-prod/conftest.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-prod/test_django.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-prod/test_global_settings.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-prod/test_switch_and_fallback_env.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-prod/test_upath.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/storage/test_hashing.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/storage/test_storage_access.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/storage/test_storage_basis.py +0 -0
- {lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/storage/test_to_url.py +0 -0
|
@@ -19,10 +19,10 @@ from ._hub_crud import (
|
|
|
19
19
|
_delete_instance_record,
|
|
20
20
|
select_account_by_handle,
|
|
21
21
|
select_db_user_by_instance,
|
|
22
|
+
select_default_storage_by_instance_id,
|
|
22
23
|
select_instance_by_id_with_storage,
|
|
23
24
|
select_instance_by_name,
|
|
24
25
|
select_instance_by_owner_name,
|
|
25
|
-
select_storage,
|
|
26
26
|
)
|
|
27
27
|
from ._hub_crud import update_instance as _update_instance_record
|
|
28
28
|
from ._hub_utils import (
|
|
@@ -338,7 +338,7 @@ def _connect_instance(
|
|
|
338
338
|
if instance is None:
|
|
339
339
|
return "instance-not-found"
|
|
340
340
|
# get default storage
|
|
341
|
-
storage =
|
|
341
|
+
storage = select_default_storage_by_instance_id(instance["id"], client)
|
|
342
342
|
if storage is None:
|
|
343
343
|
return "storage-does-not-exist-on-hub"
|
|
344
344
|
else:
|
|
@@ -364,7 +364,7 @@ def _connect_instance(
|
|
|
364
364
|
database=instance["db_database"],
|
|
365
365
|
)
|
|
366
366
|
instance["db"] = db_dsn
|
|
367
|
-
return instance, storage
|
|
367
|
+
return instance, storage # type: ignore
|
|
368
368
|
|
|
369
369
|
|
|
370
370
|
def access_aws(storage_root: str, access_token: str | None = None) -> dict[str, dict]:
|
|
@@ -17,10 +17,11 @@ def select_instance_by_owner_name(
|
|
|
17
17
|
client.table("instance")
|
|
18
18
|
.select(
|
|
19
19
|
"*, account!inner!instance_account_id_28936e8f_fk_account_id(*),"
|
|
20
|
-
" storage!
|
|
20
|
+
" storage!inner!storage_instance_id_359fca71_fk_instance_id(*)"
|
|
21
21
|
)
|
|
22
|
-
.eq("account.handle", owner)
|
|
23
22
|
.eq("name", name)
|
|
23
|
+
.eq("account.handle", owner)
|
|
24
|
+
.eq("storage.is_default", True)
|
|
24
25
|
.execute()
|
|
25
26
|
.data
|
|
26
27
|
)
|
|
@@ -28,7 +29,11 @@ def select_instance_by_owner_name(
|
|
|
28
29
|
return None
|
|
29
30
|
if len(data) == 0:
|
|
30
31
|
return None
|
|
31
|
-
|
|
32
|
+
result = data[0]
|
|
33
|
+
# this is now a list
|
|
34
|
+
# assume only one default storage
|
|
35
|
+
result["storage"] = result["storage"][0]
|
|
36
|
+
return result
|
|
32
37
|
|
|
33
38
|
|
|
34
39
|
# --------------- ACCOUNT ----------------------
|
|
@@ -131,8 +136,20 @@ def select_collaborator(
|
|
|
131
136
|
# --------------- STORAGE ----------------------
|
|
132
137
|
|
|
133
138
|
|
|
134
|
-
def
|
|
135
|
-
|
|
139
|
+
def select_default_storage_by_instance_id(
|
|
140
|
+
instance_id: str, client: Client
|
|
141
|
+
) -> dict | None:
|
|
142
|
+
try:
|
|
143
|
+
data = (
|
|
144
|
+
client.table("storage")
|
|
145
|
+
.select("*")
|
|
146
|
+
.eq("instance_id", instance_id)
|
|
147
|
+
.eq("is_default", True)
|
|
148
|
+
.execute()
|
|
149
|
+
.data
|
|
150
|
+
)
|
|
151
|
+
except Exception:
|
|
152
|
+
return None
|
|
136
153
|
if len(data) == 0:
|
|
137
154
|
return None
|
|
138
155
|
return data[0]
|
|
@@ -36,14 +36,9 @@ def load_instance_settings(instance_settings_file: Path | None = None):
|
|
|
36
36
|
content = f.read()
|
|
37
37
|
raise SettingsEnvFileOutdated(
|
|
38
38
|
f"\n\n{error}\n\nYour instance settings file with\n\n{content}\nis invalid"
|
|
39
|
-
f" (likely outdated),
|
|
40
|
-
"
|
|
39
|
+
f" (likely outdated), see validation error. Please delete {instance_settings_file} &"
|
|
40
|
+
" reload (remote) or re-initialize (local) the instance with the same name & storage location."
|
|
41
41
|
) from error
|
|
42
|
-
if settings_store.id == "null":
|
|
43
|
-
raise ValueError(
|
|
44
|
-
"Your instance._id is undefined, please either load your instance from the"
|
|
45
|
-
f" hub or update {instance_settings_file} with a new id: {uuid4().hex}"
|
|
46
|
-
)
|
|
47
42
|
isettings = setup_instance_from_store(settings_store)
|
|
48
43
|
return isettings
|
|
49
44
|
|
|
@@ -18,7 +18,7 @@ from upath.implementations.cloud import CloudPath, S3Path # keep CloudPath!
|
|
|
18
18
|
from upath.implementations.local import LocalPath, PosixUPath, WindowsUPath
|
|
19
19
|
|
|
20
20
|
from ._aws_credentials import HOSTED_BUCKETS, get_aws_credentials_manager
|
|
21
|
-
from .hashing import b16_to_b64, hash_md5s_from_dir
|
|
21
|
+
from .hashing import HASH_LENGTH, b16_to_b64, hash_md5s_from_dir
|
|
22
22
|
|
|
23
23
|
if TYPE_CHECKING:
|
|
24
24
|
from .types import UPathStr
|
|
@@ -707,9 +707,9 @@ def get_stat_file_cloud(stat: dict) -> tuple[int, str, str]:
|
|
|
707
707
|
else:
|
|
708
708
|
stripped_etag, suffix = etag.split("-")
|
|
709
709
|
suffix = suffix.strip('"')
|
|
710
|
-
hash =
|
|
711
|
-
hash_type = "md5-
|
|
712
|
-
return size, hash, hash_type
|
|
710
|
+
hash = b16_to_b64(stripped_etag)
|
|
711
|
+
hash_type = f"md5-{suffix}" # this is the S3 chunk-hashing strategy
|
|
712
|
+
return size, hash[:HASH_LENGTH], hash_type
|
|
713
713
|
|
|
714
714
|
|
|
715
715
|
def get_stat_dir_cloud(path: UPath) -> tuple[int, str, str, int]:
|
|
@@ -2,9 +2,11 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import os
|
|
4
4
|
|
|
5
|
-
from laminhub_rest.dev
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
from laminhub_rest.dev import (
|
|
6
|
+
SupabaseResources,
|
|
7
|
+
remove_lamin_local_settings,
|
|
8
|
+
seed_local_test,
|
|
9
|
+
)
|
|
8
10
|
|
|
9
11
|
supabase_resources = SupabaseResources()
|
|
10
12
|
|
|
@@ -2,7 +2,21 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from lamindb_setup.core._aws_credentials import HOSTED_REGIONS
|
|
4
4
|
from lamindb_setup.core._settings_storage import get_storage_region
|
|
5
|
-
from lamindb_setup.core.upath import
|
|
5
|
+
from lamindb_setup.core.upath import (
|
|
6
|
+
UPath,
|
|
7
|
+
compute_file_tree,
|
|
8
|
+
get_stat_dir_cloud,
|
|
9
|
+
get_stat_file_cloud,
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def test_get_stat_file_cloud_aws():
|
|
14
|
+
string_path = "s3://bionty-assets/df_all__ncbitaxon__2023-06-20__Organism.parquet"
|
|
15
|
+
path = UPath(string_path, anon=True)
|
|
16
|
+
size, hash, hash_type = get_stat_file_cloud(path.stat().as_info())
|
|
17
|
+
assert hash == "zQxieeCkNGNJWhPl3OfM8A"
|
|
18
|
+
assert hash_type == "md5-5"
|
|
19
|
+
assert size == 78148228
|
|
6
20
|
|
|
7
21
|
|
|
8
22
|
def test_get_stat_dir_cloud_aws():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-cloud/02-connect-local-instance.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-cloud/06-connect-hosted-instance.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/docs/hub-prod/test-insufficient-user-info.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lamindb_setup-0.76.3 → lamindb_setup-0.76.4}/tests/hub-prod/test_switch_and_fallback_env.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|