lamindb 0.69.7__tar.gz → 0.69.8__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 (398) hide show
  1. {lamindb-0.69.7 → lamindb-0.69.8}/PKG-INFO +4 -4
  2. {lamindb-0.69.7 → lamindb-0.69.8}/docs/changelog.md +5 -1
  3. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/__init__.py +1 -1
  4. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_annotate.py +46 -42
  5. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_artifact.py +63 -64
  6. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_can_validate.py +29 -25
  7. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_collection.py +28 -32
  8. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_feature.py +10 -8
  9. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_feature_set.py +17 -15
  10. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_filter.py +2 -2
  11. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_finish.py +14 -8
  12. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_from_values.py +13 -9
  13. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_is_versioned.py +2 -2
  14. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_parents.py +16 -11
  15. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_query_manager.py +8 -4
  16. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_query_set.py +15 -15
  17. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_registry.py +36 -34
  18. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_run.py +3 -5
  19. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_save.py +13 -11
  20. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_transform.py +9 -11
  21. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_ulabel.py +11 -9
  22. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_view.py +3 -2
  23. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/_data.py +21 -17
  24. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/_feature_manager.py +17 -12
  25. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/_label_manager.py +13 -9
  26. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/_mapped_collection.py +16 -12
  27. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/_run_context.py +21 -17
  28. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/_settings.py +19 -16
  29. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/_sync_git.py +4 -5
  30. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/_track_environment.py +6 -1
  31. lamindb-0.69.8/lamindb/core/_transform_settings.py +9 -0
  32. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/_view_tree.py +2 -1
  33. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/datasets/_core.py +3 -2
  34. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/datasets/_fake.py +2 -2
  35. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/storage/_anndata_sizes.py +2 -0
  36. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/storage/_backed_access.py +17 -12
  37. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/storage/_zarr.py +7 -3
  38. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/storage/file.py +10 -6
  39. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/storage/object.py +7 -3
  40. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/versioning.py +12 -8
  41. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/integrations/_vitessce.py +2 -0
  42. {lamindb-0.69.7 → lamindb-0.69.8}/pyproject.toml +3 -3
  43. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/bionty/__init__.py +1 -1
  44. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/pyproject.toml +1 -1
  45. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/changelog.md +3 -0
  46. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +21 -5
  47. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +51 -5
  48. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
  49. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +6 -2
  50. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/django.py +11 -2
  51. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/upath.py +30 -3
  52. lamindb-0.69.8/sub/lnschema-bionty/.pre-commit-config.yaml +56 -0
  53. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/docs/changelog.md +1 -0
  54. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/__init__.py +2 -2
  55. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/_bionty.py +28 -14
  56. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/core/__init__.py +2 -1
  57. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/core/_bionty.py +5 -3
  58. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/core/_settings.py +8 -4
  59. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +108 -36
  60. lamindb-0.69.8/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +1156 -0
  61. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +3 -1
  62. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +3 -1
  63. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +3 -1
  64. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +21 -7
  65. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +9 -3
  66. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0008_remove_gene_hgnc_id_remove_gene_mgi_id_and_more.py +12 -4
  67. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +3 -1
  68. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0010_alter_species_name.py +3 -1
  69. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0011_cellline_datasets_cellmarker_datasets_and_more.py +45 -15
  70. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0012_gene_stable_id.py +3 -1
  71. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0014_ethnicity_developmentalstage.py +24 -8
  72. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0015_migrate_to_integer_pks.py +27 -7
  73. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0016_export_legacy_data.py +3 -1
  74. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0017_import_legacy_data.py +9 -3
  75. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0018_organism_rename_species_biontysource_organism_and_more.py +15 -5
  76. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0019_rename_taxon_id_organism_ontology_id_and_more.py +12 -4
  77. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/models.py +364 -190
  78. lamindb-0.69.8/sub/lnschema-bionty/pyproject.toml +140 -0
  79. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/.github/workflows/build.yml +3 -3
  80. lamindb-0.69.8/sub/lnschema-core/.pre-commit-config.yaml +56 -0
  81. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/CHANGELOG.md +2 -0
  82. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/__init__.py +2 -2
  83. lamindb-0.69.8/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +445 -0
  84. lamindb-0.69.8/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +923 -0
  85. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +3 -1
  86. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +6 -2
  87. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +16 -4
  88. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +3 -1
  89. lamindb-0.69.8/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +118 -0
  90. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +3 -1
  91. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +6 -2
  92. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +42 -9
  93. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +24 -7
  94. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +31 -6
  95. lamindb-0.69.8/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +244 -0
  96. lamindb-0.69.8/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +117 -0
  97. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0015_file_initial_version_file_version.py +9 -2
  98. lamindb-0.69.8/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +160 -0
  99. lamindb-0.69.8/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +33 -0
  100. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0019_dataset_reference_dataset_reference_type_and_more.py +15 -5
  101. lamindb-0.69.8/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +62 -0
  102. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0021_dataset_storage_alter_dataset_file.py +12 -2
  103. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0022_migrate_to_integer_pks.py +33 -9
  104. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0023_export_legacy_data.py +3 -1
  105. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0024_import_legacy_data.py +6 -2
  106. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0031_rename_file_to_artifact.py +63 -12
  107. lamindb-0.69.8/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +27 -0
  108. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0035_remove_artifact_initial_version_and_more.py +3 -1
  109. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0036_storage_description.py +3 -1
  110. lamindb-0.69.8/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +89 -0
  111. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +23 -4
  112. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +10 -2
  113. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +30 -10
  114. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +4 -1
  115. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/models.py +266 -186
  116. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/types.py +4 -2
  117. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/noxfile.py +1 -1
  118. lamindb-0.69.8/sub/lnschema-core/pyproject.toml +138 -0
  119. lamindb-0.69.7/lamindb/core/_transform_settings.py +0 -9
  120. lamindb-0.69.7/sub/lnschema-bionty/.pre-commit-config.yaml +0 -71
  121. lamindb-0.69.7/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +0 -521
  122. lamindb-0.69.7/sub/lnschema-bionty/pyproject.toml +0 -45
  123. lamindb-0.69.7/sub/lnschema-core/.pre-commit-config.yaml +0 -71
  124. lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -220
  125. lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +0 -446
  126. lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -65
  127. lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -135
  128. lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -77
  129. lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +0 -91
  130. lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +0 -23
  131. lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +0 -38
  132. lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +0 -18
  133. lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -57
  134. lamindb-0.69.7/sub/lnschema-core/pyproject.toml +0 -45
  135. {lamindb-0.69.7 → lamindb-0.69.8}/.github/workflows/build.yml +0 -0
  136. {lamindb-0.69.7 → lamindb-0.69.8}/.github/workflows/latest-changes.jinja2 +0 -0
  137. {lamindb-0.69.7 → lamindb-0.69.8}/.github/workflows/latest-changes.yml +0 -0
  138. {lamindb-0.69.7 → lamindb-0.69.8}/.gitignore +0 -0
  139. {lamindb-0.69.7 → lamindb-0.69.8}/.gitmodules +0 -0
  140. {lamindb-0.69.7 → lamindb-0.69.8}/.pre-commit-config.yaml +0 -0
  141. {lamindb-0.69.7 → lamindb-0.69.8}/LICENSE +0 -0
  142. {lamindb-0.69.7 → lamindb-0.69.8}/README.md +0 -0
  143. {lamindb-0.69.7 → lamindb-0.69.8}/docs/annotate-for-developers.ipynb +0 -0
  144. {lamindb-0.69.7 → lamindb-0.69.8}/docs/annotate.ipynb +0 -0
  145. {lamindb-0.69.7 → lamindb-0.69.8}/docs/bio-registries.ipynb +0 -0
  146. {lamindb-0.69.7 → lamindb-0.69.8}/docs/bionty-base.md +0 -0
  147. {lamindb-0.69.7 → lamindb-0.69.8}/docs/bionty.md +0 -0
  148. {lamindb-0.69.7 → lamindb-0.69.8}/docs/can-validate.ipynb +0 -0
  149. {lamindb-0.69.7 → lamindb-0.69.8}/docs/data.ipynb +0 -0
  150. {lamindb-0.69.7 → lamindb-0.69.8}/docs/faq/acid.ipynb +0 -0
  151. {lamindb-0.69.7 → lamindb-0.69.8}/docs/faq/delete.ipynb +0 -0
  152. {lamindb-0.69.7 → lamindb-0.69.8}/docs/faq/idempotency.ipynb +0 -0
  153. {lamindb-0.69.7 → lamindb-0.69.8}/docs/faq/import-schema.ipynb +0 -0
  154. {lamindb-0.69.7 → lamindb-0.69.8}/docs/faq/key.ipynb +0 -0
  155. {lamindb-0.69.7 → lamindb-0.69.8}/docs/faq/reference-field.ipynb +0 -0
  156. {lamindb-0.69.7 → lamindb-0.69.8}/docs/faq/setup.ipynb +0 -0
  157. {lamindb-0.69.7 → lamindb-0.69.8}/docs/faq/test_notebooks.py +0 -0
  158. {lamindb-0.69.7 → lamindb-0.69.8}/docs/faq/track-run-inputs.ipynb +0 -0
  159. {lamindb-0.69.7 → lamindb-0.69.8}/docs/faq/visibility.ipynb +0 -0
  160. {lamindb-0.69.7 → lamindb-0.69.8}/docs/faq.md +0 -0
  161. {lamindb-0.69.7 → lamindb-0.69.8}/docs/features-lamindb.md +0 -0
  162. {lamindb-0.69.7 → lamindb-0.69.8}/docs/features-laminhub.md +0 -0
  163. {lamindb-0.69.7 → lamindb-0.69.8}/docs/guide.md +0 -0
  164. {lamindb-0.69.7 → lamindb-0.69.8}/docs/index.md +0 -0
  165. {lamindb-0.69.7 → lamindb-0.69.8}/docs/installation.md +0 -0
  166. {lamindb-0.69.7 → lamindb-0.69.8}/docs/introduction.ipynb +0 -0
  167. {lamindb-0.69.7 → lamindb-0.69.8}/docs/lamin-utils.md +0 -0
  168. {lamindb-0.69.7 → lamindb-0.69.8}/docs/lamindb.md +0 -0
  169. {lamindb-0.69.7 → lamindb-0.69.8}/docs/meta.ipynb +0 -0
  170. {lamindb-0.69.7 → lamindb-0.69.8}/docs/nbproject.md +0 -0
  171. {lamindb-0.69.7 → lamindb-0.69.8}/docs/query-search.md +0 -0
  172. {lamindb-0.69.7 → lamindb-0.69.8}/docs/readfcs.md +0 -0
  173. {lamindb-0.69.7 → lamindb-0.69.8}/docs/reference.md +0 -0
  174. {lamindb-0.69.7 → lamindb-0.69.8}/docs/schemas.ipynb +0 -0
  175. {lamindb-0.69.7 → lamindb-0.69.8}/docs/setup.ipynb +0 -0
  176. {lamindb-0.69.7 → lamindb-0.69.8}/docs/signup-login.md +0 -0
  177. {lamindb-0.69.7 → lamindb-0.69.8}/docs/storage/add-replace-stage.ipynb +0 -0
  178. {lamindb-0.69.7 → lamindb-0.69.8}/docs/storage/anndata-accessor.ipynb +0 -0
  179. {lamindb-0.69.7 → lamindb-0.69.8}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
  180. {lamindb-0.69.7 → lamindb-0.69.8}/docs/storage/test-files/iris.csv +0 -0
  181. {lamindb-0.69.7 → lamindb-0.69.8}/docs/storage/test-files/iris.data +0 -0
  182. {lamindb-0.69.7 → lamindb-0.69.8}/docs/storage/test-files/new_iris.csv +0 -0
  183. {lamindb-0.69.7 → lamindb-0.69.8}/docs/storage/test_notebooks.py +0 -0
  184. {lamindb-0.69.7 → lamindb-0.69.8}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
  185. {lamindb-0.69.7 → lamindb-0.69.8}/docs/storage/upload.ipynb +0 -0
  186. {lamindb-0.69.7 → lamindb-0.69.8}/docs/storage.md +0 -0
  187. {lamindb-0.69.7 → lamindb-0.69.8}/docs/test_notebooks.py +0 -0
  188. {lamindb-0.69.7 → lamindb-0.69.8}/docs/track.ipynb +0 -0
  189. {lamindb-0.69.7 → lamindb-0.69.8}/docs/transfer.ipynb +0 -0
  190. {lamindb-0.69.7 → lamindb-0.69.8}/docs/tutorial.ipynb +0 -0
  191. {lamindb-0.69.7 → lamindb-0.69.8}/docs/tutorial2.ipynb +0 -0
  192. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_storage.py +0 -0
  193. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/_utils.py +0 -0
  194. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/__init__.py +0 -0
  195. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/datasets/__init__.py +0 -0
  196. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/exceptions.py +0 -0
  197. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/fields.py +0 -0
  198. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/storage/__init__.py +0 -0
  199. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/core/types.py +0 -0
  200. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/integrations/__init__.py +0 -0
  201. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/setup/__init__.py +0 -0
  202. {lamindb-0.69.7 → lamindb-0.69.8}/lamindb/setup/core/__init__.py +0 -0
  203. {lamindb-0.69.7 → lamindb-0.69.8}/noxfile.py +0 -0
  204. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/.github/workflows/build.yml +0 -0
  205. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/.github/workflows/latest-changes.jinja2 +0 -0
  206. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/.github/workflows/latest-changes.yml +0 -0
  207. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/.gitignore +0 -0
  208. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/.pre-commit-config.yaml +0 -0
  209. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/LICENSE +0 -0
  210. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/README.md +0 -0
  211. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/bionty/core/__init__.py +0 -0
  212. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/docs/changelog.md +0 -0
  213. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/docs/index.md +0 -0
  214. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/docs/reference.md +0 -0
  215. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/lamin-project.yaml +0 -0
  216. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/noxfile.py +0 -0
  217. {lamindb-0.69.7 → lamindb-0.69.8}/sub/bionty/tests/test_notebooks.py +0 -0
  218. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/.gitignore +0 -0
  219. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
  220. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/README.md +0 -0
  221. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/lamin_cli/__init__.py +0 -0
  222. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/lamin_cli/__main__.py +0 -0
  223. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/lamin_cli/_cache.py +0 -0
  224. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/lamin_cli/_get.py +0 -0
  225. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/lamin_cli/_migration.py +0 -0
  226. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/lamin_cli/_save.py +0 -0
  227. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/pyproject.toml +0 -0
  228. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/tests/conftest.py +0 -0
  229. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
  230. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
  231. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
  232. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/tests/scripts/initialized.py +0 -0
  233. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/tests/test_cli.py +0 -0
  234. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/tests/test_get.py +0 -0
  235. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/tests/test_migrate.py +0 -0
  236. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/tests/test_save_files.py +0 -0
  237. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/tests/test_save_notebooks.py +0 -0
  238. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamin-cli/tests/test_save_scripts.py +0 -0
  239. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
  240. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
  241. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
  242. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/.gitignore +0 -0
  243. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
  244. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/LICENSE +0 -0
  245. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/README.md +0 -0
  246. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-cloud/01-init-on-prem-instance.ipynb +0 -0
  247. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-cloud/02-connect-on-prem-instance.ipynb +0 -0
  248. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-cloud/03-set-storage.ipynb +0 -0
  249. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
  250. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-cloud/test-multi-session.ipynb +0 -0
  251. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
  252. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +0 -0
  253. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +0 -0
  254. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
  255. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
  256. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
  257. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
  258. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
  259. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
  260. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
  261. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/index.md +0 -0
  262. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/notebooks.md +0 -0
  263. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/docs/reference.md +0 -0
  264. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_add_remote_storage.py +0 -0
  265. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
  266. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
  267. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_check_setup.py +0 -0
  268. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
  269. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +0 -0
  270. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_delete.py +0 -0
  271. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
  272. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
  273. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
  274. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_init_instance.py +0 -0
  275. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
  276. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
  277. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
  278. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
  279. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
  280. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -0
  281. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -0
  282. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
  283. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
  284. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +0 -0
  285. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +0 -0
  286. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +0 -0
  287. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +0 -0
  288. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_settings.py +0 -0
  289. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +0 -0
  290. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +0 -0
  291. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +0 -0
  292. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +0 -0
  293. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +0 -0
  294. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
  295. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +0 -0
  296. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -0
  297. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/hashing.py +0 -0
  298. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/lamindb_setup/core/types.py +0 -0
  299. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/noxfile.py +0 -0
  300. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/pyproject.toml +0 -0
  301. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +0 -0
  302. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
  303. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +0 -0
  304. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-cloud/test_login.py +0 -0
  305. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
  306. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
  307. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
  308. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-local/test_all.py +0 -0
  309. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-local/test_check_s3_storage_empty.py +0 -0
  310. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-local/test_hosted_instance_deletion_gate.py +0 -0
  311. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-prod/conftest.py +0 -0
  312. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-prod/test_auto_connect.py +0 -0
  313. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
  314. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +0 -0
  315. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
  316. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
  317. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
  318. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
  319. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lamindb-setup/tests/storage/test_storage_stats.py +0 -0
  320. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/.github/workflows/build.yml +0 -0
  321. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/.github/workflows/latest-changes.jinja2 +0 -0
  322. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/.github/workflows/latest-changes.yml +0 -0
  323. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/.gitignore +0 -0
  324. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/LICENSE +0 -0
  325. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/README.md +0 -0
  326. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/docs/index.md +0 -0
  327. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/docs/reference.md +0 -0
  328. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lamin-project.yaml +0 -0
  329. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/ids.py +0 -0
  330. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +0 -0
  331. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0013_alter_cellmarker_species_alter_gene_species_and_more.py +0 -0
  332. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0020_alter_organism_bionty_source.py +0 -0
  333. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0021_rename_files_cellline_artifacts_and_more.py +0 -0
  334. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0022_rename_datasets_cellline_collections_and_more.py +0 -0
  335. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
  336. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/lnschema_bionty/migrations/__init__.py +0 -0
  337. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/noxfile.py +0 -0
  338. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-bionty/tests/test_integrity.py +0 -0
  339. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
  340. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
  341. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/.gitignore +0 -0
  342. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/LICENSE +0 -0
  343. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/README.md +0 -0
  344. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  345. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +0 -0
  346. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0018_rename_datasetlabel_datasetulabel_and_more.py +0 -0
  347. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0025_remove_user_email.py +0 -0
  348. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0026_dataset_visibility_file_visibility.py +0 -0
  349. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0027_file_key_is_virtual.py +0 -0
  350. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0028_alter_dataset_visibility_alter_file_visibility.py +0 -0
  351. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0029_remove_feature_modality_remove_featureset_modality_and_more.py +0 -0
  352. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0030_alter_dataset_visibility_alter_file_visibility.py +0 -0
  353. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0032_remove_dataset_storage.py +0 -0
  354. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0033_alter_artifact_unique_together_artifact_n_objects_and_more.py +0 -0
  355. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
  356. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
  357. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  358. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  359. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/lnschema_core/users.py +0 -0
  360. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/tests/test_integrity.py +0 -0
  361. {lamindb-0.69.7 → lamindb-0.69.8}/sub/lnschema-core/tests/test_types.py +0 -0
  362. {lamindb-0.69.7 → lamindb-0.69.8}/tests/conftest.py +0 -0
  363. {lamindb-0.69.7 → lamindb-0.69.8}/tests/notebooks/initialized-with-nbproject.ipynb +0 -0
  364. {lamindb-0.69.7 → lamindb-0.69.8}/tests/notebooks/no-title.ipynb +0 -0
  365. {lamindb-0.69.7 → lamindb-0.69.8}/tests/notebooks/not-initialized.ipynb +0 -0
  366. {lamindb-0.69.7 → lamindb-0.69.8}/tests/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
  367. {lamindb-0.69.7 → lamindb-0.69.8}/tests/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
  368. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_annotate.py +0 -0
  369. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_artifact.py +0 -0
  370. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_cache.py +0 -0
  371. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_can_validate.py +0 -0
  372. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_collection.py +0 -0
  373. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_data.py +0 -0
  374. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_db.py +0 -0
  375. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_delete.py +0 -0
  376. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_feature.py +0 -0
  377. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_feature_manager.py +0 -0
  378. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_feature_set.py +0 -0
  379. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_from_values.py +0 -0
  380. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_label_manager.py +0 -0
  381. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_load.py +0 -0
  382. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_manager.py +0 -0
  383. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_notebooks.py +0 -0
  384. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_parents.py +0 -0
  385. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_queryset.py +0 -0
  386. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_registry.py +0 -0
  387. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_run.py +0 -0
  388. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_run_context.py +0 -0
  389. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_save.py +0 -0
  390. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_settings.py +0 -0
  391. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_storage.py +0 -0
  392. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_transfer.py +0 -0
  393. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_transform.py +0 -0
  394. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_uid.py +0 -0
  395. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_ulabel.py +0 -0
  396. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_versioning.py +0 -0
  397. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_view.py +0 -0
  398. {lamindb-0.69.7 → lamindb-0.69.8}/tests/test_visibility.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamindb
3
- Version: 0.69.7
3
+ Version: 0.69.8
4
4
  Summary: A data framework for biology.
5
5
  Author-email: Lamin Labs <open-source@lamin.ai>
6
6
  Requires-Python: >=3.8
@@ -9,8 +9,8 @@ Classifier: Programming Language :: Python :: 3.8
9
9
  Classifier: Programming Language :: Python :: 3.9
10
10
  Classifier: Programming Language :: Python :: 3.10
11
11
  Classifier: Programming Language :: Python :: 3.11
12
- Requires-Dist: lnschema_core==0.64.4
13
- Requires-Dist: lamindb_setup==0.68.4
12
+ Requires-Dist: lnschema_core==0.64.5
13
+ Requires-Dist: lamindb_setup==0.68.5
14
14
  Requires-Dist: lamin_utils==0.13.1
15
15
  Requires-Dist: lamin_cli==0.12.0
16
16
  Requires-Dist: rapidfuzz
@@ -27,7 +27,7 @@ Requires-Dist: urllib3<2 ; extra == "aws"
27
27
  Requires-Dist: aiobotocore[boto3]>=2.5.4,<3.0.0 ; extra == "aws"
28
28
  Requires-Dist: s3fs==2023.12.2 ; extra == "aws"
29
29
  Requires-Dist: fsspec[s3]==2023.12.2 ; extra == "aws"
30
- Requires-Dist: bionty==0.42.4 ; extra == "bionty"
30
+ Requires-Dist: bionty==0.42.5 ; extra == "bionty"
31
31
  Requires-Dist: pandas<2 ; extra == "dev"
32
32
  Requires-Dist: pre-commit ; extra == "dev"
33
33
  Requires-Dist: nox ; extra == "dev"
@@ -1,12 +1,16 @@
1
1
  # Changelog
2
2
 
3
-
4
3
  ```{eval-rst}
5
4
  .. role:: small
6
5
  ```
7
6
 
8
7
  ## 0.69
9
8
 
9
+ ### 0.69.8 {small}`2024-04-04`
10
+
11
+ - 🐛 Avoid an error due to deleting the same file by multiple processes [PR](https://github.com/laminlabs/lamindb-setup/pull/703) [@Koncopd](https://github.com/Koncopd)
12
+ - ♻️ Use future annotations [PR](https://github.com/laminlabs/lamindb/pull/1549) [@Zethson](https://github.com/Zethson)
13
+
10
14
  ### 0.69.7 {small}`2024-04-03`
11
15
 
12
16
  - ✨ Add ability to upload arbitrary files or folders from CLI [PR](https://github.com/laminlabs/lamindb/pull/1545) [@falexwolf](https://github.com/falexwolf)
@@ -40,7 +40,7 @@ Modules & settings:
40
40
 
41
41
  """
42
42
 
43
- __version__ = "0.69.7" # denote a release candidate for 0.1.0 with 0.1rc1
43
+ __version__ = "0.69.8" # denote a release candidate for 0.1.0 with 0.1rc1
44
44
 
45
45
  import os as _os
46
46
 
@@ -1,11 +1,15 @@
1
- from typing import Dict, Iterable, List, Optional, Tuple, Union
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Iterable
2
4
 
3
5
  import anndata as ad
4
6
  import lamindb_setup as ln_setup
5
7
  import pandas as pd
6
8
  from lamin_utils import colors, logger
7
9
  from lnschema_core import Artifact, Collection, Feature, Registry, Run, ULabel
8
- from lnschema_core.types import FieldAttr
10
+
11
+ if TYPE_CHECKING:
12
+ from lnschema_core.types import FieldAttr
9
13
 
10
14
 
11
15
  class ValidationError(ValueError):
@@ -19,9 +23,9 @@ class AnnotateLookup:
19
23
 
20
24
  def __init__(
21
25
  self,
22
- categorials: Dict[str, FieldAttr],
23
- slots: Dict[str, FieldAttr] = None,
24
- using: Optional[str] = None,
26
+ categorials: dict[str, FieldAttr],
27
+ slots: dict[str, FieldAttr] = None,
28
+ using: str | None = None,
25
29
  ) -> None:
26
30
  if slots is None:
27
31
  slots = {}
@@ -91,8 +95,8 @@ class DataFrameAnnotator:
91
95
  self,
92
96
  df: pd.DataFrame,
93
97
  columns: FieldAttr = Feature.name,
94
- categoricals: Optional[Dict[str, FieldAttr]] = None,
95
- using: Optional[str] = None,
98
+ categoricals: dict[str, FieldAttr] | None = None,
99
+ using: str | None = None,
96
100
  verbosity: str = "hint",
97
101
  **kwargs,
98
102
  ) -> None:
@@ -106,15 +110,15 @@ class DataFrameAnnotator:
106
110
  self._artifact = None
107
111
  self._collection = None
108
112
  self._validated = False
109
- self._kwargs: Dict = kwargs
113
+ self._kwargs: dict = kwargs
110
114
  self._save_columns()
111
115
 
112
116
  @property
113
- def fields(self) -> Dict:
117
+ def fields(self) -> dict:
114
118
  """Return the columns fields to validate against."""
115
119
  return self._fields
116
120
 
117
- def lookup(self, using: Optional[str] = None) -> AnnotateLookup:
121
+ def lookup(self, using: str | None = None) -> AnnotateLookup:
118
122
  """Lookup features and labels.
119
123
 
120
124
  Args:
@@ -260,11 +264,11 @@ class DataFrameAnnotator:
260
264
 
261
265
  def save_collection(
262
266
  self,
263
- artifact: Union[Artifact, Iterable[Artifact]],
267
+ artifact: Artifact | Iterable[Artifact],
264
268
  name: str,
265
- description: Optional[str] = None,
266
- reference: Optional[str] = None,
267
- reference_type: Optional[str] = None,
269
+ description: str | None = None,
270
+ reference: str | None = None,
271
+ reference_type: str | None = None,
268
272
  ) -> Collection:
269
273
  """Save a collection from artifact/artifacts.
270
274
 
@@ -319,7 +323,7 @@ class AnnDataAnnotator(DataFrameAnnotator):
319
323
  self,
320
324
  adata: ad.AnnData,
321
325
  var_index: FieldAttr,
322
- categoricals: Dict[str, FieldAttr],
326
+ categoricals: dict[str, FieldAttr],
323
327
  using: str = "default",
324
328
  verbosity: str = "hint",
325
329
  **kwargs,
@@ -342,11 +346,11 @@ class AnnDataAnnotator(DataFrameAnnotator):
342
346
  return self._var_field
343
347
 
344
348
  @property
345
- def categoricals(self) -> Dict:
349
+ def categoricals(self) -> dict:
346
350
  """Return the obs fields to validate against."""
347
351
  return self._obs_fields
348
352
 
349
- def lookup(self, using: Optional[str] = None) -> AnnotateLookup:
353
+ def lookup(self, using: str | None = None) -> AnnotateLookup:
350
354
  """Lookup features and labels."""
351
355
  return AnnotateLookup(
352
356
  categorials=self._obs_fields,
@@ -413,9 +417,9 @@ class Annotate:
413
417
  def from_df(
414
418
  cls,
415
419
  df: pd.DataFrame,
416
- categoricals: Optional[Dict[str, FieldAttr]] = None,
420
+ categoricals: dict[str, FieldAttr] | None = None,
417
421
  columns: FieldAttr = Feature.name,
418
- using: Optional[str] = None,
422
+ using: str | None = None,
419
423
  verbosity: str = "hint",
420
424
  **kwargs,
421
425
  ) -> DataFrameAnnotator:
@@ -433,7 +437,7 @@ class Annotate:
433
437
  cls,
434
438
  adata: ad.AnnData,
435
439
  var_index: FieldAttr,
436
- categoricals: Dict[str, FieldAttr],
440
+ categoricals: dict[str, FieldAttr],
437
441
  using: str = "default",
438
442
  verbosity: str = "hint",
439
443
  **kwargs,
@@ -448,7 +452,7 @@ class Annotate:
448
452
  )
449
453
 
450
454
 
451
- def get_registry_instance(registry: Registry, using: Optional[str] = None) -> Registry:
455
+ def get_registry_instance(registry: Registry, using: str | None = None) -> Registry:
452
456
  """Get a registry instance using a specific instance."""
453
457
  if using is not None and using != "default":
454
458
  return registry.using(using)
@@ -465,8 +469,8 @@ def standardize_and_inspect(
465
469
 
466
470
 
467
471
  def check_registry_organism(
468
- registry: Registry, organism: Optional[str] = None
469
- ) -> Optional[str]:
472
+ registry: Registry, organism: str | None = None
473
+ ) -> str | None:
470
474
  """Check if a registry needs an organism and return the organism name."""
471
475
  if hasattr(registry, "organism_id"):
472
476
  import bionty as bt
@@ -484,7 +488,7 @@ def validate_categories(
484
488
  values: Iterable[str],
485
489
  field: FieldAttr,
486
490
  key: str,
487
- using: Optional[str] = None,
491
+ using: str | None = None,
488
492
  **kwargs,
489
493
  ) -> bool:
490
494
  """Validate ontology terms in a pandas series using LaminDB registries."""
@@ -560,8 +564,8 @@ def validate_categories(
560
564
 
561
565
  def validate_categories_in_df(
562
566
  df: pd.DataFrame,
563
- fields: Dict[str, FieldAttr],
564
- using: Optional[str] = None,
567
+ fields: dict[str, FieldAttr],
568
+ using: str | None = None,
565
569
  **kwargs,
566
570
  ) -> bool:
567
571
  """Validate categories in DataFrame columns using LaminDB registries."""
@@ -580,8 +584,8 @@ def validate_categories_in_df(
580
584
  def validate_anndata(
581
585
  adata: ad.AnnData,
582
586
  var_field: FieldAttr,
583
- obs_fields: Dict[str, FieldAttr],
584
- using: Optional[str] = None,
587
+ obs_fields: dict[str, FieldAttr],
588
+ using: str | None = None,
585
589
  **kwargs,
586
590
  ) -> bool:
587
591
  """Inspect metadata in an AnnData object using LaminDB registries."""
@@ -604,9 +608,9 @@ def validate_anndata(
604
608
 
605
609
 
606
610
  def save_artifact(
607
- data: Union[pd.DataFrame, ad.AnnData],
611
+ data: pd.DataFrame | ad.AnnData,
608
612
  description: str,
609
- fields: Dict[str, FieldAttr],
613
+ fields: dict[str, FieldAttr],
610
614
  columns_field: FieldAttr,
611
615
  **kwargs,
612
616
  ) -> Artifact:
@@ -631,7 +635,7 @@ def save_artifact(
631
635
  raise ValueError("data must be a DataFrame or AnnData object")
632
636
  artifact.save()
633
637
 
634
- feature_kwargs: Dict = {}
638
+ feature_kwargs: dict = {}
635
639
  organism = check_registry_organism(
636
640
  columns_field.field.model, kwargs.pop("organism", None)
637
641
  )
@@ -662,14 +666,14 @@ def save_artifact(
662
666
 
663
667
 
664
668
  def update_registry(
665
- values: List[str],
669
+ values: list[str],
666
670
  field: FieldAttr,
667
671
  key: str,
668
672
  save_function: str = "add_new_from",
669
- using: Optional[str] = None,
673
+ using: str | None = None,
670
674
  validated_only: bool = True,
671
- kwargs: Optional[Dict] = None,
672
- df: Optional[pd.DataFrame] = None,
675
+ kwargs: dict | None = None,
676
+ df: pd.DataFrame | None = None,
673
677
  ) -> None:
674
678
  """Save features or labels records in the default instance from the using instance.
675
679
 
@@ -703,7 +707,7 @@ def update_registry(
703
707
  settings.verbosity = verbosity
704
708
  return
705
709
 
706
- labels_saved: Dict = {"from public": [], "without reference": []}
710
+ labels_saved: dict = {"from public": [], "without reference": []}
707
711
 
708
712
  (
709
713
  labels_saved[f"from {using}"],
@@ -757,7 +761,7 @@ def update_registry(
757
761
 
758
762
 
759
763
  def log_saved_labels(
760
- labels_saved: Dict,
764
+ labels_saved: dict,
761
765
  key: str,
762
766
  save_function: str,
763
767
  model_field: str,
@@ -795,7 +799,7 @@ def log_saved_labels(
795
799
  )
796
800
 
797
801
 
798
- def save_ulabels_with_parent(values: List[str], field: FieldAttr, key: str) -> None:
802
+ def save_ulabels_with_parent(values: list[str], field: FieldAttr, key: str) -> None:
799
803
  """Save a parent label for the given labels."""
800
804
  registry = field.field.model
801
805
  assert registry == ULabel
@@ -808,11 +812,11 @@ def save_ulabels_with_parent(values: List[str], field: FieldAttr, key: str) -> N
808
812
 
809
813
 
810
814
  def update_registry_from_using_instance(
811
- values: List[str],
815
+ values: list[str],
812
816
  field: FieldAttr,
813
- using: Optional[str] = None,
814
- kwargs: Optional[Dict] = None,
815
- ) -> Tuple[List[str], List[str]]:
817
+ using: str | None = None,
818
+ kwargs: dict | None = None,
819
+ ) -> tuple[list[str], list[str]]:
816
820
  """Save features or labels records from the using instance.
817
821
 
818
822
  Args:
@@ -1,5 +1,7 @@
1
+ from __future__ import annotations
2
+
1
3
  from pathlib import Path, PurePath, PurePosixPath
2
- from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
4
+ from typing import TYPE_CHECKING, Any
3
5
 
4
6
  import fsspec
5
7
  import lamindb_setup as ln_setup
@@ -11,7 +13,6 @@ from lamindb_setup._init_instance import register_storage
11
13
  from lamindb_setup.core import StorageSettings
12
14
  from lamindb_setup.core._docs import doc_args
13
15
  from lamindb_setup.core.hashing import b16_to_b64, hash_file, hash_md5s_from_dir
14
- from lamindb_setup.core.types import UPathStr
15
16
  from lamindb_setup.core.upath import (
16
17
  create_path,
17
18
  extract_suffix_from_path,
@@ -53,15 +54,17 @@ from .core._data import (
53
54
  from .core.storage.file import AUTO_KEY_PREFIX
54
55
 
55
56
  if TYPE_CHECKING:
57
+ from lamindb_setup.core.types import UPathStr
58
+
56
59
  from lamindb.core.storage._backed_access import AnnDataAccessor, BackedAccessor
57
60
 
58
61
 
59
62
  def process_pathlike(
60
63
  filepath: UPath,
61
64
  default_storage: Storage,
62
- using_key: Optional[str],
65
+ using_key: str | None,
63
66
  skip_existence_check: bool = False,
64
- ) -> Tuple[Storage, bool]:
67
+ ) -> tuple[Storage, bool]:
65
68
  if not skip_existence_check:
66
69
  try: # check if file exists
67
70
  if not filepath.exists():
@@ -111,13 +114,13 @@ def process_pathlike(
111
114
 
112
115
  def process_data(
113
116
  provisional_uid: str,
114
- data: Union[UPathStr, DataLike],
115
- format: Optional[str],
116
- key: Optional[str],
117
+ data: UPathStr | DataLike,
118
+ format: str | None,
119
+ key: str | None,
117
120
  default_storage: Storage,
118
- using_key: Optional[str],
121
+ using_key: str | None,
119
122
  skip_existence_check: bool = False,
120
- ) -> Tuple[Any, Union[Path, UPath], str, Storage, bool]:
123
+ ) -> tuple[Any, Path | UPath, str, Storage, bool]:
121
124
  """Serialize a data object that's provided as file or in memory."""
122
125
  # if not overwritten, data gets stored in default storage
123
126
  if isinstance(data, (str, Path, UPath)): # UPathStr, spelled out
@@ -170,10 +173,10 @@ def process_data(
170
173
  def get_stat_or_artifact(
171
174
  path: UPath,
172
175
  suffix: str,
173
- memory_rep: Optional[Any] = None,
176
+ memory_rep: Any | None = None,
174
177
  check_hash: bool = True,
175
- using_key: Optional[str] = None,
176
- ) -> Union[Tuple[int, Optional[str], Optional[str], Optional[int]], Artifact]:
178
+ using_key: str | None = None,
179
+ ) -> tuple[int, str | None, str | None, int | None] | Artifact:
177
180
  n_objects = None
178
181
  if settings.upon_file_create_skip_size_hash:
179
182
  return None, None, None, n_objects
@@ -245,8 +248,8 @@ def get_stat_or_artifact(
245
248
 
246
249
 
247
250
  def check_path_in_existing_storage(
248
- path: Union[Path, UPath], using_key: Optional[str]
249
- ) -> Union[Storage, bool]:
251
+ path: Path | UPath, using_key: str | None
252
+ ) -> Storage | bool:
250
253
  for storage in Storage.objects.using(using_key).filter().all():
251
254
  # if path is part of storage, return it
252
255
  if check_path_is_child_of_root(path, root=create_path(storage.root)):
@@ -254,9 +257,7 @@ def check_path_in_existing_storage(
254
257
  return False
255
258
 
256
259
 
257
- def check_path_is_child_of_root(
258
- path: Union[Path, UPath], root: Optional[Union[Path, UPath]]
259
- ) -> bool:
260
+ def check_path_is_child_of_root(path: Path | UPath, root: Path | UPath | None) -> bool:
260
261
  path = UPath(str(path)) if not isinstance(path, UPath) else path
261
262
  root = UPath(str(root)) if not isinstance(root, UPath) else root
262
263
 
@@ -276,8 +277,8 @@ def check_path_is_child_of_root(
276
277
 
277
278
 
278
279
  def get_relative_path_to_directory(
279
- path: Union[PurePath, Path, UPath], directory: Union[PurePath, Path, UPath]
280
- ) -> Union[PurePath, Path]:
280
+ path: PurePath | Path | UPath, directory: PurePath | Path | UPath
281
+ ) -> PurePath | Path:
281
282
  if isinstance(directory, UPath) and not isinstance(directory, LocalPathClasses):
282
283
  # UPath.relative_to() is not behaving as it should (2023-04-07)
283
284
  # need to lstrip otherwise inconsistent behavior across trailing slashes
@@ -296,13 +297,13 @@ def get_relative_path_to_directory(
296
297
 
297
298
  def get_artifact_kwargs_from_data(
298
299
  *,
299
- data: Union[Path, UPath, str, pd.DataFrame, AnnData],
300
- key: Optional[str],
301
- run: Optional[Run],
302
- format: Optional[str],
300
+ data: Path | UPath | str | pd.DataFrame | AnnData,
301
+ key: str | None,
302
+ run: Run | None,
303
+ format: str | None,
303
304
  provisional_uid: str,
304
305
  default_storage: Storage,
305
- using_key: Optional[str] = None,
306
+ using_key: str | None = None,
306
307
  skip_check_exists: bool = False,
307
308
  ):
308
309
  run = get_run(run)
@@ -399,8 +400,8 @@ def get_artifact_kwargs_from_data(
399
400
  def log_storage_hint(
400
401
  *,
401
402
  check_path_in_storage: bool,
402
- storage: Optional[Storage],
403
- key: Optional[str],
403
+ storage: Storage | None,
404
+ key: str | None,
404
405
  uid: str,
405
406
  suffix: str,
406
407
  is_dir: bool,
@@ -447,7 +448,7 @@ def data_is_mudata(data: DataLike): # pragma: no cover
447
448
  return False
448
449
 
449
450
 
450
- def _check_accessor_artifact(data: Any, accessor: Optional[str] = None):
451
+ def _check_accessor_artifact(data: Any, accessor: str | None = None):
451
452
  if accessor is None and not isinstance(data, (str, Path, UPath)):
452
453
  if isinstance(data, pd.DataFrame):
453
454
  logger.warning("data is a DataFrame, please use .from_df()")
@@ -476,17 +477,17 @@ def __init__(artifact: Artifact, *args, **kwargs):
476
477
  if len(args) > 1:
477
478
  raise ValueError("Only one non-keyword arg allowed: data")
478
479
 
479
- data: Union[str, Path] = kwargs.pop("data") if len(args) == 0 else args[0]
480
- key: Optional[str] = kwargs.pop("key") if "key" in kwargs else None
481
- run: Optional[Run] = kwargs.pop("run") if "run" in kwargs else None
482
- description: Optional[str] = (
480
+ data: str | Path = kwargs.pop("data") if len(args) == 0 else args[0]
481
+ key: str | None = kwargs.pop("key") if "key" in kwargs else None
482
+ run: Run | None = kwargs.pop("run") if "run" in kwargs else None
483
+ description: str | None = (
483
484
  kwargs.pop("description") if "description" in kwargs else None
484
485
  )
485
- is_new_version_of: Optional[Artifact] = (
486
+ is_new_version_of: Artifact | None = (
486
487
  kwargs.pop("is_new_version_of") if "is_new_version_of" in kwargs else None
487
488
  )
488
- version: Optional[str] = kwargs.pop("version") if "version" in kwargs else None
489
- visibility: Optional[int] = (
489
+ version: str | None = kwargs.pop("version") if "version" in kwargs else None
490
+ visibility: int | None = (
490
491
  kwargs.pop("visibility")
491
492
  if "visibility" in kwargs
492
493
  else VisibilityChoice.default.value
@@ -571,14 +572,14 @@ def __init__(artifact: Artifact, *args, **kwargs):
571
572
  @doc_args(Artifact.from_df.__doc__)
572
573
  def from_df(
573
574
  cls,
574
- df: "pd.DataFrame",
575
- key: Optional[str] = None,
576
- description: Optional[str] = None,
577
- run: Optional[Run] = None,
578
- version: Optional[str] = None,
579
- is_new_version_of: Optional["Artifact"] = None,
575
+ df: pd.DataFrame,
576
+ key: str | None = None,
577
+ description: str | None = None,
578
+ run: Run | None = None,
579
+ version: str | None = None,
580
+ is_new_version_of: Artifact | None = None,
580
581
  **kwargs,
581
- ) -> "Artifact":
582
+ ) -> Artifact:
582
583
  """{}."""
583
584
  artifact = Artifact(
584
585
  data=df,
@@ -597,14 +598,14 @@ def from_df(
597
598
  @doc_args(Artifact.from_anndata.__doc__)
598
599
  def from_anndata(
599
600
  cls,
600
- adata: "AnnData",
601
- key: Optional[str] = None,
602
- description: Optional[str] = None,
603
- run: Optional[Run] = None,
604
- version: Optional[str] = None,
605
- is_new_version_of: Optional["Artifact"] = None,
601
+ adata: AnnData,
602
+ key: str | None = None,
603
+ description: str | None = None,
604
+ run: Run | None = None,
605
+ version: str | None = None,
606
+ is_new_version_of: Artifact | None = None,
606
607
  **kwargs,
607
- ) -> "Artifact":
608
+ ) -> Artifact:
608
609
  """{}."""
609
610
  artifact = Artifact(
610
611
  data=adata,
@@ -624,10 +625,10 @@ def from_anndata(
624
625
  def from_dir(
625
626
  cls,
626
627
  path: UPathStr,
627
- key: Optional[str] = None,
628
+ key: str | None = None,
628
629
  *,
629
- run: Optional[Run] = None,
630
- ) -> List["Artifact"]:
630
+ run: Run | None = None,
631
+ ) -> list[Artifact]:
631
632
  """{}."""
632
633
  logger.warning(
633
634
  "this creates one artifact per file in the directory - you might simply call"
@@ -639,7 +640,7 @@ def from_dir(
639
640
  storage, use_existing_storage = process_pathlike(
640
641
  folderpath, default_storage, using_key
641
642
  )
642
- folder_key_path: Union[PurePath, Path]
643
+ folder_key_path: PurePath | Path
643
644
  if key is None:
644
645
  if not use_existing_storage:
645
646
  logger.warning(
@@ -724,9 +725,9 @@ def from_dir(
724
725
  # docstring handled through attach_func_to_class_method
725
726
  def replace(
726
727
  self,
727
- data: Union[UPathStr, DataLike],
728
- run: Optional[Run] = None,
729
- format: Optional[str] = None,
728
+ data: UPathStr | DataLike,
729
+ run: Run | None = None,
730
+ format: str | None = None,
730
731
  ) -> None:
731
732
  default_storage = settings._storage_settings.record
732
733
  kwargs, privates = get_artifact_kwargs_from_data(
@@ -784,9 +785,7 @@ def replace(
784
785
 
785
786
 
786
787
  # docstring handled through attach_func_to_class_method
787
- def backed(
788
- self, is_run_input: Optional[bool] = None
789
- ) -> Union["AnnDataAccessor", "BackedAccessor"]:
788
+ def backed(self, is_run_input: bool | None = None) -> AnnDataAccessor | BackedAccessor:
790
789
  suffixes = (".h5", ".hdf5", ".h5ad", ".zrad", ".zarr")
791
790
  if self.suffix not in suffixes:
792
791
  raise ValueError(
@@ -810,7 +809,7 @@ def backed(
810
809
 
811
810
  # docstring handled through attach_func_to_class_method
812
811
  def load(
813
- self, is_run_input: Optional[bool] = None, stream: bool = False, **kwargs
812
+ self, is_run_input: bool | None = None, stream: bool = False, **kwargs
814
813
  ) -> DataLike:
815
814
  _track_run_input(self, is_run_input)
816
815
  if hasattr(self, "_memory_rep") and self._memory_rep is not None:
@@ -822,7 +821,7 @@ def load(
822
821
 
823
822
 
824
823
  # docstring handled through attach_func_to_class_method
825
- def stage(self, is_run_input: Optional[bool] = None) -> Path:
824
+ def stage(self, is_run_input: bool | None = None) -> Path:
826
825
  _track_run_input(self, is_run_input)
827
826
 
828
827
  using_key = settings._using_key
@@ -833,9 +832,9 @@ def stage(self, is_run_input: Optional[bool] = None) -> Path:
833
832
  # docstring handled through attach_func_to_class_method
834
833
  def delete(
835
834
  self,
836
- permanent: Optional[bool] = None,
837
- storage: Optional[bool] = None,
838
- using_key: Optional[str] = None,
835
+ permanent: bool | None = None,
836
+ storage: bool | None = None,
837
+ using_key: str | None = None,
839
838
  ) -> None:
840
839
  # by default, we only move artifacts into the trash (visibility = -1)
841
840
  trash_visibility = VisibilityChoice.trash.value
@@ -927,7 +926,7 @@ def _save_skip_storage(file, *args, **kwargs) -> None:
927
926
 
928
927
  @property # type: ignore
929
928
  @doc_args(Artifact.path.__doc__)
930
- def path(self) -> Union[Path, UPath]:
929
+ def path(self) -> Path | UPath:
931
930
  """{}."""
932
931
  using_key = settings._using_key
933
932
  return filepath_from_artifact(self, using_key)