lamindb 1.11.2__tar.gz → 1.11.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. {lamindb-1.11.2 → lamindb-1.11.3}/PKG-INFO +3 -3
  2. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/__init__.py +1 -1
  3. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/schema.py +17 -5
  4. {lamindb-1.11.2 → lamindb-1.11.3}/pyproject.toml +2 -2
  5. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_schema.py +6 -3
  6. {lamindb-1.11.2 → lamindb-1.11.3}/tests/curators/test_curators_examples.py +5 -5
  7. {lamindb-1.11.2 → lamindb-1.11.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  8. {lamindb-1.11.2 → lamindb-1.11.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  9. {lamindb-1.11.2 → lamindb-1.11.3}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
  10. {lamindb-1.11.2 → lamindb-1.11.3}/.github/ISSUE_TEMPLATE/usage_question.yml +0 -0
  11. {lamindb-1.11.2 → lamindb-1.11.3}/.github/workflows/build.yml +0 -0
  12. {lamindb-1.11.2 → lamindb-1.11.3}/.github/workflows/doc-changes.yml +0 -0
  13. {lamindb-1.11.2 → lamindb-1.11.3}/.gitignore +0 -0
  14. {lamindb-1.11.2 → lamindb-1.11.3}/.gitmodules +0 -0
  15. {lamindb-1.11.2 → lamindb-1.11.3}/.pre-commit-config.yaml +0 -0
  16. {lamindb-1.11.2 → lamindb-1.11.3}/CONTRIBUTING.md +0 -0
  17. {lamindb-1.11.2 → lamindb-1.11.3}/LICENSE +0 -0
  18. {lamindb-1.11.2 → lamindb-1.11.3}/README.md +0 -0
  19. {lamindb-1.11.2 → lamindb-1.11.3}/docs/api.md +0 -0
  20. {lamindb-1.11.2 → lamindb-1.11.3}/docs/arrays.ipynb +0 -0
  21. {lamindb-1.11.2 → lamindb-1.11.3}/docs/bio-registries.ipynb +0 -0
  22. {lamindb-1.11.2 → lamindb-1.11.3}/docs/bionty.md +0 -0
  23. {lamindb-1.11.2 → lamindb-1.11.3}/docs/changelog.md +0 -0
  24. {lamindb-1.11.2 → lamindb-1.11.3}/docs/clinicore.md +0 -0
  25. {lamindb-1.11.2 → lamindb-1.11.3}/docs/curate.ipynb +0 -0
  26. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/acid.ipynb +0 -0
  27. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/curate-any.ipynb +0 -0
  28. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/delete.ipynb +0 -0
  29. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/idempotency.ipynb +0 -0
  30. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/import-modules.ipynb +0 -0
  31. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/keep-artifacts-local.ipynb +0 -0
  32. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/pydantic-pandera.ipynb +0 -0
  33. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/reference-field.ipynb +0 -0
  34. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/search.ipynb +0 -0
  35. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/setup.ipynb +0 -0
  36. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/symbol-mapping.ipynb +0 -0
  37. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/test_notebooks.py +0 -0
  38. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/track-run-inputs.ipynb +0 -0
  39. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/validate-fields.ipynb +0 -0
  40. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq/visibility.ipynb +0 -0
  41. {lamindb-1.11.2 → lamindb-1.11.3}/docs/faq.md +0 -0
  42. {lamindb-1.11.2 → lamindb-1.11.3}/docs/guide.md +0 -0
  43. {lamindb-1.11.2 → lamindb-1.11.3}/docs/includes/installation.md +0 -0
  44. {lamindb-1.11.2 → lamindb-1.11.3}/docs/index.md +0 -0
  45. {lamindb-1.11.2 → lamindb-1.11.3}/docs/lamindb.md +0 -0
  46. {lamindb-1.11.2 → lamindb-1.11.3}/docs/query-search.md +0 -0
  47. {lamindb-1.11.2 → lamindb-1.11.3}/docs/registries.ipynb +0 -0
  48. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/curate_anndata_flexible.py +0 -0
  49. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/curate_anndata_uns.py +0 -0
  50. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/curate_dataframe_attrs.py +0 -0
  51. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/curate_dataframe_external_features.py +0 -0
  52. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/curate_dataframe_flexible.py +0 -0
  53. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/curate_dataframe_minimal_errors.py +0 -0
  54. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/curate_mudata.py +0 -0
  55. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/curate_soma_experiment.py +0 -0
  56. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/curate_spatialdata.py +0 -0
  57. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/define_mini_immuno_features_labels.py +0 -0
  58. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/define_mini_immuno_schema_flexible.py +0 -0
  59. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/define_schema_anndata_ensembl_gene_ids_and_valid_features_in_obs.py +0 -0
  60. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/define_schema_anndata_uns.py +0 -0
  61. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/define_schema_df_metadata.py +0 -0
  62. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/define_schema_spatialdata.py +0 -0
  63. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/define_valid_features.py +0 -0
  64. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/run_track_and_finish.py +0 -0
  65. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/run_track_with_params.py +0 -0
  66. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/run_workflow.py +0 -0
  67. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/save_mini_immuno_datasets.py +0 -0
  68. {lamindb-1.11.2 → lamindb-1.11.3}/docs/scripts/synced_with_git.py +0 -0
  69. {lamindb-1.11.2 → lamindb-1.11.3}/docs/storage/add-replace-cache.ipynb +0 -0
  70. {lamindb-1.11.2 → lamindb-1.11.3}/docs/storage/anndata-accessor.ipynb +0 -0
  71. {lamindb-1.11.2 → lamindb-1.11.3}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
  72. {lamindb-1.11.2 → lamindb-1.11.3}/docs/storage/test-files/iris.csv +0 -0
  73. {lamindb-1.11.2 → lamindb-1.11.3}/docs/storage/test-files/iris.data +0 -0
  74. {lamindb-1.11.2 → lamindb-1.11.3}/docs/storage/test-files/new_iris.csv +0 -0
  75. {lamindb-1.11.2 → lamindb-1.11.3}/docs/storage/test_notebooks.py +0 -0
  76. {lamindb-1.11.2 → lamindb-1.11.3}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  77. {lamindb-1.11.2 → lamindb-1.11.3}/docs/storage/upload.ipynb +0 -0
  78. {lamindb-1.11.2 → lamindb-1.11.3}/docs/storage/vitessce.ipynb +0 -0
  79. {lamindb-1.11.2 → lamindb-1.11.3}/docs/storage.md +0 -0
  80. {lamindb-1.11.2 → lamindb-1.11.3}/docs/test_notebooks.py +0 -0
  81. {lamindb-1.11.2 → lamindb-1.11.3}/docs/track.ipynb +0 -0
  82. {lamindb-1.11.2 → lamindb-1.11.3}/docs/transfer.ipynb +0 -0
  83. {lamindb-1.11.2 → lamindb-1.11.3}/docs/wetlab.md +0 -0
  84. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/_finish.py +0 -0
  85. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/_tracked.py +0 -0
  86. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/_view.py +0 -0
  87. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/base/__init__.py +0 -0
  88. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/base/dtypes.py +0 -0
  89. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/base/fields.py +0 -0
  90. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/base/ids.py +0 -0
  91. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/base/types.py +0 -0
  92. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/base/uids.py +0 -0
  93. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/base/users.py +0 -0
  94. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/__init__.py +0 -0
  95. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/_compat.py +0 -0
  96. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/_context.py +0 -0
  97. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/_mapped_collection.py +0 -0
  98. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/_settings.py +0 -0
  99. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/_sync_git.py +0 -0
  100. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/_track_environment.py +0 -0
  101. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/exceptions.py +0 -0
  102. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/loaders.py +0 -0
  103. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/storage/__init__.py +0 -0
  104. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/storage/_anndata_accessor.py +0 -0
  105. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/storage/_backed_access.py +0 -0
  106. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/storage/_polars_lazy_df.py +0 -0
  107. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/storage/_pyarrow_dataset.py +0 -0
  108. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/storage/_spatialdata_accessor.py +0 -0
  109. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/storage/_tiledbsoma.py +0 -0
  110. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/storage/_valid_suffixes.py +0 -0
  111. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/storage/_zarr.py +0 -0
  112. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/storage/objects.py +0 -0
  113. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/storage/paths.py +0 -0
  114. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/subsettings/__init__.py +0 -0
  115. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/subsettings/_annotation_settings.py +0 -0
  116. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/subsettings/_creation_settings.py +0 -0
  117. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/core/types.py +0 -0
  118. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/curators/__init__.py +0 -0
  119. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/curators/_legacy.py +0 -0
  120. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/curators/core.py +0 -0
  121. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/errors.py +0 -0
  122. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/__init__.py +0 -0
  123. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/cellxgene/__init__.py +0 -0
  124. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/cellxgene/_cellxgene.py +0 -0
  125. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/cellxgene/cellxgene_schema_versions.csv +0 -0
  126. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/croissant/__init__.py +0 -0
  127. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/croissant/mini_immuno.anndata.zarr_metadata.json +0 -0
  128. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/datasets/__init__.py +0 -0
  129. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/datasets/_core.py +0 -0
  130. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/datasets/_fake.py +0 -0
  131. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/datasets/_small.py +0 -0
  132. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/datasets/mini_immuno.py +0 -0
  133. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/fixtures/__init__.py +0 -0
  134. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/fixtures/sheets.py +0 -0
  135. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/schemas/__init__.py +0 -0
  136. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/schemas/_anndata.py +0 -0
  137. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/examples/schemas/_simple.py +0 -0
  138. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/integrations/__init__.py +0 -0
  139. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/integrations/_croissant.py +0 -0
  140. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/integrations/_vitessce.py +0 -0
  141. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0069_squashed.py +0 -0
  142. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0070_lamindbv1_migrate_data.py +0 -0
  143. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0071_lamindbv1_migrate_schema.py +0 -0
  144. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0072_remove_user__branch_code_remove_user_aux_and_more.py +0 -0
  145. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0073_merge_ourprojects.py +0 -0
  146. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0074_lamindbv1_part4.py +0 -0
  147. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0075_lamindbv1_part5.py +0 -0
  148. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0076_lamindbv1_part6.py +0 -0
  149. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0077_lamindbv1_part6b.py +0 -0
  150. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0078_lamindbv1_part6c.py +0 -0
  151. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0079_alter_rundata_value_json_and_more.py +0 -0
  152. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0080_polish_lamindbv1.py +0 -0
  153. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0081_revert_textfield_collection.py +0 -0
  154. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0082_alter_feature_dtype.py +0 -0
  155. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0083_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
  156. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0084_alter_schemafeature_feature_and_more.py +0 -0
  157. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0085_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
  158. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0086_various.py +0 -0
  159. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0087_rename__schemas_m2m_artifact_feature_sets_and_more.py +0 -0
  160. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0088_schema_components.py +0 -0
  161. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0089_subsequent_runs.py +0 -0
  162. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0090_runproject_project_runs.py +0 -0
  163. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0091_alter_featurevalue_options_alter_space_options_and_more.py +0 -0
  164. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0092_alter_artifactfeaturevalue_artifact_and_more.py +0 -0
  165. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0093_alter_schemacomponent_unique_together.py +0 -0
  166. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0094_writeloglock_writelogmigrationstate_and_more.py +0 -0
  167. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0095_remove_rundata_flextable.py +0 -0
  168. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0096_remove_artifact__param_values_and_more.py +0 -0
  169. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0097_remove_schemaparam_param_remove_paramvalue_param_and_more.py +0 -0
  170. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0098_alter_feature_type_alter_project_type_and_more.py +0 -0
  171. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0099_alter_writelog_seqno.py +0 -0
  172. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0100_branch_alter_artifact__branch_code_and_more.py +0 -0
  173. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0101_alter_artifact_hash_alter_feature_name_and_more.py +0 -0
  174. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0102_remove_writelog_branch_code_and_more.py +0 -0
  175. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0103_remove_writelog_migration_state_and_more.py +0 -0
  176. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0104_alter_branch_uid.py +0 -0
  177. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0105_record_unique_name.py +0 -0
  178. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0106_transfer_data_migration.py +0 -0
  179. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0107_add_schema_to_record.py +0 -0
  180. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0108_remove_record_sheet_remove_sheetproject_sheet_and_more.py +0 -0
  181. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0109_record_input_of_runs_alter_record_run_and_more.py +0 -0
  182. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0110_rename_values_artifacts_record_linked_artifacts.py +0 -0
  183. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0111_remove_record__sort_order.py +0 -0
  184. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0112_alter_recordartifact_feature_and_more.py +0 -0
  185. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0113_lower_case_branch_and_space_names.py +0 -0
  186. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0114_alter_run__status_code.py +0 -0
  187. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0115_alter_space_uid.py +0 -0
  188. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0116_remove_artifact_unique_artifact_storage_key_hash_and_more.py +0 -0
  189. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0117_fix_artifact_storage_hash_unique_constraints.py +0 -0
  190. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0118_alter_recordproject_value_projectrecord.py +0 -0
  191. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0119_rename_records_project_linked_in_records.py +0 -0
  192. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0119_squashed.py +0 -0
  193. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0120_add_record_fk_constraint.py +0 -0
  194. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/0121_recorduser.py +0 -0
  195. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/migrations/__init__.py +0 -0
  196. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/__init__.py +0 -0
  197. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/_describe.py +0 -0
  198. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/_django.py +0 -0
  199. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/_feature_manager.py +0 -0
  200. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/_from_values.py +0 -0
  201. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/_is_versioned.py +0 -0
  202. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/_label_manager.py +0 -0
  203. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/_relations.py +0 -0
  204. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/artifact.py +0 -0
  205. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/artifact_set.py +0 -0
  206. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/can_curate.py +0 -0
  207. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/collection.py +0 -0
  208. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/feature.py +0 -0
  209. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/has_parents.py +0 -0
  210. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/project.py +0 -0
  211. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/query_manager.py +0 -0
  212. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/query_set.py +0 -0
  213. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/record.py +0 -0
  214. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/run.py +0 -0
  215. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/save.py +0 -0
  216. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/sqlrecord.py +0 -0
  217. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/storage.py +0 -0
  218. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/transform.py +0 -0
  219. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/models/ulabel.py +0 -0
  220. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/py.typed +0 -0
  221. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/setup/__init__.py +0 -0
  222. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/setup/_switch.py +0 -0
  223. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/setup/core/__init__.py +0 -0
  224. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/setup/errors/__init__.py +0 -0
  225. {lamindb-1.11.2 → lamindb-1.11.3}/lamindb/setup/types/__init__.py +0 -0
  226. {lamindb-1.11.2 → lamindb-1.11.3}/noxfile.py +0 -0
  227. {lamindb-1.11.2 → lamindb-1.11.3}/tests/conftest.py +0 -0
  228. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/_dataset_fixtures.py +0 -0
  229. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/conftest.py +0 -0
  230. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/notebooks/basic-r-notebook.Rmd.cleaned.html +0 -0
  231. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/notebooks/basic-r-notebook.Rmd.html +0 -0
  232. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -0
  233. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/notebooks/no-title.ipynb +0 -0
  234. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  235. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  236. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/scripts/duplicate1/script-to-test-versioning.py +0 -0
  237. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/scripts/duplicate2/script-to-test-versioning.py +0 -0
  238. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/scripts/duplicate3/script-to-test-versioning.py +0 -0
  239. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/scripts/duplicate4/script-to-test-versioning.py +0 -0
  240. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/scripts/duplicate5/script-to-test-versioning.py +0 -0
  241. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/scripts/script-to-test-filename-change.py +0 -0
  242. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/scripts/script-to-test-versioning.py +0 -0
  243. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_artifact.py +0 -0
  244. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_artifact_folders.py +0 -0
  245. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_can_curate.py +0 -0
  246. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_collection.py +0 -0
  247. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_data.py +0 -0
  248. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_db.py +0 -0
  249. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_delete.py +0 -0
  250. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_describe_and_df_calls.py +0 -0
  251. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_dtype.py +0 -0
  252. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_feature.py +0 -0
  253. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_feature_label_manager.py +0 -0
  254. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_from_values.py +0 -0
  255. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_has_parents.py +0 -0
  256. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_integrity.py +0 -0
  257. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_load.py +0 -0
  258. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_manager.py +0 -0
  259. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_models.py +0 -0
  260. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_notebooks.py +0 -0
  261. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_queryset.py +0 -0
  262. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_run.py +0 -0
  263. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_save.py +0 -0
  264. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_search.py +0 -0
  265. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_settings.py +0 -0
  266. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_sqlrecord.py +0 -0
  267. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_storage.py +0 -0
  268. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_track.py +0 -0
  269. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_tracked.py +0 -0
  270. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_transform.py +0 -0
  271. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_ulabel.py +0 -0
  272. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_versioning.py +0 -0
  273. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_view.py +0 -0
  274. {lamindb-1.11.2 → lamindb-1.11.3}/tests/core/test_visibility.py +0 -0
  275. {lamindb-1.11.2 → lamindb-1.11.3}/tests/curators/conftest.py +0 -0
  276. {lamindb-1.11.2 → lamindb-1.11.3}/tests/curators/test_cat_managers.py +0 -0
  277. {lamindb-1.11.2 → lamindb-1.11.3}/tests/curators/test_curate_from_croissant.py +0 -0
  278. {lamindb-1.11.2 → lamindb-1.11.3}/tests/curators/test_curators_general.py +0 -0
  279. {lamindb-1.11.2 → lamindb-1.11.3}/tests/curators/test_curators_multivalue.py +0 -0
  280. {lamindb-1.11.2 → lamindb-1.11.3}/tests/curators/test_cxg_curator.py +0 -0
  281. {lamindb-1.11.2 → lamindb-1.11.3}/tests/curators/test_dataframe_curators_accounting_example.py +0 -0
  282. {lamindb-1.11.2 → lamindb-1.11.3}/tests/curators/test_records.py +0 -0
  283. {lamindb-1.11.2 → lamindb-1.11.3}/tests/permissions/conftest.py +0 -0
  284. {lamindb-1.11.2 → lamindb-1.11.3}/tests/permissions/jwt_utils.py +0 -0
  285. {lamindb-1.11.2 → lamindb-1.11.3}/tests/permissions/scripts/check_lamin_dev.py +0 -0
  286. {lamindb-1.11.2 → lamindb-1.11.3}/tests/permissions/scripts/clean_lamin_dev.py +0 -0
  287. {lamindb-1.11.2 → lamindb-1.11.3}/tests/permissions/scripts/setup_access.py +0 -0
  288. {lamindb-1.11.2 → lamindb-1.11.3}/tests/permissions/scripts/setup_instance.py +0 -0
  289. {lamindb-1.11.2 → lamindb-1.11.3}/tests/permissions/test_permissions.py +0 -0
  290. {lamindb-1.11.2 → lamindb-1.11.3}/tests/storage/conftest.py +0 -0
  291. {lamindb-1.11.2 → lamindb-1.11.3}/tests/storage/test_artifact_storage.py +0 -0
  292. {lamindb-1.11.2 → lamindb-1.11.3}/tests/storage/test_artifact_zarr.py +0 -0
  293. {lamindb-1.11.2 → lamindb-1.11.3}/tests/storage/test_cache.py +0 -0
  294. {lamindb-1.11.2 → lamindb-1.11.3}/tests/storage/test_connect_reconnect.py +0 -0
  295. {lamindb-1.11.2 → lamindb-1.11.3}/tests/storage/test_storage_lifecycle.py +0 -0
  296. {lamindb-1.11.2 → lamindb-1.11.3}/tests/storage/test_streaming.py +0 -0
  297. {lamindb-1.11.2 → lamindb-1.11.3}/tests/storage/test_transfer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lamindb
3
- Version: 1.11.2
3
+ Version: 1.11.3
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
@@ -10,8 +10,8 @@ Classifier: Programming Language :: Python :: 3.11
10
10
  Classifier: Programming Language :: Python :: 3.12
11
11
  Classifier: Programming Language :: Python :: 3.13
12
12
  Requires-Dist: lamin_utils==0.15.0
13
- Requires-Dist: lamin_cli==1.7.1
14
- Requires-Dist: lamindb_setup[aws]==1.10.1
13
+ Requires-Dist: lamin_cli==1.7.2
14
+ Requires-Dist: lamindb_setup[aws]==1.10.2
15
15
  Requires-Dist: bionty>=1.7a1
16
16
  Requires-Dist: wetlab>=1.5a1
17
17
  Requires-Dist: nbproject==0.11.1
@@ -114,7 +114,7 @@ Backwards compatibility.
114
114
 
115
115
  # ruff: noqa: I001
116
116
  # denote a release candidate for 0.1.0 with 0.1rc1, 0.1a1, 0.1b1, etc.
117
- __version__ = "1.11.2"
117
+ __version__ = "1.11.3"
118
118
 
119
119
  import warnings as _warnings
120
120
 
@@ -258,6 +258,12 @@ class Schema(SQLRecord, CanCurate, TracksRun):
258
258
 
259
259
  Composite schemas can have multiple slots, e.g., for an `AnnData`, one schema for slot `obs` and another one for `var`.
260
260
 
261
+ To create a schema, one of the following must be passed:
262
+ - `features`: A list of :class:`~lamindb.Feature` records, e.g., `[Feature(...), Feature(...)]`.
263
+ - `itype`: A registry field, e.g., `Feature` or `bionty.Gene.ensembl_gene_id`, to constrain feature identifiers to be valid identifiers of the registry.
264
+ - `slots`: A dictionary mapping slot names to :class:`~lamindb.Schema` objects, e.g., `{"obs": Schema(...), "var": Schema(...), "obsm": Schema(...)}`.
265
+ - `is_type=True`: To create a schema type, e.g., `ln.Schema(name="ProteinPanel", is_type=True)`.
266
+
261
267
  Args:
262
268
  features: `list[SQLRecord] | list[tuple[Feature, dict]] | None = None` Feature
263
269
  records, e.g., `[Feature(...), Feature(...)]` or Features with their config, e.g., `[Feature(...).with_config(optional=True)]`.
@@ -565,6 +571,10 @@ class Schema(SQLRecord, CanCurate, TracksRun):
565
571
  coerce_dtype=coerce_dtype,
566
572
  n_features=n_features,
567
573
  )
574
+ if not features and not slots and not is_type and not itype:
575
+ raise InvalidArgument(
576
+ "Please pass features or slots or itype or set is_type=True"
577
+ )
568
578
  if not is_type:
569
579
  schema = (
570
580
  Schema.objects.using(using)
@@ -1211,12 +1221,14 @@ def get_type_str(dtype: str | None) -> str | None:
1211
1221
  return type_str
1212
1222
 
1213
1223
 
1214
- def _get_related_name(self: Schema) -> str:
1224
+ def _get_related_name(self: Schema) -> str | None:
1215
1225
  related_models = dict_related_model_to_related_name(self, instance=self._state.db)
1216
- related_name = related_models.get(
1217
- parse_cat_dtype(self.itype, is_itype=True)["registry_str"]
1218
- )
1219
- return related_name
1226
+ if self.itype:
1227
+ related_name = related_models.get(
1228
+ parse_cat_dtype(self.itype, is_itype=True)["registry_str"]
1229
+ )
1230
+ return related_name
1231
+ return None
1220
1232
 
1221
1233
 
1222
1234
  class SchemaFeature(BaseSQLRecord, IsLink):
@@ -17,8 +17,8 @@ classifiers = [
17
17
  dependencies = [
18
18
  # Lamin PINNED packages
19
19
  "lamin_utils==0.15.0",
20
- "lamin_cli==1.7.1",
21
- "lamindb_setup[aws]==1.10.1",
20
+ "lamin_cli==1.7.2",
21
+ "lamindb_setup[aws]==1.10.2",
22
22
  # Lamin OPTIONAL packages, included to avoid users forgetting about passing extras,
23
23
  # which has happened very often these past years
24
24
  # these are small packages with few dependencies
@@ -3,7 +3,7 @@ import lamindb as ln
3
3
  import pandas as pd
4
4
  import pytest
5
5
  from django.db.utils import IntegrityError
6
- from lamindb.errors import FieldValidationError, ValidationError
6
+ from lamindb.errors import FieldValidationError, InvalidArgument, ValidationError
7
7
  from lamindb.models.schema import get_related_name, validate_features
8
8
 
9
9
 
@@ -548,7 +548,7 @@ def test_schema_already_saved_aux():
548
548
 
549
549
 
550
550
  def test_schema_not_saved_describe():
551
- schema = ln.Schema()
551
+ schema = ln.Schema(name="NotSavedSchema", is_type=True)
552
552
  with pytest.raises(ValueError) as e:
553
553
  schema.describe()
554
554
  assert "Schema must be saved before describing" in str(e.value)
@@ -561,7 +561,10 @@ def test_schema_is_type():
561
561
  assert BioSample.hash is None
562
562
  assert BioSample.type == Sample
563
563
  assert BioSample.is_type
564
-
564
+ # create a schema without any features or slots or itype or is_type=True
565
+ with pytest.raises(InvalidArgument) as e:
566
+ ln.Schema(name="TechSample", type=Sample)
567
+ assert "Please pass features or slots or itype or set is_type=True" in str(e.value)
565
568
  # clean up
566
569
  BioSample.delete(permanent=True)
567
570
  Sample.delete(permanent=True)
@@ -941,14 +941,15 @@ def test_tiledbsoma_curator(clean_soma_files):
941
941
  )
942
942
 
943
943
  # Test with invalid dataset
944
- with pytest.raises(ln.errors.InvalidArgument):
944
+ with pytest.raises(ln.errors.InvalidArgument) as e:
945
945
  ln.curators.TiledbsomaExperimentCurator(adata, soma_schema)
946
+ assert "dataset must be SOMAExperiment-like." in str(e.value)
946
947
 
947
948
  # Test with invalid schema
948
- min_schema = ln.Schema(features=[]).save()
949
949
  with tiledbsoma.Experiment.open("small_dataset.tiledbsoma") as experiment:
950
- with pytest.raises(ln.errors.InvalidArgument):
951
- ln.curators.TiledbsomaExperimentCurator(experiment, schema=min_schema)
950
+ with pytest.raises(ln.errors.InvalidArgument) as e:
951
+ ln.curators.TiledbsomaExperimentCurator(experiment, schema=var_schema)
952
+ assert "Schema otype must be 'tiledbsoma'." in str(e.value)
952
953
 
953
954
  with tiledbsoma.Experiment.open("small_dataset.tiledbsoma") as experiment:
954
955
  curator = ln.curators.TiledbsomaExperimentCurator(experiment, soma_schema)
@@ -994,7 +995,6 @@ def test_tiledbsoma_curator(clean_soma_files):
994
995
  # Clean up
995
996
  shutil.rmtree(typo_soma_path)
996
997
  artifact.delete(permanent=True)
997
- min_schema.delete(permanent=True)
998
998
  soma_schema.delete(permanent=True)
999
999
  var_schema.delete(permanent=True)
1000
1000
  obs_schema.delete(permanent=True)
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