lamindb 1.9.0__tar.gz → 1.9.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 (279) hide show
  1. {lamindb-1.9.0 → lamindb-1.9.1}/PKG-INFO +2 -2
  2. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/keep-artifacts-local.ipynb +53 -8
  3. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/__init__.py +1 -1
  4. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/curators/core.py +6 -0
  5. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/artifact.py +4 -1
  6. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/transform.py +7 -0
  7. {lamindb-1.9.0 → lamindb-1.9.1}/pyproject.toml +1 -1
  8. {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_curators_general.py +32 -0
  9. {lamindb-1.9.0 → lamindb-1.9.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  10. {lamindb-1.9.0 → lamindb-1.9.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  11. {lamindb-1.9.0 → lamindb-1.9.1}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  12. {lamindb-1.9.0 → lamindb-1.9.1}/.github/ISSUE_TEMPLATE/usage_question.yml +0 -0
  13. {lamindb-1.9.0 → lamindb-1.9.1}/.github/workflows/build.yml +0 -0
  14. {lamindb-1.9.0 → lamindb-1.9.1}/.github/workflows/doc-changes.yml +0 -0
  15. {lamindb-1.9.0 → lamindb-1.9.1}/.gitignore +0 -0
  16. {lamindb-1.9.0 → lamindb-1.9.1}/.gitmodules +0 -0
  17. {lamindb-1.9.0 → lamindb-1.9.1}/.pre-commit-config.yaml +0 -0
  18. {lamindb-1.9.0 → lamindb-1.9.1}/CONTRIBUTING.md +0 -0
  19. {lamindb-1.9.0 → lamindb-1.9.1}/LICENSE +0 -0
  20. {lamindb-1.9.0 → lamindb-1.9.1}/README.md +0 -0
  21. {lamindb-1.9.0 → lamindb-1.9.1}/docs/api.md +0 -0
  22. {lamindb-1.9.0 → lamindb-1.9.1}/docs/arrays.ipynb +0 -0
  23. {lamindb-1.9.0 → lamindb-1.9.1}/docs/bio-registries.ipynb +0 -0
  24. {lamindb-1.9.0 → lamindb-1.9.1}/docs/bionty.md +0 -0
  25. {lamindb-1.9.0 → lamindb-1.9.1}/docs/changelog.md +0 -0
  26. {lamindb-1.9.0 → lamindb-1.9.1}/docs/clinicore.md +0 -0
  27. {lamindb-1.9.0 → lamindb-1.9.1}/docs/curate.ipynb +0 -0
  28. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/acid.ipynb +0 -0
  29. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/curate-any.ipynb +0 -0
  30. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/delete.ipynb +0 -0
  31. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/idempotency.ipynb +0 -0
  32. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/import-modules.ipynb +0 -0
  33. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/pydantic-pandera.ipynb +0 -0
  34. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/reference-field.ipynb +0 -0
  35. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/search.ipynb +0 -0
  36. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/setup.ipynb +0 -0
  37. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/symbol-mapping.ipynb +0 -0
  38. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/test_notebooks.py +0 -0
  39. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/track-run-inputs.ipynb +0 -0
  40. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/validate-fields.ipynb +0 -0
  41. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/visibility.ipynb +0 -0
  42. {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq.md +0 -0
  43. {lamindb-1.9.0 → lamindb-1.9.1}/docs/guide.md +0 -0
  44. {lamindb-1.9.0 → lamindb-1.9.1}/docs/includes/installation.md +0 -0
  45. {lamindb-1.9.0 → lamindb-1.9.1}/docs/index.md +0 -0
  46. {lamindb-1.9.0 → lamindb-1.9.1}/docs/lamindb.md +0 -0
  47. {lamindb-1.9.0 → lamindb-1.9.1}/docs/query-search.md +0 -0
  48. {lamindb-1.9.0 → lamindb-1.9.1}/docs/registries.ipynb +0 -0
  49. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/curate_anndata_flexible.py +0 -0
  50. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/curate_dataframe_flexible.py +0 -0
  51. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/curate_dataframe_minimal_errors.py +0 -0
  52. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/curate_mudata.py +0 -0
  53. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/curate_soma_experiment.py +0 -0
  54. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/curate_spatialdata.py +0 -0
  55. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/define_mini_immuno_features_labels.py +0 -0
  56. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/define_mini_immuno_schema_flexible.py +0 -0
  57. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/define_schema_anndata_ensembl_gene_ids_and_valid_features_in_obs.py +0 -0
  58. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/define_schema_spatialdata.py +0 -0
  59. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/define_valid_features.py +0 -0
  60. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/ingest_mini_immuno_datasets.py +0 -0
  61. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/run_track_and_finish.py +0 -0
  62. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/run_track_with_params.py +0 -0
  63. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/run_workflow.py +0 -0
  64. {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/synced_with_git.py +0 -0
  65. {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/add-replace-cache.ipynb +0 -0
  66. {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/anndata-accessor.ipynb +0 -0
  67. {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
  68. {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/test-files/iris.csv +0 -0
  69. {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/test-files/iris.data +0 -0
  70. {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/test-files/new_iris.csv +0 -0
  71. {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/test_notebooks.py +0 -0
  72. {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  73. {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/upload.ipynb +0 -0
  74. {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/vitessce.ipynb +0 -0
  75. {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage.md +0 -0
  76. {lamindb-1.9.0 → lamindb-1.9.1}/docs/test_notebooks.py +0 -0
  77. {lamindb-1.9.0 → lamindb-1.9.1}/docs/track.ipynb +0 -0
  78. {lamindb-1.9.0 → lamindb-1.9.1}/docs/transfer.ipynb +0 -0
  79. {lamindb-1.9.0 → lamindb-1.9.1}/docs/wetlab.md +0 -0
  80. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/_finish.py +0 -0
  81. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/_tracked.py +0 -0
  82. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/_view.py +0 -0
  83. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/base/__init__.py +0 -0
  84. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/base/fields.py +0 -0
  85. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/base/ids.py +0 -0
  86. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/base/types.py +0 -0
  87. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/base/uids.py +0 -0
  88. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/base/users.py +0 -0
  89. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/__init__.py +0 -0
  90. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/_compat.py +0 -0
  91. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/_context.py +0 -0
  92. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/_mapped_collection.py +0 -0
  93. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/_settings.py +0 -0
  94. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/_sync_git.py +0 -0
  95. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/_track_environment.py +0 -0
  96. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/datasets/__init__.py +0 -0
  97. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/datasets/_core.py +0 -0
  98. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/datasets/_fake.py +0 -0
  99. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/datasets/_small.py +0 -0
  100. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/datasets/mini_immuno.py +0 -0
  101. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/exceptions.py +0 -0
  102. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/loaders.py +0 -0
  103. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/__init__.py +0 -0
  104. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_anndata_accessor.py +0 -0
  105. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_backed_access.py +0 -0
  106. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_polars_lazy_df.py +0 -0
  107. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_pyarrow_dataset.py +0 -0
  108. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_tiledbsoma.py +0 -0
  109. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_valid_suffixes.py +0 -0
  110. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_zarr.py +0 -0
  111. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/objects.py +0 -0
  112. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/paths.py +0 -0
  113. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/subsettings/__init__.py +0 -0
  114. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/subsettings/_annotation_settings.py +0 -0
  115. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/subsettings/_creation_settings.py +0 -0
  116. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/types.py +0 -0
  117. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/curators/__init__.py +0 -0
  118. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/curators/_legacy.py +0 -0
  119. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/errors.py +0 -0
  120. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/__init__.py +0 -0
  121. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/cellxgene/__init__.py +0 -0
  122. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/cellxgene/_cellxgene.py +0 -0
  123. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/cellxgene/cxg_schema_versions.csv +0 -0
  124. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/fixtures/__init__.py +0 -0
  125. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/fixtures/sheets.py +0 -0
  126. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/schemas/__init__.py +0 -0
  127. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/schemas/_anndata.py +0 -0
  128. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/schemas/_simple.py +0 -0
  129. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/integrations/__init__.py +0 -0
  130. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/integrations/_vitessce.py +0 -0
  131. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0069_squashed.py +0 -0
  132. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0070_lamindbv1_migrate_data.py +0 -0
  133. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0071_lamindbv1_migrate_schema.py +0 -0
  134. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0072_remove_user__branch_code_remove_user_aux_and_more.py +0 -0
  135. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0073_merge_ourprojects.py +0 -0
  136. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0074_lamindbv1_part4.py +0 -0
  137. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0075_lamindbv1_part5.py +0 -0
  138. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0076_lamindbv1_part6.py +0 -0
  139. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0077_lamindbv1_part6b.py +0 -0
  140. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0078_lamindbv1_part6c.py +0 -0
  141. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0079_alter_rundata_value_json_and_more.py +0 -0
  142. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0080_polish_lamindbv1.py +0 -0
  143. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0081_revert_textfield_collection.py +0 -0
  144. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0082_alter_feature_dtype.py +0 -0
  145. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0083_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
  146. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0084_alter_schemafeature_feature_and_more.py +0 -0
  147. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0085_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
  148. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0086_various.py +0 -0
  149. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0087_rename__schemas_m2m_artifact_feature_sets_and_more.py +0 -0
  150. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0088_schema_components.py +0 -0
  151. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0089_subsequent_runs.py +0 -0
  152. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0090_runproject_project_runs.py +0 -0
  153. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0091_alter_featurevalue_options_alter_space_options_and_more.py +0 -0
  154. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0092_alter_artifactfeaturevalue_artifact_and_more.py +0 -0
  155. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0093_alter_schemacomponent_unique_together.py +0 -0
  156. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0094_writeloglock_writelogmigrationstate_and_more.py +0 -0
  157. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0095_remove_rundata_flextable.py +0 -0
  158. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0096_remove_artifact__param_values_and_more.py +0 -0
  159. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0097_remove_schemaparam_param_remove_paramvalue_param_and_more.py +0 -0
  160. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0098_alter_feature_type_alter_project_type_and_more.py +0 -0
  161. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0099_alter_writelog_seqno.py +0 -0
  162. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0100_branch_alter_artifact__branch_code_and_more.py +0 -0
  163. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0101_alter_artifact_hash_alter_feature_name_and_more.py +0 -0
  164. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0102_remove_writelog_branch_code_and_more.py +0 -0
  165. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0103_remove_writelog_migration_state_and_more.py +0 -0
  166. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0104_alter_branch_uid.py +0 -0
  167. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0105_record_unique_name.py +0 -0
  168. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0106_transfer_data_migration.py +0 -0
  169. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0107_add_schema_to_record.py +0 -0
  170. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0108_remove_record_sheet_remove_sheetproject_sheet_and_more.py +0 -0
  171. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0109_record_input_of_runs_alter_record_run_and_more.py +0 -0
  172. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0110_rename_values_artifacts_record_linked_artifacts.py +0 -0
  173. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0111_remove_record__sort_order.py +0 -0
  174. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0112_alter_recordartifact_feature_and_more.py +0 -0
  175. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0113_lower_case_branch_and_space_names.py +0 -0
  176. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0114_alter_run__status_code.py +0 -0
  177. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0115_alter_space_uid.py +0 -0
  178. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0115_squashed.py +0 -0
  179. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/__init__.py +0 -0
  180. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/__init__.py +0 -0
  181. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_describe.py +0 -0
  182. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_django.py +0 -0
  183. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_feature_manager.py +0 -0
  184. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_from_values.py +0 -0
  185. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_is_versioned.py +0 -0
  186. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_label_manager.py +0 -0
  187. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_relations.py +0 -0
  188. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/artifact_set.py +0 -0
  189. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/can_curate.py +0 -0
  190. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/collection.py +0 -0
  191. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/feature.py +0 -0
  192. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/has_parents.py +0 -0
  193. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/project.py +0 -0
  194. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/query_manager.py +0 -0
  195. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/query_set.py +0 -0
  196. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/record.py +0 -0
  197. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/run.py +0 -0
  198. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/save.py +0 -0
  199. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/schema.py +0 -0
  200. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/sqlrecord.py +0 -0
  201. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/storage.py +0 -0
  202. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/ulabel.py +0 -0
  203. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/py.typed +0 -0
  204. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/setup/__init__.py +0 -0
  205. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/setup/_switch.py +0 -0
  206. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/setup/core/__init__.py +0 -0
  207. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/setup/errors/__init__.py +0 -0
  208. {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/setup/types/__init__.py +0 -0
  209. {lamindb-1.9.0 → lamindb-1.9.1}/noxfile.py +0 -0
  210. {lamindb-1.9.0 → lamindb-1.9.1}/tests/conftest.py +0 -0
  211. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/_dataset_fixtures.py +0 -0
  212. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/conftest.py +0 -0
  213. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/notebooks/basic-r-notebook.Rmd.cleaned.html +0 -0
  214. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/notebooks/basic-r-notebook.Rmd.html +0 -0
  215. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -0
  216. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/notebooks/no-title.ipynb +0 -0
  217. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  218. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  219. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/duplicate1/script-to-test-versioning.py +0 -0
  220. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/duplicate2/script-to-test-versioning.py +0 -0
  221. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/duplicate3/script-to-test-versioning.py +0 -0
  222. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/duplicate4/script-to-test-versioning.py +0 -0
  223. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/duplicate5/script-to-test-versioning.py +0 -0
  224. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/script-to-test-filename-change.py +0 -0
  225. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/script-to-test-versioning.py +0 -0
  226. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_artifact.py +0 -0
  227. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_artifact_folders.py +0 -0
  228. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_can_curate.py +0 -0
  229. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_collection.py +0 -0
  230. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_data.py +0 -0
  231. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_db.py +0 -0
  232. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_delete.py +0 -0
  233. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_describe_and_df_calls.py +0 -0
  234. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_dtype.py +0 -0
  235. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_feature.py +0 -0
  236. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_feature_label_manager.py +0 -0
  237. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_from_values.py +0 -0
  238. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_has_parents.py +0 -0
  239. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_integrity.py +0 -0
  240. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_load.py +0 -0
  241. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_manager.py +0 -0
  242. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_models.py +0 -0
  243. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_notebooks.py +0 -0
  244. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_queryset.py +0 -0
  245. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_record.py +0 -0
  246. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_run.py +0 -0
  247. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_save.py +0 -0
  248. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_schema.py +0 -0
  249. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_search.py +0 -0
  250. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_settings.py +0 -0
  251. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_storage.py +0 -0
  252. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_track.py +0 -0
  253. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_tracked.py +0 -0
  254. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_transform.py +0 -0
  255. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_ulabel.py +0 -0
  256. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_versioning.py +0 -0
  257. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_view.py +0 -0
  258. {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_visibility.py +0 -0
  259. {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/conftest.py +0 -0
  260. {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_cat_managers.py +0 -0
  261. {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_curators_examples.py +0 -0
  262. {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_curators_multivalue.py +0 -0
  263. {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_cxg_curator.py +0 -0
  264. {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_dataframe_curators_accounting_example.py +0 -0
  265. {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_records.py +0 -0
  266. {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/conftest.py +0 -0
  267. {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/jwt_utils.py +0 -0
  268. {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/scripts/check_lamin_dev.py +0 -0
  269. {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/scripts/clean_lamin_dev.py +0 -0
  270. {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/scripts/setup_access.py +0 -0
  271. {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/scripts/setup_instance.py +0 -0
  272. {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/test_permissions.py +0 -0
  273. {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/conftest.py +0 -0
  274. {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/test_artifact_storage.py +0 -0
  275. {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/test_artifact_zarr.py +0 -0
  276. {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/test_cache.py +0 -0
  277. {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/test_storage_lifecycle.py +0 -0
  278. {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/test_streaming.py +0 -0
  279. {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/test_transfer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lamindb
3
- Version: 1.9.0
3
+ Version: 1.9.1
4
4
  Summary: A data framework for biology.
5
5
  Author-email: Lamin Labs <open-source@lamin.ai>
6
6
  Requires-Python: >=3.10,<3.14
@@ -11,7 +11,7 @@ Classifier: Programming Language :: Python :: 3.12
11
11
  Classifier: Programming Language :: Python :: 3.13
12
12
  Requires-Dist: lamin_utils==0.15.0
13
13
  Requires-Dist: lamin_cli==1.6.0
14
- Requires-Dist: lamindb_setup[aws]==1.8.2
14
+ Requires-Dist: lamindb_setup[aws]==1.8.3
15
15
  Requires-Dist: pyyaml
16
16
  Requires-Dist: pyarrow
17
17
  Requires-Dist: pandera>=0.24.0
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "outputs": [],
49
49
  "source": [
50
- "# !pip install 'lamindb[jupyter]'\n",
50
+ "# pip install 'lamindb[jupyter]'\n",
51
51
  "import lamindb as ln\n",
52
52
  "\n",
53
53
  "ln.track(\"l9lFf83aPwRc0000\")"
@@ -132,6 +132,23 @@
132
132
  "ln.Storage.df()"
133
133
  ]
134
134
  },
135
+ {
136
+ "cell_type": "markdown",
137
+ "metadata": {},
138
+ "source": [
139
+ "You can now set it as a local default storage location.\n",
140
+ "Next time you connect to the instance, this won't be necessary and the location will be automatically detected as the local default."
141
+ ]
142
+ },
143
+ {
144
+ "cell_type": "code",
145
+ "execution_count": null,
146
+ "metadata": {},
147
+ "outputs": [],
148
+ "source": [
149
+ "ln.settings.local_storage = \"./our_local_storage\""
150
+ ]
151
+ },
135
152
  {
136
153
  "cell_type": "markdown",
137
154
  "metadata": {},
@@ -336,7 +353,11 @@
336
353
  {
337
354
  "cell_type": "code",
338
355
  "execution_count": null,
339
- "metadata": {},
356
+ "metadata": {
357
+ "tags": [
358
+ "hide-output"
359
+ ]
360
+ },
340
361
  "outputs": [],
341
362
  "source": [
342
363
  "artifact.save(upload=True)"
@@ -352,7 +373,11 @@
352
373
  {
353
374
  "cell_type": "code",
354
375
  "execution_count": null,
355
- "metadata": {},
376
+ "metadata": {
377
+ "tags": [
378
+ "hide-output"
379
+ ]
380
+ },
356
381
  "outputs": [],
357
382
  "source": [
358
383
  "ln.settings.storage.root.view_tree()"
@@ -368,7 +393,11 @@
368
393
  {
369
394
  "cell_type": "code",
370
395
  "execution_count": null,
371
- "metadata": {},
396
+ "metadata": {
397
+ "tags": [
398
+ "hide-output"
399
+ ]
400
+ },
372
401
  "outputs": [],
373
402
  "source": [
374
403
  "assert artifact.path.exists()\n",
@@ -394,7 +423,11 @@
394
423
  {
395
424
  "cell_type": "code",
396
425
  "execution_count": null,
397
- "metadata": {},
426
+ "metadata": {
427
+ "tags": [
428
+ "hide-output"
429
+ ]
430
+ },
398
431
  "outputs": [],
399
432
  "source": [
400
433
  "filepath = ln.core.datasets.file_mini_csv()\n",
@@ -412,7 +445,11 @@
412
445
  {
413
446
  "cell_type": "code",
414
447
  "execution_count": null,
415
- "metadata": {},
448
+ "metadata": {
449
+ "tags": [
450
+ "hide-output"
451
+ ]
452
+ },
416
453
  "outputs": [],
417
454
  "source": [
418
455
  "ln.Artifact.df(include=\"storage__root\")"
@@ -435,7 +472,11 @@
435
472
  {
436
473
  "cell_type": "code",
437
474
  "execution_count": null,
438
- "metadata": {},
475
+ "metadata": {
476
+ "tags": [
477
+ "hide-output"
478
+ ]
479
+ },
439
480
  "outputs": [],
440
481
  "source": [
441
482
  "storage_record = ln.Storage.get(root__endswith=\"our_local_storage\")\n",
@@ -461,7 +502,11 @@
461
502
  {
462
503
  "cell_type": "code",
463
504
  "execution_count": null,
464
- "metadata": {},
505
+ "metadata": {
506
+ "tags": [
507
+ "hide-ouput"
508
+ ]
509
+ },
465
510
  "outputs": [],
466
511
  "source": [
467
512
  "artifact.delete(permanent=True)\n",
@@ -108,7 +108,7 @@ Backwards compatibility.
108
108
 
109
109
  # ruff: noqa: I001
110
110
  # denote a release candidate for 0.1.0 with 0.1rc1, 0.1a1, 0.1b1, etc.
111
- __version__ = "1.9.0"
111
+ __version__ = "1.9.1"
112
112
 
113
113
  import warnings
114
114
 
@@ -1236,6 +1236,9 @@ class CatVector:
1236
1236
  registry = self._field.field.model
1237
1237
  field_name = self._field.field.name
1238
1238
  non_validated_records: SQLRecordList[Any] = [] # type: ignore
1239
+ type_record = None
1240
+ if self._subtype_str != "" and "=" not in self._subtype_str:
1241
+ type_record = registry.get(name=self._subtype_str)
1239
1242
  if df is not None and registry == Feature:
1240
1243
  nonval_columns = Feature.inspect(df.columns, mute=True).non_validated
1241
1244
  non_validated_records = Feature.from_df(df.loc[:, nonval_columns])
@@ -1252,6 +1255,9 @@ class CatVector:
1252
1255
  init_kwargs = {field_name: value}
1253
1256
  if registry == Feature:
1254
1257
  init_kwargs["dtype"] = "cat" if dtype is None else dtype
1258
+ if type_record is not None:
1259
+ # if subtype_str is set, we need to set the type for new records
1260
+ init_kwargs["type"] = type_record
1255
1261
  non_validated_records.append(registry(**init_kwargs, **create_kwargs))
1256
1262
  if len(non_validated_records) > 0:
1257
1263
  ln_save(non_validated_records)
@@ -1382,7 +1382,10 @@ class Artifact(SQLRecord, IsVersioned, TracksRun, TracksUpdates):
1382
1382
  skip_check_exists = kwargs.pop("skip_check_exists", False)
1383
1383
  if "storage" in kwargs:
1384
1384
  storage = kwargs.pop("storage")
1385
- elif setup_settings.instance.keep_artifacts_local:
1385
+ elif (
1386
+ setup_settings.instance.keep_artifacts_local
1387
+ and setup_settings.instance._local_storage is not None
1388
+ ):
1386
1389
  storage = setup_settings.instance.local_storage.record
1387
1390
  else:
1388
1391
  storage = setup_settings.instance.storage.record
@@ -317,10 +317,17 @@ class Transform(SQLRecord, IsVersioned):
317
317
 
318
318
  def delete(self) -> None:
319
319
  """Delete."""
320
+ from .project import TransformProject
321
+
320
322
  # query all runs and delete their artifacts
321
323
  runs = Run.filter(transform=self)
322
324
  for run in runs:
323
325
  delete_run_artifacts(run)
326
+ # CASCADE doesn't do the job below because run_id might be protected through run__transform=self
327
+ # hence, proactively delete the labels
328
+ qs = TransformProject.filter(transform=self)
329
+ if qs.exists():
330
+ qs.delete()
324
331
  # at this point, all artifacts have been taken care of
325
332
  # we can now leverage CASCADE delete
326
333
  super().delete()
@@ -18,7 +18,7 @@ dependencies = [
18
18
  # Lamin PINNED packages
19
19
  "lamin_utils==0.15.0",
20
20
  "lamin_cli==1.6.0",
21
- "lamindb_setup[aws]==1.8.2",
21
+ "lamindb_setup[aws]==1.8.3",
22
22
  # others
23
23
  "pyyaml",
24
24
  "pyarrow",
@@ -580,3 +580,35 @@ def test_hash_index_feature(df):
580
580
  schema_index.delete()
581
581
  schema.delete()
582
582
  ln.Feature.filter().delete()
583
+
584
+
585
+ def test_add_new_from_subtype(df):
586
+ """Test that add_new_from works with subtypes."""
587
+ sample_type = ln.Record(name="SampleType", is_type=True).save()
588
+ ln.Record(name="Type A", type=sample_type).save()
589
+ schema = ln.Schema(
590
+ name="sample schema",
591
+ features=[
592
+ ln.Feature(name="sample_id", dtype="str").save(),
593
+ ln.Feature(name="sample_name", dtype="str").save(),
594
+ ln.Feature(name="sample_type", dtype="cat[Record[SampleType]]").save(),
595
+ ],
596
+ coerce_dtype=True,
597
+ ).save()
598
+
599
+ curator = ln.curators.DataFrameCurator(df, schema)
600
+ try:
601
+ curator.validate()
602
+ except ln.errors.ValidationError as error:
603
+ assert "1 term not validated in feature 'sample_type': 'Type B'" in str(error)
604
+
605
+ # add new from subtype
606
+ curator.cat.add_new_from("sample_type")
607
+ curator.validate()
608
+ assert sample_type.records.list("name") == ["Type A", "Type B"]
609
+
610
+ # clean up
611
+ schema.delete()
612
+ ln.Feature.filter().delete()
613
+ ln.Record.filter().update(type=None)
614
+ ln.Record.filter().delete()
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