lamindb 0.58.0__tar.gz → 0.58.1__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 (299) hide show
  1. {lamindb-0.58.0 → lamindb-0.58.1}/PKG-INFO +3 -3
  2. {lamindb-0.58.0 → lamindb-0.58.1}/docs/changelog.md +8 -0
  3. lamindb-0.58.1/docs/faq/delete.ipynb +191 -0
  4. {lamindb-0.58.0 → lamindb-0.58.1}/docs/faq/validator.ipynb +55 -10
  5. lamindb-0.58.1/docs/faq/visibility.ipynb +205 -0
  6. {lamindb-0.58.0 → lamindb-0.58.1}/docs/faq.md +2 -0
  7. {lamindb-0.58.0 → lamindb-0.58.1}/docs/storage/add-replace-stage.ipynb +3 -3
  8. {lamindb-0.58.0 → lamindb-0.58.1}/docs/storage/upload.ipynb +4 -4
  9. {lamindb-0.58.0 → lamindb-0.58.1}/docs/tutorial.ipynb +6 -2
  10. {lamindb-0.58.0 → lamindb-0.58.1}/docs/validate.ipynb +16 -10
  11. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/__init__.py +1 -1
  12. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_dataset.py +43 -6
  13. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_file.py +51 -13
  14. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_filter.py +12 -0
  15. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_query_set.py +2 -4
  16. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_registry.py +20 -7
  17. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_save.py +5 -3
  18. {lamindb-0.58.0 → lamindb-0.58.1}/pyproject.toml +2 -2
  19. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/changelog.md +6 -0
  20. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
  21. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/__main__.py +2 -0
  22. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_init_instance.py +4 -2
  23. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_load_instance.py +59 -4
  24. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_notebook.py +3 -0
  25. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_core.py +64 -23
  26. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_crud.py +15 -2
  27. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_utils.py +1 -1
  28. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/noxfile.py +6 -2
  29. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/hub-local/test_all.py +12 -2
  30. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/prod-staging/test_init_instance.py +1 -2
  31. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/prod-staging/test_load_instance.py +22 -0
  32. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/test_vault.py +48 -47
  33. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/CHANGELOG.md +2 -0
  34. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/__init__.py +1 -1
  35. lamindb-0.58.1/sub/lnschema-core/lnschema_core/migrations/0026_dataset_visibility_file_visibility.py +22 -0
  36. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/models.py +46 -12
  37. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/types.py +7 -1
  38. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_cache.py +3 -3
  39. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_dataset.py +20 -18
  40. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_feature.py +1 -1
  41. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_feature_manager.py +4 -4
  42. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_file.py +13 -13
  43. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_label_manager.py +2 -2
  44. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_registry.py +6 -6
  45. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_save.py +1 -1
  46. lamindb-0.58.1/tests/test_visibility.py +35 -0
  47. lamindb-0.58.0/sub/lnschema-bionty/.github/workflows/build.yml +0 -51
  48. lamindb-0.58.0/sub/lnschema-bionty/.github/workflows/latest-changes.yml +0 -25
  49. lamindb-0.58.0/sub/lnschema-bionty/.gitignore +0 -119
  50. lamindb-0.58.0/sub/lnschema-bionty/.pre-commit-config.yaml +0 -65
  51. lamindb-0.58.0/sub/lnschema-bionty/README.md +0 -5
  52. lamindb-0.58.0/sub/lnschema-bionty/docs/changelog.md +0 -173
  53. lamindb-0.58.0/sub/lnschema-bionty/docs/index.md +0 -11
  54. lamindb-0.58.0/sub/lnschema-bionty/docs/reference.md +0 -5
  55. lamindb-0.58.0/sub/lnschema-bionty/lamin-project.yaml +0 -5
  56. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/__init__.py +0 -120
  57. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/_bionty.py +0 -121
  58. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/dev/__init__.py +0 -10
  59. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/dev/_settings.py +0 -62
  60. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/ids.py +0 -71
  61. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +0 -766
  62. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +0 -549
  63. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +0 -46
  64. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +0 -85
  65. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +0 -151
  66. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +0 -137
  67. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +0 -60
  68. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +0 -67
  69. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0008_remove_gene_hgnc_id_remove_gene_mgi_id_and_more.py +0 -82
  70. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +0 -17
  71. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0010_alter_species_name.py +0 -17
  72. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0011_cellline_datasets_cellmarker_datasets_and_more.py +0 -93
  73. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0012_gene_stable_id.py +0 -17
  74. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0013_alter_cellmarker_species_alter_gene_species_and_more.py +0 -43
  75. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0014_ethnicity_developmentalstage.py +0 -163
  76. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0015_migrate_to_integer_pks.py +0 -123
  77. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0016_export_legacy_data.py +0 -53
  78. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0017_import_legacy_data.py +0 -64
  79. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0018_organism_rename_species_biontysource_organism_and_more.py +0 -132
  80. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/migrations/0019_rename_taxon_id_organism_ontology_id_and_more.py +0 -77
  81. lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty/models.py +0 -1268
  82. lamindb-0.58.0/sub/lnschema-bionty/noxfile.py +0 -20
  83. lamindb-0.58.0/sub/lnschema-bionty/pyproject.toml +0 -46
  84. lamindb-0.58.0/sub/lnschema-bionty/tests/test_integrity.py +0 -13
  85. lamindb-0.58.0/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -2
  86. lamindb-0.58.0/sub/lnschema-core/LICENSE +0 -201
  87. lamindb-0.58.0/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  88. {lamindb-0.58.0 → lamindb-0.58.1}/.github/workflows/build.yml +0 -0
  89. {lamindb-0.58.0 → lamindb-0.58.1}/.github/workflows/latest-changes.jinja2 +0 -0
  90. {lamindb-0.58.0 → lamindb-0.58.1}/.github/workflows/latest-changes.yml +0 -0
  91. {lamindb-0.58.0 → lamindb-0.58.1}/.gitignore +0 -0
  92. {lamindb-0.58.0 → lamindb-0.58.1}/.gitmodules +0 -0
  93. {lamindb-0.58.0 → lamindb-0.58.1}/.pre-commit-config.yaml +0 -0
  94. {lamindb-0.58.0 → lamindb-0.58.1}/LICENSE +0 -0
  95. {lamindb-0.58.0 → lamindb-0.58.1}/README.md +0 -0
  96. {lamindb-0.58.0 → lamindb-0.58.1}/docs/bio-registries.ipynb +0 -0
  97. {lamindb-0.58.0 → lamindb-0.58.1}/docs/bionty.md +0 -0
  98. {lamindb-0.58.0 → lamindb-0.58.1}/docs/data.ipynb +0 -0
  99. {lamindb-0.58.0 → lamindb-0.58.1}/docs/faq/acid.ipynb +0 -0
  100. {lamindb-0.58.0 → lamindb-0.58.1}/docs/faq/idempotency.ipynb +0 -0
  101. {lamindb-0.58.0 → lamindb-0.58.1}/docs/faq/import-schema.ipynb +0 -0
  102. {lamindb-0.58.0 → lamindb-0.58.1}/docs/faq/notebooks.ipynb +0 -0
  103. {lamindb-0.58.0 → lamindb-0.58.1}/docs/faq/reference-field.ipynb +0 -0
  104. {lamindb-0.58.0 → lamindb-0.58.1}/docs/faq/setup.ipynb +0 -0
  105. {lamindb-0.58.0 → lamindb-0.58.1}/docs/faq/test_notebooks.py +0 -0
  106. {lamindb-0.58.0 → lamindb-0.58.1}/docs/faq/track-run-inputs.ipynb +0 -0
  107. {lamindb-0.58.0 → lamindb-0.58.1}/docs/features-lamindb.md +0 -0
  108. {lamindb-0.58.0 → lamindb-0.58.1}/docs/features-laminhub.md +0 -0
  109. {lamindb-0.58.0 → lamindb-0.58.1}/docs/guide.md +0 -0
  110. {lamindb-0.58.0 → lamindb-0.58.1}/docs/index.md +0 -0
  111. {lamindb-0.58.0 → lamindb-0.58.1}/docs/installation.md +0 -0
  112. {lamindb-0.58.0 → lamindb-0.58.1}/docs/introduction.ipynb +0 -0
  113. {lamindb-0.58.0 → lamindb-0.58.1}/docs/lamin-utils.md +0 -0
  114. {lamindb-0.58.0 → lamindb-0.58.1}/docs/lamindb.md +0 -0
  115. {lamindb-0.58.0 → lamindb-0.58.1}/docs/lnschema-bionty.md +0 -0
  116. {lamindb-0.58.0 → lamindb-0.58.1}/docs/meta.ipynb +0 -0
  117. {lamindb-0.58.0 → lamindb-0.58.1}/docs/nbproject.md +0 -0
  118. {lamindb-0.58.0 → lamindb-0.58.1}/docs/query-search.md +0 -0
  119. {lamindb-0.58.0 → lamindb-0.58.1}/docs/readfcs.md +0 -0
  120. {lamindb-0.58.0 → lamindb-0.58.1}/docs/reference.md +0 -0
  121. {lamindb-0.58.0 → lamindb-0.58.1}/docs/schemas.ipynb +0 -0
  122. {lamindb-0.58.0 → lamindb-0.58.1}/docs/setup.ipynb +0 -0
  123. {lamindb-0.58.0 → lamindb-0.58.1}/docs/signup-login.md +0 -0
  124. {lamindb-0.58.0 → lamindb-0.58.1}/docs/storage/anndata-accessor.ipynb +0 -0
  125. {lamindb-0.58.0 → lamindb-0.58.1}/docs/storage/test-files/iris.csv +0 -0
  126. {lamindb-0.58.0 → lamindb-0.58.1}/docs/storage/test-files/iris.data +0 -0
  127. {lamindb-0.58.0 → lamindb-0.58.1}/docs/storage/test-files/new_iris.csv +0 -0
  128. {lamindb-0.58.0 → lamindb-0.58.1}/docs/storage/test_notebooks.py +0 -0
  129. {lamindb-0.58.0 → lamindb-0.58.1}/docs/storage.md +0 -0
  130. {lamindb-0.58.0 → lamindb-0.58.1}/docs/test_notebooks.py +0 -0
  131. {lamindb-0.58.0 → lamindb-0.58.1}/docs/transfer.ipynb +0 -0
  132. {lamindb-0.58.0 → lamindb-0.58.1}/docs/tutorial2.ipynb +0 -0
  133. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_delete.py +0 -0
  134. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_feature.py +0 -0
  135. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_feature_set.py +0 -0
  136. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_from_values.py +0 -0
  137. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_parents.py +0 -0
  138. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_query_manager.py +0 -0
  139. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_run.py +0 -0
  140. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_storage.py +0 -0
  141. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_transform.py +0 -0
  142. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_ulabel.py +0 -0
  143. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_utils.py +0 -0
  144. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_validate.py +0 -0
  145. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/_view.py +0 -0
  146. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/__init__.py +0 -0
  147. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/_data.py +0 -0
  148. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/_feature_manager.py +0 -0
  149. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/_label_manager.py +0 -0
  150. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/_priors.py +0 -0
  151. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/_run_context.py +0 -0
  152. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/_settings.py +0 -0
  153. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/datasets/__init__.py +0 -0
  154. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/datasets/_core.py +0 -0
  155. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/datasets/_fake.py +0 -0
  156. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/exceptions.py +0 -0
  157. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/fields.py +0 -0
  158. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/hashing.py +0 -0
  159. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/storage/__init__.py +0 -0
  160. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/storage/_anndata_sizes.py +0 -0
  161. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/storage/_backed_access.py +0 -0
  162. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/storage/_zarr.py +0 -0
  163. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/storage/file.py +0 -0
  164. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/storage/object.py +0 -0
  165. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/types.py +0 -0
  166. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/dev/versioning.py +0 -0
  167. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/setup/__init__.py +0 -0
  168. {lamindb-0.58.0 → lamindb-0.58.1}/lamindb/setup/dev/__init__.py +0 -0
  169. {lamindb-0.58.0 → lamindb-0.58.1}/noxfile.py +0 -0
  170. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
  171. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
  172. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
  173. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/.gitignore +0 -0
  174. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
  175. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/LICENSE +0 -0
  176. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/README.md +0 -0
  177. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/index.md +0 -0
  178. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/notebooks.md +0 -0
  179. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-only/test-cache-management.ipynb +0 -0
  180. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-only/test-empty-init.ipynb +0 -0
  181. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-only/test-import-schema.ipynb +0 -0
  182. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-only/test-insufficient-user-info.ipynb +0 -0
  183. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-only/test-load-lock.ipynb +0 -0
  184. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-only/test-sqlite-sync.ipynb +0 -0
  185. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-only/test_notebooks2.py +0 -0
  186. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-staging/01-init-instance.ipynb +0 -0
  187. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-staging/02-load-instance.ipynb +0 -0
  188. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-staging/03-set-storage.ipynb +0 -0
  189. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-staging/04-test-bionty.ipynb +0 -0
  190. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-staging/test-multi-session.ipynb +0 -0
  191. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/prod-staging/test_notebooks.py +0 -0
  192. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/docs/reference.md +0 -0
  193. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
  194. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_check_instance_setup.py +0 -0
  195. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
  196. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_delete.py +0 -0
  197. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
  198. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_docstrings.py +0 -0
  199. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_export.py +0 -0
  200. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_info.py +0 -0
  201. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_init_vault.py +0 -0
  202. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
  203. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
  204. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
  205. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_set.py +0 -0
  206. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_settings.py +0 -0
  207. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
  208. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
  209. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/__init__.py +0 -0
  210. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_deprecated.py +0 -0
  211. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_docs.py +0 -0
  212. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_client.py +0 -0
  213. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_instance.py +0 -0
  214. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_load.py +0 -0
  215. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_save.py +0 -0
  216. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_storage.py +0 -0
  217. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_store.py +0 -0
  218. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_user.py +0 -0
  219. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/_setup_bionty_sources.py +0 -0
  220. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/cloud_sqlite_locker.py +0 -0
  221. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/django.py +0 -0
  222. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/lamindb_setup/dev/upath.py +0 -0
  223. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/pyproject.toml +0 -0
  224. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
  225. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/notebooks/conftest.py +0 -0
  226. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/notebooks/test-notebooks/no-title.ipynb +0 -0
  227. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/notebooks/test-notebooks/not-initialized.ipynb +0 -0
  228. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/notebooks/test-notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
  229. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/notebooks/test-notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
  230. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/notebooks/test.py +0 -0
  231. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/prod-only/conftest.py +0 -0
  232. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/prod-only/test_cli.py +0 -0
  233. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/prod-only/test_django.py +0 -0
  234. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/prod-only/test_switch_and_fallback_env.py +0 -0
  235. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/prod-staging/test_delete_instance.py +0 -0
  236. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/prod-staging/test_login.py +0 -0
  237. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/prod-staging/test_migrate.py +0 -0
  238. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/prod-staging/test_set_storage.py +0 -0
  239. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lamindb-setup/tests/test_load_persistent_instance.py +0 -0
  240. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/.github/workflows/build.yml +0 -0
  241. {lamindb-0.58.0/sub/lnschema-bionty → lamindb-0.58.1/sub/lnschema-core}/.github/workflows/latest-changes.jinja2 +0 -0
  242. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
  243. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/.gitignore +0 -0
  244. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
  245. {lamindb-0.58.0/sub/lnschema-bionty → lamindb-0.58.1/sub/lnschema-core}/LICENSE +0 -0
  246. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/README.md +0 -0
  247. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  248. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
  249. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +0 -0
  250. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
  251. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
  252. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
  253. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
  254. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
  255. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
  256. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
  257. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
  258. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +0 -0
  259. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +0 -0
  260. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -0
  261. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -0
  262. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +0 -0
  263. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0015_file_initial_version_file_version.py +0 -0
  264. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +0 -0
  265. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +0 -0
  266. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0018_rename_datasetlabel_datasetulabel_and_more.py +0 -0
  267. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0019_dataset_reference_dataset_reference_type_and_more.py +0 -0
  268. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +0 -0
  269. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0021_dataset_storage_alter_dataset_file.py +0 -0
  270. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0022_migrate_to_integer_pks.py +0 -0
  271. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0023_export_legacy_data.py +0 -0
  272. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0024_import_legacy_data.py +0 -0
  273. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/migrations/0025_remove_user_email.py +0 -0
  274. {lamindb-0.58.0/sub/lnschema-bionty/lnschema_bionty → lamindb-0.58.1/sub/lnschema-core/lnschema_core}/migrations/__init__.py +0 -0
  275. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  276. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/lnschema_core/users.py +0 -0
  277. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/noxfile.py +0 -0
  278. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/pyproject.toml +0 -0
  279. {lamindb-0.58.0 → lamindb-0.58.1}/sub/lnschema-core/tests/test_integrity.py +0 -0
  280. {lamindb-0.58.0 → lamindb-0.58.1}/tests/conftest.py +0 -0
  281. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_data.py +0 -0
  282. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_db.py +0 -0
  283. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_delete.py +0 -0
  284. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_feature_set.py +0 -0
  285. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_from_values.py +0 -0
  286. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_hashing.py +0 -0
  287. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_manager.py +0 -0
  288. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_parents.py +0 -0
  289. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_queryset.py +0 -0
  290. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_run.py +0 -0
  291. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_run_context.py +0 -0
  292. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_settings.py +0 -0
  293. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_storage.py +0 -0
  294. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_transfer.py +0 -0
  295. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_transform.py +0 -0
  296. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_ulabel.py +0 -0
  297. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_validate.py +0 -0
  298. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_versioning.py +0 -0
  299. {lamindb-0.58.0 → lamindb-0.58.1}/tests/test_view.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamindb
3
- Version: 0.58.0
3
+ Version: 0.58.1
4
4
  Summary: A data framework for biology.
5
5
  Author-email: Lamin Labs <open-source@lamin.ai>
6
6
  Requires-Python: >=3.8
@@ -8,8 +8,8 @@ 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.52.1
12
- Requires-Dist: lamindb_setup==0.55.6
11
+ Requires-Dist: lnschema_core==0.53.0
12
+ Requires-Dist: lamindb_setup==0.56.3
13
13
  Requires-Dist: lamin_utils==0.11.5
14
14
  Requires-Dist: rapidfuzz
15
15
  Requires-Dist: pyarrow
@@ -7,6 +7,14 @@
7
7
 
8
8
  ## 0.58
9
9
 
10
+ ### 0.58.1 {small}`2023-10-26`
11
+
12
+ - 🔒️ Re-enable read-only access for public instances [PR1257](https://github.com/laminlabs/lamindb/pull/1257) [@falexwolf](https://github.com/falexwolf)
13
+ - ✨ Introduce `visibility` to `File` and `Dataset` [PR1254](https://github.com/laminlabs/lamindb/pull/1254) [@sunnyosun](https://github.com/sunnyosun)
14
+ - 🔒️ Enable to pass DB URLs during load [PR1256](https://github.com/laminlabs/lamindb/pull/1256) [@falexwolf](https://github.com/falexwolf)
15
+ - ✨ Enable passing filter expressions to lookup and search [PR1255](https://github.com/laminlabs/lamindb/pull/1255) [@sunnyosun](https://github.com/sunnyosun)
16
+ - ♻️ Use `file.uid` instead of `file.id` in `dataset.load()` [PR1250](https://github.com/laminlabs/lamindb/pull/1250) [@falexwolf](https://github.com/falexwolf)
17
+
10
18
  ### 0.58.0 {small}`2023-10-24`
11
19
 
12
20
  - ⚡️ Speed up dataset creation in presence of millions of feature links [PR1248](https://github.com/laminlabs/lamindb/pull/1248) [@falexwolf](https://github.com/falexwolf)
@@ -0,0 +1,191 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# How to delete records?\n",
8
+ "\n",
9
+ "Registry records can be deleted with `record.delete()`, which will **permanently remove** them from your database.\n",
10
+ "\n",
11
+ "When it comes to **records of `File` and `Dataset`**, they are **\"moved into trash\"** when you first call `record.delete()`.\n",
12
+ "- Trashed records are invisible in the UI and excluded from the query results, see [visibility faq](/faq/visibility).\n",
13
+ "- If a record is already in the trash or `permanent=True` is passed, calling `record.delete()` triggers permanent delete.\n",
14
+ "- During permanent deletion of a record, its file in storage is also deleted unless it has a semantic `key`."
15
+ ]
16
+ },
17
+ {
18
+ "cell_type": "markdown",
19
+ "metadata": {},
20
+ "source": [
21
+ "## Setup"
22
+ ]
23
+ },
24
+ {
25
+ "cell_type": "code",
26
+ "execution_count": null,
27
+ "metadata": {},
28
+ "outputs": [],
29
+ "source": [
30
+ "!lamin init --storage test-delete"
31
+ ]
32
+ },
33
+ {
34
+ "cell_type": "code",
35
+ "execution_count": null,
36
+ "metadata": {},
37
+ "outputs": [],
38
+ "source": [
39
+ "import lamindb as ln\n",
40
+ "import pandas as pd"
41
+ ]
42
+ },
43
+ {
44
+ "cell_type": "code",
45
+ "execution_count": null,
46
+ "metadata": {},
47
+ "outputs": [],
48
+ "source": [
49
+ "file = ln.File(pd.DataFrame({\"a\": [1, 2], \"b\": [3, 4]}), description=\"mydf\")\n",
50
+ "file.save()"
51
+ ]
52
+ },
53
+ {
54
+ "cell_type": "code",
55
+ "execution_count": null,
56
+ "metadata": {},
57
+ "outputs": [],
58
+ "source": [
59
+ "ln.File.filter().df()"
60
+ ]
61
+ },
62
+ {
63
+ "cell_type": "markdown",
64
+ "metadata": {},
65
+ "source": [
66
+ "## Trash a file"
67
+ ]
68
+ },
69
+ {
70
+ "cell_type": "code",
71
+ "execution_count": null,
72
+ "metadata": {},
73
+ "outputs": [],
74
+ "source": [
75
+ "file.delete()"
76
+ ]
77
+ },
78
+ {
79
+ "cell_type": "markdown",
80
+ "metadata": {},
81
+ "source": [
82
+ "No longer visible:"
83
+ ]
84
+ },
85
+ {
86
+ "cell_type": "code",
87
+ "execution_count": null,
88
+ "metadata": {},
89
+ "outputs": [],
90
+ "source": [
91
+ "ln.File.filter().df()"
92
+ ]
93
+ },
94
+ {
95
+ "cell_type": "markdown",
96
+ "metadata": {},
97
+ "source": [
98
+ "But the file still exists in the database, you can find it by not filtering for visibility:"
99
+ ]
100
+ },
101
+ {
102
+ "cell_type": "code",
103
+ "execution_count": null,
104
+ "metadata": {},
105
+ "outputs": [],
106
+ "source": [
107
+ "ln.File.filter(visibility=None).df()"
108
+ ]
109
+ },
110
+ {
111
+ "cell_type": "markdown",
112
+ "metadata": {},
113
+ "source": [
114
+ "You can restore a file from trash:"
115
+ ]
116
+ },
117
+ {
118
+ "cell_type": "code",
119
+ "execution_count": null,
120
+ "metadata": {},
121
+ "outputs": [],
122
+ "source": [
123
+ "file.restore()"
124
+ ]
125
+ },
126
+ {
127
+ "cell_type": "code",
128
+ "execution_count": null,
129
+ "metadata": {},
130
+ "outputs": [],
131
+ "source": [
132
+ "ln.File.filter().df()"
133
+ ]
134
+ },
135
+ {
136
+ "cell_type": "markdown",
137
+ "metadata": {},
138
+ "source": [
139
+ "## Permanent delete\n",
140
+ "\n",
141
+ "Calling `file.delete` on a trashed file triggers a permanent delete dialog. You can pass `permanent=True` to auto-confirm the deletion."
142
+ ]
143
+ },
144
+ {
145
+ "cell_type": "code",
146
+ "execution_count": null,
147
+ "metadata": {},
148
+ "outputs": [],
149
+ "source": [
150
+ "file.delete(permanent=True)"
151
+ ]
152
+ },
153
+ {
154
+ "cell_type": "markdown",
155
+ "metadata": {},
156
+ "source": [
157
+ "Now its gone in the database:"
158
+ ]
159
+ },
160
+ {
161
+ "cell_type": "code",
162
+ "execution_count": null,
163
+ "metadata": {},
164
+ "outputs": [],
165
+ "source": [
166
+ "ln.File.filter(visibility=None).df()"
167
+ ]
168
+ }
169
+ ],
170
+ "metadata": {
171
+ "kernelspec": {
172
+ "display_name": "py39",
173
+ "language": "python",
174
+ "name": "python3"
175
+ },
176
+ "language_info": {
177
+ "codemirror_mode": {
178
+ "name": "ipython",
179
+ "version": 3
180
+ },
181
+ "file_extension": ".py",
182
+ "mimetype": "text/x-python",
183
+ "name": "python",
184
+ "nbconvert_exporter": "python",
185
+ "pygments_lexer": "ipython3",
186
+ "version": "3.9.16"
187
+ }
188
+ },
189
+ "nbformat": 4,
190
+ "nbformat_minor": 2
191
+ }
@@ -4,7 +4,23 @@
4
4
  "cell_type": "markdown",
5
5
  "metadata": {},
6
6
  "source": [
7
- "# Custom validators"
7
+ "# How do I create custom validators?"
8
+ ]
9
+ },
10
+ {
11
+ "cell_type": "markdown",
12
+ "metadata": {},
13
+ "source": [
14
+ "Here, we will extend the basic [validation guide](/validate) to enforce more constraints with dictionary-like validators.\n",
15
+ "\n",
16
+ "This is similar to what is enforced by the CZ CELLxGENE data portal, see [here](https://github.com/chanzuckerberg/single-cell-curation)."
17
+ ]
18
+ },
19
+ {
20
+ "cell_type": "markdown",
21
+ "metadata": {},
22
+ "source": [
23
+ "## Setup"
8
24
  ]
9
25
  },
10
26
  {
@@ -26,9 +42,17 @@
26
42
  "import lnschema_bionty as lb\n",
27
43
  "from lamin_utils import logger\n",
28
44
  "\n",
45
+ "ln.settings.verbosity = \"success\"\n",
29
46
  "lb.settings.organism = \"human\""
30
47
  ]
31
48
  },
49
+ {
50
+ "cell_type": "markdown",
51
+ "metadata": {},
52
+ "source": [
53
+ "## Access data"
54
+ ]
55
+ },
32
56
  {
33
57
  "cell_type": "markdown",
34
58
  "metadata": {},
@@ -46,6 +70,13 @@
46
70
  "adata"
47
71
  ]
48
72
  },
73
+ {
74
+ "cell_type": "markdown",
75
+ "metadata": {},
76
+ "source": [
77
+ "## Define validation criteria"
78
+ ]
79
+ },
49
80
  {
50
81
  "cell_type": "markdown",
51
82
  "metadata": {},
@@ -70,6 +101,13 @@
70
101
  "}"
71
102
  ]
72
103
  },
104
+ {
105
+ "cell_type": "markdown",
106
+ "metadata": {},
107
+ "source": [
108
+ "## Run validation"
109
+ ]
110
+ },
73
111
  {
74
112
  "cell_type": "markdown",
75
113
  "metadata": {},
@@ -87,22 +125,22 @@
87
125
  "\n",
88
126
  "for slot, slot_validators in validators.items():\n",
89
127
  " for name, validator in slot_validators.items():\n",
90
- " # registry model\n",
91
- " model = validator.field.model\n",
128
+ " # access registry (a Django model)\n",
129
+ " registry = validator.field.model\n",
92
130
  "\n",
93
131
  " # validate index\n",
94
132
  " if name == \"index\":\n",
95
133
  " logger.print(f\"validating {slot}.{name}:\")\n",
96
- " index = adata.__getattribute__(slot).index\n",
97
- " validated = model.validate(index, validator)\n",
134
+ " index = getattr(adata, slot).index\n",
135
+ " validated = registry.validate(index, validator)\n",
98
136
  " if validated.sum() == len(index):\n",
99
- " logger.print(\"🎉 PASS\")\n",
137
+ " logger.success(\"index matches\")\n",
100
138
  "\n",
101
139
  " # validate columns\n",
102
140
  " else:\n",
103
141
  " logger.print(f\"\\nvalidating {slot}.{name}:\")\n",
104
142
  " # check if the column name exist\n",
105
- " if name not in adata.__getattribute__(slot).columns:\n",
143
+ " if name not in getattr(adata, slot).columns:\n",
106
144
  " logger.warning(f\"{slot}.{name} field is missing\")\n",
107
145
  " else:\n",
108
146
  " # check if a feature is registered for the column\n",
@@ -110,10 +148,17 @@
110
148
  " logger.warning(f\"feature '{name}' is not registered\")\n",
111
149
  " # validate categorical labels in a column\n",
112
150
  " else:\n",
113
- " labels = adata.__getattribute__(slot)[name]\n",
114
- " validated = model.validate(labels, validator)\n",
151
+ " labels = getattr(adata, slot)[name]\n",
152
+ " validated = registry.validate(labels, validator)\n",
115
153
  " if validated.sum() == len(labels):\n",
116
- " logger.print(\"🎉 PASS\")"
154
+ " logger.success(\"labels match\")"
155
+ ]
156
+ },
157
+ {
158
+ "cell_type": "markdown",
159
+ "metadata": {},
160
+ "source": [
161
+ "Delete test instance:"
117
162
  ]
118
163
  },
119
164
  {
@@ -0,0 +1,205 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# When do visibility of files and datasets change?\n",
8
+ "\n",
9
+ "Files and datasets in LaminDB have the following 3 levels if visibility:\n",
10
+ "- 0: \"default\", visible in the UI by default, returned from the query results\n",
11
+ "- 1: \"hidden\", excluded from the query results, notebook files (generated by `lamin save`) are default to be hidden\n",
12
+ "- 2: \"trash\", excluded from the query results, set with `.delete()`"
13
+ ]
14
+ },
15
+ {
16
+ "cell_type": "markdown",
17
+ "metadata": {},
18
+ "source": [
19
+ "## Setup"
20
+ ]
21
+ },
22
+ {
23
+ "cell_type": "code",
24
+ "execution_count": null,
25
+ "metadata": {},
26
+ "outputs": [],
27
+ "source": [
28
+ "!lamin init --storage test-visibility"
29
+ ]
30
+ },
31
+ {
32
+ "cell_type": "code",
33
+ "execution_count": null,
34
+ "metadata": {},
35
+ "outputs": [],
36
+ "source": [
37
+ "import lamindb as ln\n",
38
+ "import pandas as pd"
39
+ ]
40
+ },
41
+ {
42
+ "cell_type": "code",
43
+ "execution_count": null,
44
+ "metadata": {},
45
+ "outputs": [],
46
+ "source": [
47
+ "file = ln.File(pd.DataFrame({\"a\": [1, 2], \"b\": [3, 4]}), description=\"mydf\")\n",
48
+ "file.save()"
49
+ ]
50
+ },
51
+ {
52
+ "cell_type": "markdown",
53
+ "metadata": {},
54
+ "source": [
55
+ "New file has default visibility 0:"
56
+ ]
57
+ },
58
+ {
59
+ "cell_type": "code",
60
+ "execution_count": null,
61
+ "metadata": {},
62
+ "outputs": [],
63
+ "source": [
64
+ "assert file.visibility == 0"
65
+ ]
66
+ },
67
+ {
68
+ "cell_type": "markdown",
69
+ "metadata": {},
70
+ "source": [
71
+ "When you delete a file, its visibility is set to 2 (\"trash\"):"
72
+ ]
73
+ },
74
+ {
75
+ "cell_type": "code",
76
+ "execution_count": null,
77
+ "metadata": {},
78
+ "outputs": [],
79
+ "source": [
80
+ "file.delete()"
81
+ ]
82
+ },
83
+ {
84
+ "cell_type": "code",
85
+ "execution_count": null,
86
+ "metadata": {},
87
+ "outputs": [],
88
+ "source": [
89
+ "assert file.visibility == 2"
90
+ ]
91
+ },
92
+ {
93
+ "cell_type": "markdown",
94
+ "metadata": {},
95
+ "source": [
96
+ "Files in trash won't be returned from default queries:"
97
+ ]
98
+ },
99
+ {
100
+ "cell_type": "code",
101
+ "execution_count": null,
102
+ "metadata": {},
103
+ "outputs": [],
104
+ "source": [
105
+ "ln.File.filter(description=\"mydf\").all()"
106
+ ]
107
+ },
108
+ {
109
+ "cell_type": "markdown",
110
+ "metadata": {},
111
+ "source": [
112
+ "Unless you specify `visibility=None` to see all hidden and trashed files:"
113
+ ]
114
+ },
115
+ {
116
+ "cell_type": "code",
117
+ "execution_count": null,
118
+ "metadata": {},
119
+ "outputs": [],
120
+ "source": [
121
+ "ln.File.filter(description=\"mydf\", visibility=None).all()"
122
+ ]
123
+ },
124
+ {
125
+ "cell_type": "markdown",
126
+ "metadata": {},
127
+ "source": [
128
+ "You can restore a file from trash:"
129
+ ]
130
+ },
131
+ {
132
+ "cell_type": "code",
133
+ "execution_count": null,
134
+ "metadata": {},
135
+ "outputs": [],
136
+ "source": [
137
+ "file.restore()"
138
+ ]
139
+ },
140
+ {
141
+ "cell_type": "code",
142
+ "execution_count": null,
143
+ "metadata": {},
144
+ "outputs": [],
145
+ "source": [
146
+ "assert file.visibility == 0"
147
+ ]
148
+ },
149
+ {
150
+ "cell_type": "code",
151
+ "execution_count": null,
152
+ "metadata": {},
153
+ "outputs": [],
154
+ "source": [
155
+ "ln.File.filter(description=\"mydf\").all()"
156
+ ]
157
+ },
158
+ {
159
+ "cell_type": "markdown",
160
+ "metadata": {},
161
+ "source": [
162
+ "Delete test file and instance:"
163
+ ]
164
+ },
165
+ {
166
+ "cell_type": "code",
167
+ "execution_count": null,
168
+ "metadata": {},
169
+ "outputs": [],
170
+ "source": [
171
+ "file.delete(permanent=True)"
172
+ ]
173
+ },
174
+ {
175
+ "cell_type": "code",
176
+ "execution_count": null,
177
+ "metadata": {},
178
+ "outputs": [],
179
+ "source": [
180
+ "!lamin delete --force test-visibility"
181
+ ]
182
+ }
183
+ ],
184
+ "metadata": {
185
+ "kernelspec": {
186
+ "display_name": "py39",
187
+ "language": "python",
188
+ "name": "python3"
189
+ },
190
+ "language_info": {
191
+ "codemirror_mode": {
192
+ "name": "ipython",
193
+ "version": 3
194
+ },
195
+ "file_extension": ".py",
196
+ "mimetype": "text/x-python",
197
+ "name": "python",
198
+ "nbconvert_exporter": "python",
199
+ "pygments_lexer": "ipython3",
200
+ "version": "3.9.16"
201
+ }
202
+ },
203
+ "nbformat": 4,
204
+ "nbformat_minor": 2
205
+ }
@@ -11,4 +11,6 @@ faq/setup
11
11
  faq/import-schema
12
12
  faq/reference-field
13
13
  faq/validator
14
+ faq/visibility
15
+ faq/delete
14
16
  ```
@@ -244,7 +244,7 @@
244
244
  "metadata": {},
245
245
  "outputs": [],
246
246
  "source": [
247
- "file.delete(storage=True)"
247
+ "file.delete(permanent=True)"
248
248
  ]
249
249
  },
250
250
  {
@@ -435,7 +435,7 @@
435
435
  "metadata": {},
436
436
  "outputs": [],
437
437
  "source": [
438
- "file.delete(storage=True)"
438
+ "file.delete(permanent=True, storage=True)"
439
439
  ]
440
440
  },
441
441
  {
@@ -616,7 +616,7 @@
616
616
  "metadata": {},
617
617
  "outputs": [],
618
618
  "source": [
619
- "file.delete(storage=True)"
619
+ "file.delete(permanent=True, storage=True)"
620
620
  ]
621
621
  },
622
622
  {
@@ -140,7 +140,7 @@
140
140
  "metadata": {},
141
141
  "outputs": [],
142
142
  "source": [
143
- "pbmc68k_h5ad.delete(storage=True)"
143
+ "pbmc68k_h5ad.delete(permanent=True, storage=True)"
144
144
  ]
145
145
  },
146
146
  {
@@ -162,7 +162,7 @@
162
162
  "# Runs too long, should be tested elsewhere\n",
163
163
  "# pbmc68k_zarr = ln.File(pbmc68k, key=\"test-upload/pbmc68k.zarr\", format=\"zarr\")\n",
164
164
  "# ln.save(pbmc68k_zarr)\n",
165
- "# pbmc68k_zarr.delete(storage=True)"
165
+ "# pbmc68k_zarr.delete(permanent=True, storage=True)"
166
166
  ]
167
167
  },
168
168
  {
@@ -210,7 +210,7 @@
210
210
  "metadata": {},
211
211
  "outputs": [],
212
212
  "source": [
213
- "pbmc68k_h5ad.delete(storage=True)"
213
+ "pbmc68k_h5ad.delete(permanent=True, storage=True)"
214
214
  ]
215
215
  },
216
216
  {
@@ -232,7 +232,7 @@
232
232
  "# Runs too long, should be tested elsewhere\n",
233
233
  "# pbmc68k_zarr = ln.File(pbmc68k, name=\"pbmc68k.zarr\", format=\"zarr\")\n",
234
234
  "# ln.save(pbmc68k_zarr)\n",
235
- "# pbmc68k_zarr.delete(storage=True)"
235
+ "# pbmc68k_zarr.delete(permanent=True, storage=True)"
236
236
  ]
237
237
  },
238
238
  {
@@ -820,14 +820,18 @@
820
820
  "cell_type": "markdown",
821
821
  "metadata": {},
822
822
  "source": [
823
- "lamin save <notebook_path> # e.g., tutorial.ipynb"
823
+ "```\n",
824
+ "lamin save <notebook_path> # e.g., tutorial.ipynb\n",
825
+ "```"
824
826
  ]
825
827
  },
826
828
  {
827
829
  "cell_type": "markdown",
828
830
  "metadata": {},
829
831
  "source": [
830
- "This will enable you to query the report and source code via `transform.latest_report` and `transform.source_file` and see it in the hub, e.g., [here](https://lamin.ai/laminlabs/lamindata/record/core/Transform?id=NJvdsWWbJlZSz8)."
832
+ "This will enable you to query the report and source code via `transform.latest_report` and `transform.source_file` and see it in the hub, e.g., [here](https://lamin.ai/laminlabs/lamindata/record/core/Transform?id=NJvdsWWbJlZSz8).\n",
833
+ "\n",
834
+ "<img src=\"https://lamin-site-assets.s3.amazonaws.com/.lamindb/RGXj5wcAf7EAc6J8aBoM.png\" width=\"700px\">"
831
835
  ]
832
836
  },
833
837
  {