lamindb 0.69.7__tar.gz → 0.69.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lamindb-0.69.7 → lamindb-0.69.9}/.github/workflows/build.yml +6 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/PKG-INFO +5 -5
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/changelog.md +8 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/introduction.ipynb +90 -78
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/__init__.py +1 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_annotate.py +46 -42
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_artifact.py +66 -70
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_can_validate.py +29 -25
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_collection.py +30 -34
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_feature.py +10 -8
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_feature_set.py +17 -15
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_filter.py +2 -2
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_finish.py +14 -8
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_from_values.py +13 -9
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_is_versioned.py +2 -2
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_parents.py +16 -11
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_query_manager.py +8 -4
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_query_set.py +15 -15
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_registry.py +36 -34
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_run.py +3 -5
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_save.py +13 -11
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_transform.py +9 -11
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_ulabel.py +11 -9
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_view.py +3 -2
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/_data.py +21 -17
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/_feature_manager.py +18 -13
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/_label_manager.py +13 -9
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/_mapped_collection.py +16 -12
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/_run_context.py +21 -17
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/_settings.py +19 -16
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/_sync_git.py +4 -5
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/_track_environment.py +6 -1
- lamindb-0.69.9/lamindb/core/_transform_settings.py +9 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/_view_tree.py +2 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/datasets/_core.py +3 -2
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/datasets/_fake.py +2 -2
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/storage/_anndata_sizes.py +2 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/storage/_backed_access.py +17 -12
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/storage/_zarr.py +7 -3
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/storage/file.py +13 -6
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/storage/object.py +7 -3
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/types.py +0 -2
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/versioning.py +12 -8
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/integrations/_vitessce.py +2 -0
- lamindb-0.69.9/lamindb/setup/core/__init__.py +4 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/pyproject.toml +4 -4
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/bionty/__init__.py +1 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/pyproject.toml +1 -1
- lamindb-0.69.9/sub/lamin-cli/lamin_cli/__init__.py +3 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/lamin_cli/__main__.py +1 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/lamin_cli/_cache.py +1 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/lamin_cli/_get.py +1 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/lamin_cli/_migration.py +1 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/lamin_cli/_save.py +1 -0
- lamindb-0.69.9/sub/lamin-cli/tests/scripts/initialized-no-git-sync.py +9 -0
- lamindb-0.69.9/sub/lamin-cli/tests/test_multi_process.py +35 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/changelog.md +10 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/05-init-hosted-instance.ipynb +21 -5
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/06-connect-hosted-instance.ipynb +70 -5
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_connect_instance.py +109 -90
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_init_instance.py +2 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/__init__.py +0 -8
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_aws_storage.py +0 -20
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_hub_core.py +1 -4
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings_storage.py +18 -21
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/django.py +17 -44
- lamindb-0.69.9/sub/lamindb-setup/lamindb_setup/core/types.py +16 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/upath.py +30 -3
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/noxfile.py +4 -1
- lamindb-0.69.9/sub/lamindb-setup/tests/hub-local/conftest.py +25 -0
- lamindb-0.69.9/sub/lnschema-bionty/.pre-commit-config.yaml +56 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/docs/changelog.md +1 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/__init__.py +2 -2
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/_bionty.py +28 -14
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/core/__init__.py +2 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/core/_bionty.py +5 -3
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/core/_settings.py +8 -4
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +108 -36
- lamindb-0.69.9/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +1156 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +3 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +3 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +3 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +21 -7
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +9 -3
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0008_remove_gene_hgnc_id_remove_gene_mgi_id_and_more.py +12 -4
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +3 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0010_alter_species_name.py +3 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0011_cellline_datasets_cellmarker_datasets_and_more.py +45 -15
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0012_gene_stable_id.py +3 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0014_ethnicity_developmentalstage.py +24 -8
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0015_migrate_to_integer_pks.py +27 -7
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0016_export_legacy_data.py +3 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0017_import_legacy_data.py +9 -3
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0018_organism_rename_species_biontysource_organism_and_more.py +15 -5
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0019_rename_taxon_id_organism_ontology_id_and_more.py +12 -4
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/models.py +364 -190
- lamindb-0.69.9/sub/lnschema-bionty/pyproject.toml +140 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/.github/workflows/build.yml +3 -3
- lamindb-0.69.9/sub/lnschema-core/.pre-commit-config.yaml +56 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/CHANGELOG.md +3 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/__init__.py +2 -2
- lamindb-0.69.9/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +445 -0
- lamindb-0.69.9/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +923 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +3 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +6 -2
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +16 -4
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +3 -1
- lamindb-0.69.9/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +118 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +3 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +6 -2
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +42 -9
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +24 -7
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +31 -6
- lamindb-0.69.9/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +244 -0
- lamindb-0.69.9/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +117 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0015_file_initial_version_file_version.py +9 -2
- lamindb-0.69.9/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +160 -0
- lamindb-0.69.9/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +33 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0019_dataset_reference_dataset_reference_type_and_more.py +15 -5
- lamindb-0.69.9/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +62 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0021_dataset_storage_alter_dataset_file.py +12 -2
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0022_migrate_to_integer_pks.py +33 -9
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0023_export_legacy_data.py +3 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0024_import_legacy_data.py +6 -2
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0031_rename_file_to_artifact.py +63 -12
- lamindb-0.69.9/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +27 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0035_remove_artifact_initial_version_and_more.py +3 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0036_storage_description.py +3 -1
- lamindb-0.69.9/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +89 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0039_remove_collection_artifacts_collectionartifact_and_more.py +23 -4
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0040_alter_transform_type.py +10 -2
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0041_remove_transform_short_name_transform_description_and_more.py +30 -10
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0042_rename_run_at_run_started_at_run_finished_at.py +4 -1
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/models.py +270 -192
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/types.py +11 -14
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/noxfile.py +1 -1
- lamindb-0.69.9/sub/lnschema-core/pyproject.toml +138 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_run_context.py +1 -1
- lamindb-0.69.7/lamindb/core/_transform_settings.py +0 -9
- lamindb-0.69.7/lamindb/setup/core/__init__.py +0 -15
- lamindb-0.69.7/sub/lamin-cli/lamin_cli/__init__.py +0 -3
- lamindb-0.69.7/sub/lamindb-setup/lamindb_setup/core/types.py +0 -7
- lamindb-0.69.7/sub/lamindb-setup/tests/hub-local/conftest.py +0 -78
- lamindb-0.69.7/sub/lamindb-setup/tests/hub-local/test_check_s3_storage_empty.py +0 -33
- lamindb-0.69.7/sub/lamindb-setup/tests/hub-local/test_hosted_instance_deletion_gate.py +0 -32
- lamindb-0.69.7/sub/lnschema-bionty/.pre-commit-config.yaml +0 -71
- lamindb-0.69.7/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +0 -521
- lamindb-0.69.7/sub/lnschema-bionty/pyproject.toml +0 -45
- lamindb-0.69.7/sub/lnschema-core/.pre-commit-config.yaml +0 -71
- lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -220
- lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +0 -446
- lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -65
- lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -135
- lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -77
- lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +0 -91
- lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +0 -23
- lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +0 -38
- lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +0 -18
- lamindb-0.69.7/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +0 -57
- lamindb-0.69.7/sub/lnschema-core/pyproject.toml +0 -45
- {lamindb-0.69.7 → lamindb-0.69.9}/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/.gitignore +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/.gitmodules +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/.pre-commit-config.yaml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/LICENSE +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/README.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/annotate-for-developers.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/annotate.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/bio-registries.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/bionty-base.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/bionty.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/can-validate.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/data.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/faq/acid.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/faq/delete.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/faq/idempotency.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/faq/import-schema.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/faq/key.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/faq/reference-field.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/faq/setup.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/faq/test_notebooks.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/faq/track-run-inputs.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/faq/visibility.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/faq.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/features-lamindb.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/features-laminhub.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/guide.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/index.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/installation.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/lamin-utils.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/lamindb.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/meta.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/nbproject.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/query-search.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/readfcs.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/reference.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/schemas.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/setup.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/signup-login.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/storage/add-replace-stage.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/storage/anndata-accessor.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/storage/test-files/iris.csv +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/storage/test-files/iris.data +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/storage/test-files/new_iris.csv +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/storage/test_notebooks.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/storage/upload.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/storage.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/test_notebooks.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/track.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/transfer.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/tutorial.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/docs/tutorial2.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_storage.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/_utils.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/__init__.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/datasets/__init__.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/exceptions.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/fields.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/core/storage/__init__.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/integrations/__init__.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/lamindb/setup/__init__.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/noxfile.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/.github/workflows/build.yml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/.gitignore +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/.pre-commit-config.yaml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/LICENSE +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/README.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/bionty/core/__init__.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/docs/changelog.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/docs/index.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/docs/reference.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/lamin-project.yaml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/noxfile.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/bionty/tests/test_notebooks.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/.gitignore +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/README.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/pyproject.toml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/tests/conftest.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/tests/scripts/initialized.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/tests/test_cli.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/tests/test_get.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/tests/test_migrate.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/tests/test_save_files.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/tests/test_save_notebooks.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamin-cli/tests/test_save_scripts.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/.gitignore +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/LICENSE +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/README.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/01-init-on-prem-instance.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/02-connect-on-prem-instance.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/03-set-storage.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/04-test-bionty.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/test-multi-session.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-cloud/test_notebooks.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-cache-management.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-cloud-sync.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-connect-anonymously.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-empty-init.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-import-schema.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-insufficient-user-info.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-invalid-schema.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test-sqlite-lock.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/hub-prod/test_notebooks2.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/index.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/notebooks.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/docs/reference.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_add_remote_storage.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_check_setup.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_delete.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_exportdb.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_importdb.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_deprecated.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_docs.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_hub_client.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_hub_crud.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_hub_utils.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings_instance.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings_load.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings_save.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings_store.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_settings_user.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/_setup_bionty_sources.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/cloud_sqlite_locker.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/exceptions.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/lamindb_setup/core/hashing.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/pyproject.toml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-cloud/test_connect_instance.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-cloud/test_delete_instance.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-cloud/test_init_instance.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-cloud/test_login.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-cloud/test_migrate.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-cloud/test_set_storage.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-local/test_all.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-prod/conftest.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-prod/test_auto_connect.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-prod/test_django.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-prod/test_switch_and_fallback_env.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/hub-prod/test_upath.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/storage/test_hashing.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/storage/test_storage_access.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/storage/test_storage_basis.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lamindb-setup/tests/storage/test_storage_stats.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/.github/workflows/build.yml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/.gitignore +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/LICENSE +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/README.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/docs/index.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/docs/reference.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lamin-project.yaml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/ids.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0013_alter_cellmarker_species_alter_gene_species_and_more.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0020_alter_organism_bionty_source.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0021_rename_files_cellline_artifacts_and_more.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0022_rename_datasets_cellline_collections_and_more.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/0023_rename_publicsource_encode_uid.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/lnschema_bionty/migrations/__init__.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/noxfile.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-bionty/tests/test_integrity.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/.gitignore +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/LICENSE +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/README.md +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/ids.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0018_rename_datasetlabel_datasetulabel_and_more.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0025_remove_user_email.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0026_dataset_visibility_file_visibility.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0027_file_key_is_virtual.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0028_alter_dataset_visibility_alter_file_visibility.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0029_remove_feature_modality_remove_featureset_modality_and_more.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0030_alter_dataset_visibility_alter_file_visibility.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0032_remove_dataset_storage.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0033_alter_artifact_unique_together_artifact_n_objects_and_more.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/0043_run_json.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/lnschema_core/users.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/tests/test_integrity.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/sub/lnschema-core/tests/test_types.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/conftest.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/notebooks/initialized-with-nbproject.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/notebooks/no-title.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/notebooks/not-initialized.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_annotate.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_artifact.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_cache.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_can_validate.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_collection.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_data.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_db.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_delete.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_feature.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_feature_manager.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_feature_set.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_from_values.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_label_manager.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_load.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_manager.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_notebooks.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_parents.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_queryset.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_registry.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_run.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_save.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_settings.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_storage.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_transfer.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_transform.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_uid.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_ulabel.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_versioning.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_view.py +0 -0
- {lamindb-0.69.7 → lamindb-0.69.9}/tests/test_visibility.py +0 -0
@@ -30,6 +30,11 @@ jobs:
|
|
30
30
|
submodules: recursive
|
31
31
|
fetch-depth: 0
|
32
32
|
- uses: actions/setup-python@v5
|
33
|
+
if: ${{ matrix.group == 'storage' }}
|
34
|
+
with:
|
35
|
+
python-version: "3.9" # run just one job with a different python version
|
36
|
+
- uses: actions/setup-python@v5
|
37
|
+
if: ${{ matrix.group != 'storage' }}
|
33
38
|
with:
|
34
39
|
python-version: "3.11"
|
35
40
|
- name: cache pre-commit
|
@@ -100,7 +105,7 @@ jobs:
|
|
100
105
|
aws-region: us-east-1
|
101
106
|
- uses: actions/setup-python@v5
|
102
107
|
with:
|
103
|
-
python-version: "3.10"
|
108
|
+
python-version: "3.10" # use 3.10, 3.8 and 3.11 give issues
|
104
109
|
- run: pip install -U laminci
|
105
110
|
- run: nox -s "install(group='docs')"
|
106
111
|
- uses: actions/download-artifact@v2
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lamindb
|
3
|
-
Version: 0.69.
|
3
|
+
Version: 0.69.9
|
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,10 +9,10 @@ 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.
|
13
|
-
Requires-Dist: lamindb_setup==0.
|
12
|
+
Requires-Dist: lnschema_core==0.64.6
|
13
|
+
Requires-Dist: lamindb_setup==0.69.0
|
14
14
|
Requires-Dist: lamin_utils==0.13.1
|
15
|
-
Requires-Dist: lamin_cli==0.12.
|
15
|
+
Requires-Dist: lamin_cli==0.12.1
|
16
16
|
Requires-Dist: rapidfuzz
|
17
17
|
Requires-Dist: pyarrow
|
18
18
|
Requires-Dist: typing_extensions!=4.6.0
|
@@ -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.
|
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,19 @@
|
|
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.9 {small}`2024-04-04`
|
10
|
+
|
11
|
+
- 🐛 Fix clashes for multiple processes [PR](https://github.com/laminlabs/lamindb/pull/1553) [@falexwolf](https://github.com/falexwolf)
|
12
|
+
|
13
|
+
### 0.69.8 {small}`2024-04-04`
|
14
|
+
|
15
|
+
- ♻️ Use future annotations [PR](https://github.com/laminlabs/lamindb/pull/1549) [@Zethson](https://github.com/Zethson)
|
16
|
+
|
10
17
|
### 0.69.7 {small}`2024-04-03`
|
11
18
|
|
12
19
|
- ✨ Add ability to upload arbitrary files or folders from CLI [PR](https://github.com/laminlabs/lamindb/pull/1545) [@falexwolf](https://github.com/falexwolf)
|
@@ -77,9 +77,9 @@
|
|
77
77
|
"cell_type": "markdown",
|
78
78
|
"metadata": {},
|
79
79
|
"source": [
|
80
|
-
"###
|
80
|
+
"### Data lineage\n",
|
81
81
|
"\n",
|
82
|
-
"Run {meth}`~lamindb.track` to
|
82
|
+
"Run {meth}`~lamindb.track` to track data lineage."
|
83
83
|
]
|
84
84
|
},
|
85
85
|
{
|
@@ -88,7 +88,7 @@
|
|
88
88
|
"metadata": {},
|
89
89
|
"outputs": [],
|
90
90
|
"source": [
|
91
|
-
"# tag your
|
91
|
+
"# tag your notebook or script with auto-generated identifiers\n",
|
92
92
|
"ln.settings.transform.stem_uid = \"FPnfDtJz8qbE\"\n",
|
93
93
|
"ln.settings.transform.version = \"1\"\n",
|
94
94
|
"\n",
|
@@ -157,7 +157,7 @@
|
|
157
157
|
"cell_type": "markdown",
|
158
158
|
"metadata": {},
|
159
159
|
"source": [
|
160
|
-
"### Label\n",
|
160
|
+
"### Label artifacts\n",
|
161
161
|
"\n",
|
162
162
|
"Label an artifact with {class}`~lamindb.ULabel`."
|
163
163
|
]
|
@@ -181,7 +181,7 @@
|
|
181
181
|
"cell_type": "markdown",
|
182
182
|
"metadata": {},
|
183
183
|
"source": [
|
184
|
-
"### Query\n",
|
184
|
+
"### Query anything\n",
|
185
185
|
"\n",
|
186
186
|
"Because, under-the-hood, LaminDB is SQL, you can write arbitrary relational queries."
|
187
187
|
]
|
@@ -255,9 +255,9 @@
|
|
255
255
|
"cell_type": "markdown",
|
256
256
|
"metadata": {},
|
257
257
|
"source": [
|
258
|
-
"
|
258
|
+
"## Validate & annotate\n",
|
259
259
|
"\n",
|
260
|
-
"
|
260
|
+
"Let's validate a `DataFrame` by passing validation criteria in the `Annotate` constructor."
|
261
261
|
]
|
262
262
|
},
|
263
263
|
{
|
@@ -266,10 +266,12 @@
|
|
266
266
|
"metadata": {},
|
267
267
|
"outputs": [],
|
268
268
|
"source": [
|
269
|
-
"
|
270
|
-
"
|
271
|
-
"
|
272
|
-
"
|
269
|
+
"annotate = ln.Annotate.from_df(\n",
|
270
|
+
" df,\n",
|
271
|
+
" columns=ln.Feature.name, # map column names\n",
|
272
|
+
" categoricals={df.perturbation.name: ln.ULabel.name}, # map categories\n",
|
273
|
+
")\n",
|
274
|
+
"annotate.validate()"
|
273
275
|
]
|
274
276
|
},
|
275
277
|
{
|
@@ -278,16 +280,22 @@
|
|
278
280
|
"metadata": {},
|
279
281
|
"outputs": [],
|
280
282
|
"source": [
|
281
|
-
"
|
283
|
+
"# add non-validated terms to registries\n",
|
284
|
+
"annotate.add_new_from_columns()\n",
|
285
|
+
"annotate.add_new_from(df.perturbation.name)\n",
|
286
|
+
"\n",
|
287
|
+
"# view the registered features\n",
|
288
|
+
"ln.Feature.df()"
|
282
289
|
]
|
283
290
|
},
|
284
291
|
{
|
285
|
-
"cell_type": "
|
292
|
+
"cell_type": "code",
|
293
|
+
"execution_count": null,
|
286
294
|
"metadata": {},
|
295
|
+
"outputs": [],
|
287
296
|
"source": [
|
288
|
-
"
|
289
|
-
"
|
290
|
-
"Let's validate a `DataFrame` by passing validation criteria in the `Annotate` constructor."
|
297
|
+
"# view the registered ULabels\n",
|
298
|
+
"ln.ULabel.df()"
|
291
299
|
]
|
292
300
|
},
|
293
301
|
{
|
@@ -296,12 +304,12 @@
|
|
296
304
|
"metadata": {},
|
297
305
|
"outputs": [],
|
298
306
|
"source": [
|
299
|
-
"
|
300
|
-
"
|
301
|
-
"
|
302
|
-
"
|
303
|
-
")\n",
|
304
|
-
"
|
307
|
+
"# now the validation passes\n",
|
308
|
+
"annotate.validate()\n",
|
309
|
+
"\n",
|
310
|
+
"# annotate and save the artifact\n",
|
311
|
+
"artifact = annotate.save_artifact(description=\"my RNA-seq\", version=\"1\")\n",
|
312
|
+
"artifact.describe()"
|
305
313
|
]
|
306
314
|
},
|
307
315
|
{
|
@@ -310,12 +318,9 @@
|
|
310
318
|
"metadata": {},
|
311
319
|
"outputs": [],
|
312
320
|
"source": [
|
313
|
-
"#
|
314
|
-
"annotate.
|
315
|
-
"
|
316
|
-
"\n",
|
317
|
-
"# view the registered features\n",
|
318
|
-
"ln.Feature.df()"
|
321
|
+
"# get lookup object for the entities of interest\n",
|
322
|
+
"lookups = annotate.lookup()\n",
|
323
|
+
"lookups"
|
319
324
|
]
|
320
325
|
},
|
321
326
|
{
|
@@ -324,15 +329,9 @@
|
|
324
329
|
"metadata": {},
|
325
330
|
"outputs": [],
|
326
331
|
"source": [
|
327
|
-
"#
|
328
|
-
"
|
329
|
-
"
|
330
|
-
"# now the validation passes\n",
|
331
|
-
"annotate.validate()\n",
|
332
|
-
"\n",
|
333
|
-
"# annotate and save the artifact\n",
|
334
|
-
"artifact = annotate.save_artifact(description=\"my RNA-seq\", version=\"1\")\n",
|
335
|
-
"artifact.describe()"
|
332
|
+
"# filter artifacts with specific labels\n",
|
333
|
+
"perturbations = lookups[\"perturbation\"]\n",
|
334
|
+
"ln.Artifact.filter(ulabels=candidate_marker_study).filter(ulabels=perturbations.ifng).one()"
|
336
335
|
]
|
337
336
|
},
|
338
337
|
{
|
@@ -347,49 +346,49 @@
|
|
347
346
|
]
|
348
347
|
},
|
349
348
|
{
|
350
|
-
"cell_type": "
|
351
|
-
"execution_count": null,
|
349
|
+
"cell_type": "markdown",
|
352
350
|
"metadata": {},
|
353
|
-
"outputs": [],
|
354
351
|
"source": [
|
355
|
-
"
|
356
|
-
"lookups = annotate.lookup()\n",
|
357
|
-
"lookups"
|
352
|
+
"## Biological registries"
|
358
353
|
]
|
359
354
|
},
|
360
355
|
{
|
361
|
-
"cell_type": "
|
362
|
-
"execution_count": null,
|
356
|
+
"cell_type": "markdown",
|
363
357
|
"metadata": {},
|
364
|
-
"
|
365
|
-
|
358
|
+
"source": [
|
359
|
+
"The generic {class}`~lamindb.Feature` and {class}`~lamindb.ULabel` registries will get you pretty far.\n",
|
360
|
+
"\n",
|
361
|
+
"Let's now look at what you do can with a dedicated biological registry like {class}`~bionty.Gene`."
|
362
|
+
]
|
366
363
|
},
|
367
364
|
{
|
368
|
-
"cell_type": "
|
369
|
-
"execution_count": null,
|
365
|
+
"cell_type": "markdown",
|
370
366
|
"metadata": {},
|
371
|
-
"outputs": [],
|
372
367
|
"source": [
|
373
|
-
"
|
374
|
-
"
|
375
|
-
"
|
368
|
+
"### Access public ontologies\n",
|
369
|
+
"\n",
|
370
|
+
"Every {py:mod}`bionty` registry is based on public ontologies."
|
376
371
|
]
|
377
372
|
},
|
378
373
|
{
|
379
|
-
"cell_type": "
|
374
|
+
"cell_type": "code",
|
375
|
+
"execution_count": null,
|
380
376
|
"metadata": {},
|
377
|
+
"outputs": [],
|
381
378
|
"source": [
|
382
|
-
"
|
379
|
+
"import bionty as bt\n",
|
380
|
+
"\n",
|
381
|
+
"cell_types = bt.CellType.public()\n",
|
382
|
+
"cell_types"
|
383
383
|
]
|
384
384
|
},
|
385
385
|
{
|
386
|
-
"cell_type": "
|
386
|
+
"cell_type": "code",
|
387
|
+
"execution_count": null,
|
387
388
|
"metadata": {},
|
389
|
+
"outputs": [],
|
388
390
|
"source": [
|
389
|
-
"
|
390
|
-
"However, if you frequently use a specific entity, you'll want a dedicated registry.\n",
|
391
|
-
"\n",
|
392
|
-
"Let’s look at the example of {class}`~bionty.Gene` and use it to register features."
|
391
|
+
"cell_types.search(\"gamma delta T cell\").head(2)"
|
393
392
|
]
|
394
393
|
},
|
395
394
|
{
|
@@ -446,7 +445,7 @@
|
|
446
445
|
"cell_type": "markdown",
|
447
446
|
"metadata": {},
|
448
447
|
"source": [
|
449
|
-
"###
|
448
|
+
"### Add new entities to biological registries\n",
|
450
449
|
"\n",
|
451
450
|
"Create a cell type record and add a new cell state."
|
452
451
|
]
|
@@ -487,7 +486,14 @@
|
|
487
486
|
"cell_type": "markdown",
|
488
487
|
"metadata": {},
|
489
488
|
"source": [
|
490
|
-
"##
|
489
|
+
"## Scale up learning"
|
490
|
+
]
|
491
|
+
},
|
492
|
+
{
|
493
|
+
"cell_type": "markdown",
|
494
|
+
"metadata": {},
|
495
|
+
"source": [
|
496
|
+
"How do you learn from new data batches that extend your previous data history? Leverage {class}`~lamindb.Collection`."
|
491
497
|
]
|
492
498
|
},
|
493
499
|
{
|
@@ -549,16 +555,9 @@
|
|
549
555
|
"outputs": [],
|
550
556
|
"source": [
|
551
557
|
"# if it's small enough, you can load the entire collection into memory as if it was one\n",
|
552
|
-
"collection.load()"
|
553
|
-
|
554
|
-
|
555
|
-
{
|
556
|
-
"cell_type": "code",
|
557
|
-
"execution_count": null,
|
558
|
-
"metadata": {},
|
559
|
-
"outputs": [],
|
560
|
-
"source": [
|
561
|
-
"# you can always iterate over its artifacts\n",
|
558
|
+
"collection.load()\n",
|
559
|
+
"\n",
|
560
|
+
"# typically, it's too big, hence, iterate over its artifacts\n",
|
562
561
|
"collection.artifacts.df()"
|
563
562
|
]
|
564
563
|
},
|
@@ -567,7 +566,7 @@
|
|
567
566
|
"metadata": {},
|
568
567
|
"source": [
|
569
568
|
"```\n",
|
570
|
-
"#
|
569
|
+
"# to train models, batch iterate through the collection as if it was one array\n",
|
571
570
|
"from torch.utils.data import DataLoader, WeightedRandomSampler\n",
|
572
571
|
"dataset = collection.mapped(label_keys=[\"perturbation\"])\n",
|
573
572
|
"sampler = WeightedRandomSampler(\n",
|
@@ -579,6 +578,13 @@
|
|
579
578
|
"```"
|
580
579
|
]
|
581
580
|
},
|
581
|
+
{
|
582
|
+
"cell_type": "markdown",
|
583
|
+
"metadata": {},
|
584
|
+
"source": [
|
585
|
+
"Read this [blog post](https://lamin.ai/blog/arrayloader-benchmarks) for more on training models on sharded datasets."
|
586
|
+
]
|
587
|
+
},
|
582
588
|
{
|
583
589
|
"cell_type": "markdown",
|
584
590
|
"metadata": {},
|
@@ -625,7 +631,7 @@
|
|
625
631
|
"cell_type": "markdown",
|
626
632
|
"metadata": {},
|
627
633
|
"source": [
|
628
|
-
"## Data lineage\n",
|
634
|
+
"## Data lineage across entire projects\n",
|
629
635
|
"\n",
|
630
636
|
"View the sequence of data transformations ({class}`~lamindb.Transform`) in a project (from [here](docs:project-flow), based on [Schmidt _et al._, 2022](https://pubmed.ncbi.nlm.nih.gov/35113687/)):\n",
|
631
637
|
"\n",
|
@@ -651,13 +657,19 @@
|
|
651
657
|
"cell_type": "markdown",
|
652
658
|
"metadata": {},
|
653
659
|
"source": [
|
654
|
-
"##
|
660
|
+
"## Distributed databases\n",
|
661
|
+
"\n",
|
662
|
+
"LaminDB is a distributed system like git. Similar to cloning a repository, collaborators can connect to your instance via:\n",
|
655
663
|
"\n",
|
656
|
-
"
|
664
|
+
"```python\n",
|
665
|
+
"ln.connect(\"account-handle/instance-name\")\n",
|
666
|
+
"```\n",
|
667
|
+
"\n",
|
668
|
+
"Or you can load an instance on the command line for auto-connecting in a Python session:\n",
|
657
669
|
"\n",
|
658
670
|
"```shell\n",
|
659
|
-
"lamin load
|
660
|
-
"
|
671
|
+
"lamin load \"account-handle/instance-name\"\n",
|
672
|
+
"```\n"
|
661
673
|
]
|
662
674
|
},
|
663
675
|
{
|
@@ -1,11 +1,15 @@
|
|
1
|
-
from
|
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
|
-
|
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:
|
23
|
-
slots:
|
24
|
-
using:
|
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:
|
95
|
-
using:
|
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:
|
113
|
+
self._kwargs: dict = kwargs
|
110
114
|
self._save_columns()
|
111
115
|
|
112
116
|
@property
|
113
|
-
def fields(self) ->
|
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:
|
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:
|
267
|
+
artifact: Artifact | Iterable[Artifact],
|
264
268
|
name: str,
|
265
|
-
description:
|
266
|
-
reference:
|
267
|
-
reference_type:
|
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:
|
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) ->
|
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:
|
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:
|
420
|
+
categoricals: dict[str, FieldAttr] | None = None,
|
417
421
|
columns: FieldAttr = Feature.name,
|
418
|
-
using:
|
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:
|
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:
|
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:
|
469
|
-
) ->
|
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:
|
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:
|
564
|
-
using:
|
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:
|
584
|
-
using:
|
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:
|
611
|
+
data: pd.DataFrame | ad.AnnData,
|
608
612
|
description: str,
|
609
|
-
fields:
|
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:
|
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:
|
669
|
+
values: list[str],
|
666
670
|
field: FieldAttr,
|
667
671
|
key: str,
|
668
672
|
save_function: str = "add_new_from",
|
669
|
-
using:
|
673
|
+
using: str | None = None,
|
670
674
|
validated_only: bool = True,
|
671
|
-
kwargs:
|
672
|
-
df:
|
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:
|
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:
|
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:
|
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:
|
815
|
+
values: list[str],
|
812
816
|
field: FieldAttr,
|
813
|
-
using:
|
814
|
-
kwargs:
|
815
|
-
) ->
|
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:
|