lamindb 1.9.0__tar.gz → 1.9.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lamindb-1.9.0 → lamindb-1.9.1}/PKG-INFO +2 -2
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/keep-artifacts-local.ipynb +53 -8
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/__init__.py +1 -1
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/curators/core.py +6 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/artifact.py +4 -1
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/transform.py +7 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/pyproject.toml +1 -1
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_curators_general.py +32 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/.github/ISSUE_TEMPLATE/usage_question.yml +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/.github/workflows/build.yml +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/.github/workflows/doc-changes.yml +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/.gitignore +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/.gitmodules +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/.pre-commit-config.yaml +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/CONTRIBUTING.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/LICENSE +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/README.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/api.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/arrays.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/bio-registries.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/bionty.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/changelog.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/clinicore.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/curate.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/acid.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/curate-any.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/delete.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/idempotency.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/import-modules.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/pydantic-pandera.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/reference-field.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/search.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/setup.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/symbol-mapping.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/test_notebooks.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/track-run-inputs.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/validate-fields.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq/visibility.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/faq.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/guide.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/includes/installation.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/index.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/lamindb.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/query-search.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/registries.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/curate_anndata_flexible.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/curate_dataframe_flexible.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/curate_dataframe_minimal_errors.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/curate_mudata.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/curate_soma_experiment.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/curate_spatialdata.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/define_mini_immuno_features_labels.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/define_mini_immuno_schema_flexible.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/define_schema_anndata_ensembl_gene_ids_and_valid_features_in_obs.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/define_schema_spatialdata.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/define_valid_features.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/ingest_mini_immuno_datasets.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/run_track_and_finish.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/run_track_with_params.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/run_workflow.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/scripts/synced_with_git.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/add-replace-cache.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/anndata-accessor.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/test-files/iris.csv +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/test-files/iris.data +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/test-files/new_iris.csv +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/test_notebooks.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/upload.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage/vitessce.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/storage.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/test_notebooks.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/track.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/transfer.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/docs/wetlab.md +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/_finish.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/_tracked.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/_view.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/base/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/base/fields.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/base/ids.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/base/types.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/base/uids.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/base/users.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/_compat.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/_context.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/_mapped_collection.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/_settings.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/_sync_git.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/_track_environment.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/datasets/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/datasets/_core.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/datasets/_fake.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/datasets/_small.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/datasets/mini_immuno.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/exceptions.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/loaders.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_anndata_accessor.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_backed_access.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_polars_lazy_df.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_pyarrow_dataset.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_tiledbsoma.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_valid_suffixes.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/_zarr.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/objects.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/storage/paths.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/subsettings/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/subsettings/_annotation_settings.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/subsettings/_creation_settings.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/core/types.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/curators/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/curators/_legacy.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/errors.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/cellxgene/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/cellxgene/_cellxgene.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/cellxgene/cxg_schema_versions.csv +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/fixtures/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/fixtures/sheets.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/schemas/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/schemas/_anndata.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/examples/schemas/_simple.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/integrations/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/integrations/_vitessce.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0069_squashed.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0070_lamindbv1_migrate_data.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0071_lamindbv1_migrate_schema.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0072_remove_user__branch_code_remove_user_aux_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0073_merge_ourprojects.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0074_lamindbv1_part4.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0075_lamindbv1_part5.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0076_lamindbv1_part6.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0077_lamindbv1_part6b.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0078_lamindbv1_part6c.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0079_alter_rundata_value_json_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0080_polish_lamindbv1.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0081_revert_textfield_collection.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0082_alter_feature_dtype.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0083_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0084_alter_schemafeature_feature_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0085_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0086_various.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0087_rename__schemas_m2m_artifact_feature_sets_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0088_schema_components.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0089_subsequent_runs.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0090_runproject_project_runs.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0091_alter_featurevalue_options_alter_space_options_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0092_alter_artifactfeaturevalue_artifact_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0093_alter_schemacomponent_unique_together.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0094_writeloglock_writelogmigrationstate_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0095_remove_rundata_flextable.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0096_remove_artifact__param_values_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0097_remove_schemaparam_param_remove_paramvalue_param_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0098_alter_feature_type_alter_project_type_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0099_alter_writelog_seqno.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0100_branch_alter_artifact__branch_code_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0101_alter_artifact_hash_alter_feature_name_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0102_remove_writelog_branch_code_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0103_remove_writelog_migration_state_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0104_alter_branch_uid.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0105_record_unique_name.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0106_transfer_data_migration.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0107_add_schema_to_record.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0108_remove_record_sheet_remove_sheetproject_sheet_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0109_record_input_of_runs_alter_record_run_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0110_rename_values_artifacts_record_linked_artifacts.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0111_remove_record__sort_order.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0112_alter_recordartifact_feature_and_more.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0113_lower_case_branch_and_space_names.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0114_alter_run__status_code.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0115_alter_space_uid.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0115_squashed.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_describe.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_django.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_feature_manager.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_from_values.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_is_versioned.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_label_manager.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/_relations.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/artifact_set.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/can_curate.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/collection.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/feature.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/has_parents.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/project.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/query_manager.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/query_set.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/record.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/run.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/save.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/schema.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/sqlrecord.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/storage.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/models/ulabel.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/py.typed +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/setup/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/setup/_switch.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/setup/core/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/setup/errors/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/lamindb/setup/types/__init__.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/noxfile.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/conftest.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/_dataset_fixtures.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/conftest.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/notebooks/basic-r-notebook.Rmd.cleaned.html +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/notebooks/basic-r-notebook.Rmd.html +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/notebooks/no-title.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/duplicate1/script-to-test-versioning.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/duplicate2/script-to-test-versioning.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/duplicate3/script-to-test-versioning.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/duplicate4/script-to-test-versioning.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/duplicate5/script-to-test-versioning.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/script-to-test-filename-change.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/scripts/script-to-test-versioning.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_artifact.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_artifact_folders.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_can_curate.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_collection.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_data.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_db.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_delete.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_describe_and_df_calls.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_dtype.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_feature.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_feature_label_manager.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_from_values.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_has_parents.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_integrity.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_load.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_manager.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_models.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_notebooks.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_queryset.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_record.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_run.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_save.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_schema.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_search.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_settings.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_storage.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_track.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_tracked.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_transform.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_ulabel.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_versioning.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_view.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/core/test_visibility.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/conftest.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_cat_managers.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_curators_examples.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_curators_multivalue.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_cxg_curator.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_dataframe_curators_accounting_example.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/curators/test_records.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/conftest.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/jwt_utils.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/scripts/check_lamin_dev.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/scripts/clean_lamin_dev.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/scripts/setup_access.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/scripts/setup_instance.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/permissions/test_permissions.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/conftest.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/test_artifact_storage.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/test_artifact_zarr.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/test_cache.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/test_storage_lifecycle.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/test_streaming.py +0 -0
- {lamindb-1.9.0 → lamindb-1.9.1}/tests/storage/test_transfer.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: lamindb
|
3
|
-
Version: 1.9.
|
3
|
+
Version: 1.9.1
|
4
4
|
Summary: A data framework for biology.
|
5
5
|
Author-email: Lamin Labs <open-source@lamin.ai>
|
6
6
|
Requires-Python: >=3.10,<3.14
|
@@ -11,7 +11,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.13
|
12
12
|
Requires-Dist: lamin_utils==0.15.0
|
13
13
|
Requires-Dist: lamin_cli==1.6.0
|
14
|
-
Requires-Dist: lamindb_setup[aws]==1.8.
|
14
|
+
Requires-Dist: lamindb_setup[aws]==1.8.3
|
15
15
|
Requires-Dist: pyyaml
|
16
16
|
Requires-Dist: pyarrow
|
17
17
|
Requires-Dist: pandera>=0.24.0
|
@@ -47,7 +47,7 @@
|
|
47
47
|
},
|
48
48
|
"outputs": [],
|
49
49
|
"source": [
|
50
|
-
"#
|
50
|
+
"# pip install 'lamindb[jupyter]'\n",
|
51
51
|
"import lamindb as ln\n",
|
52
52
|
"\n",
|
53
53
|
"ln.track(\"l9lFf83aPwRc0000\")"
|
@@ -132,6 +132,23 @@
|
|
132
132
|
"ln.Storage.df()"
|
133
133
|
]
|
134
134
|
},
|
135
|
+
{
|
136
|
+
"cell_type": "markdown",
|
137
|
+
"metadata": {},
|
138
|
+
"source": [
|
139
|
+
"You can now set it as a local default storage location.\n",
|
140
|
+
"Next time you connect to the instance, this won't be necessary and the location will be automatically detected as the local default."
|
141
|
+
]
|
142
|
+
},
|
143
|
+
{
|
144
|
+
"cell_type": "code",
|
145
|
+
"execution_count": null,
|
146
|
+
"metadata": {},
|
147
|
+
"outputs": [],
|
148
|
+
"source": [
|
149
|
+
"ln.settings.local_storage = \"./our_local_storage\""
|
150
|
+
]
|
151
|
+
},
|
135
152
|
{
|
136
153
|
"cell_type": "markdown",
|
137
154
|
"metadata": {},
|
@@ -336,7 +353,11 @@
|
|
336
353
|
{
|
337
354
|
"cell_type": "code",
|
338
355
|
"execution_count": null,
|
339
|
-
"metadata": {
|
356
|
+
"metadata": {
|
357
|
+
"tags": [
|
358
|
+
"hide-output"
|
359
|
+
]
|
360
|
+
},
|
340
361
|
"outputs": [],
|
341
362
|
"source": [
|
342
363
|
"artifact.save(upload=True)"
|
@@ -352,7 +373,11 @@
|
|
352
373
|
{
|
353
374
|
"cell_type": "code",
|
354
375
|
"execution_count": null,
|
355
|
-
"metadata": {
|
376
|
+
"metadata": {
|
377
|
+
"tags": [
|
378
|
+
"hide-output"
|
379
|
+
]
|
380
|
+
},
|
356
381
|
"outputs": [],
|
357
382
|
"source": [
|
358
383
|
"ln.settings.storage.root.view_tree()"
|
@@ -368,7 +393,11 @@
|
|
368
393
|
{
|
369
394
|
"cell_type": "code",
|
370
395
|
"execution_count": null,
|
371
|
-
"metadata": {
|
396
|
+
"metadata": {
|
397
|
+
"tags": [
|
398
|
+
"hide-output"
|
399
|
+
]
|
400
|
+
},
|
372
401
|
"outputs": [],
|
373
402
|
"source": [
|
374
403
|
"assert artifact.path.exists()\n",
|
@@ -394,7 +423,11 @@
|
|
394
423
|
{
|
395
424
|
"cell_type": "code",
|
396
425
|
"execution_count": null,
|
397
|
-
"metadata": {
|
426
|
+
"metadata": {
|
427
|
+
"tags": [
|
428
|
+
"hide-output"
|
429
|
+
]
|
430
|
+
},
|
398
431
|
"outputs": [],
|
399
432
|
"source": [
|
400
433
|
"filepath = ln.core.datasets.file_mini_csv()\n",
|
@@ -412,7 +445,11 @@
|
|
412
445
|
{
|
413
446
|
"cell_type": "code",
|
414
447
|
"execution_count": null,
|
415
|
-
"metadata": {
|
448
|
+
"metadata": {
|
449
|
+
"tags": [
|
450
|
+
"hide-output"
|
451
|
+
]
|
452
|
+
},
|
416
453
|
"outputs": [],
|
417
454
|
"source": [
|
418
455
|
"ln.Artifact.df(include=\"storage__root\")"
|
@@ -435,7 +472,11 @@
|
|
435
472
|
{
|
436
473
|
"cell_type": "code",
|
437
474
|
"execution_count": null,
|
438
|
-
"metadata": {
|
475
|
+
"metadata": {
|
476
|
+
"tags": [
|
477
|
+
"hide-output"
|
478
|
+
]
|
479
|
+
},
|
439
480
|
"outputs": [],
|
440
481
|
"source": [
|
441
482
|
"storage_record = ln.Storage.get(root__endswith=\"our_local_storage\")\n",
|
@@ -461,7 +502,11 @@
|
|
461
502
|
{
|
462
503
|
"cell_type": "code",
|
463
504
|
"execution_count": null,
|
464
|
-
"metadata": {
|
505
|
+
"metadata": {
|
506
|
+
"tags": [
|
507
|
+
"hide-ouput"
|
508
|
+
]
|
509
|
+
},
|
465
510
|
"outputs": [],
|
466
511
|
"source": [
|
467
512
|
"artifact.delete(permanent=True)\n",
|
@@ -1236,6 +1236,9 @@ class CatVector:
|
|
1236
1236
|
registry = self._field.field.model
|
1237
1237
|
field_name = self._field.field.name
|
1238
1238
|
non_validated_records: SQLRecordList[Any] = [] # type: ignore
|
1239
|
+
type_record = None
|
1240
|
+
if self._subtype_str != "" and "=" not in self._subtype_str:
|
1241
|
+
type_record = registry.get(name=self._subtype_str)
|
1239
1242
|
if df is not None and registry == Feature:
|
1240
1243
|
nonval_columns = Feature.inspect(df.columns, mute=True).non_validated
|
1241
1244
|
non_validated_records = Feature.from_df(df.loc[:, nonval_columns])
|
@@ -1252,6 +1255,9 @@ class CatVector:
|
|
1252
1255
|
init_kwargs = {field_name: value}
|
1253
1256
|
if registry == Feature:
|
1254
1257
|
init_kwargs["dtype"] = "cat" if dtype is None else dtype
|
1258
|
+
if type_record is not None:
|
1259
|
+
# if subtype_str is set, we need to set the type for new records
|
1260
|
+
init_kwargs["type"] = type_record
|
1255
1261
|
non_validated_records.append(registry(**init_kwargs, **create_kwargs))
|
1256
1262
|
if len(non_validated_records) > 0:
|
1257
1263
|
ln_save(non_validated_records)
|
@@ -1382,7 +1382,10 @@ class Artifact(SQLRecord, IsVersioned, TracksRun, TracksUpdates):
|
|
1382
1382
|
skip_check_exists = kwargs.pop("skip_check_exists", False)
|
1383
1383
|
if "storage" in kwargs:
|
1384
1384
|
storage = kwargs.pop("storage")
|
1385
|
-
elif
|
1385
|
+
elif (
|
1386
|
+
setup_settings.instance.keep_artifacts_local
|
1387
|
+
and setup_settings.instance._local_storage is not None
|
1388
|
+
):
|
1386
1389
|
storage = setup_settings.instance.local_storage.record
|
1387
1390
|
else:
|
1388
1391
|
storage = setup_settings.instance.storage.record
|
@@ -317,10 +317,17 @@ class Transform(SQLRecord, IsVersioned):
|
|
317
317
|
|
318
318
|
def delete(self) -> None:
|
319
319
|
"""Delete."""
|
320
|
+
from .project import TransformProject
|
321
|
+
|
320
322
|
# query all runs and delete their artifacts
|
321
323
|
runs = Run.filter(transform=self)
|
322
324
|
for run in runs:
|
323
325
|
delete_run_artifacts(run)
|
326
|
+
# CASCADE doesn't do the job below because run_id might be protected through run__transform=self
|
327
|
+
# hence, proactively delete the labels
|
328
|
+
qs = TransformProject.filter(transform=self)
|
329
|
+
if qs.exists():
|
330
|
+
qs.delete()
|
324
331
|
# at this point, all artifacts have been taken care of
|
325
332
|
# we can now leverage CASCADE delete
|
326
333
|
super().delete()
|
@@ -580,3 +580,35 @@ def test_hash_index_feature(df):
|
|
580
580
|
schema_index.delete()
|
581
581
|
schema.delete()
|
582
582
|
ln.Feature.filter().delete()
|
583
|
+
|
584
|
+
|
585
|
+
def test_add_new_from_subtype(df):
|
586
|
+
"""Test that add_new_from works with subtypes."""
|
587
|
+
sample_type = ln.Record(name="SampleType", is_type=True).save()
|
588
|
+
ln.Record(name="Type A", type=sample_type).save()
|
589
|
+
schema = ln.Schema(
|
590
|
+
name="sample schema",
|
591
|
+
features=[
|
592
|
+
ln.Feature(name="sample_id", dtype="str").save(),
|
593
|
+
ln.Feature(name="sample_name", dtype="str").save(),
|
594
|
+
ln.Feature(name="sample_type", dtype="cat[Record[SampleType]]").save(),
|
595
|
+
],
|
596
|
+
coerce_dtype=True,
|
597
|
+
).save()
|
598
|
+
|
599
|
+
curator = ln.curators.DataFrameCurator(df, schema)
|
600
|
+
try:
|
601
|
+
curator.validate()
|
602
|
+
except ln.errors.ValidationError as error:
|
603
|
+
assert "1 term not validated in feature 'sample_type': 'Type B'" in str(error)
|
604
|
+
|
605
|
+
# add new from subtype
|
606
|
+
curator.cat.add_new_from("sample_type")
|
607
|
+
curator.validate()
|
608
|
+
assert sample_type.records.list("name") == ["Type A", "Type B"]
|
609
|
+
|
610
|
+
# clean up
|
611
|
+
schema.delete()
|
612
|
+
ln.Feature.filter().delete()
|
613
|
+
ln.Record.filter().update(type=None)
|
614
|
+
ln.Record.filter().delete()
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0079_alter_rundata_value_json_and_more.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{lamindb-1.9.0 → lamindb-1.9.1}/lamindb/migrations/0084_alter_schemafeature_feature_and_more.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|