lamindb-core 2.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. lamindb_core-2.3.0/.github/ISSUE_TEMPLATE/bug_report.yml +15 -0
  2. lamindb_core-2.3.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
  3. lamindb_core-2.3.0/.github/ISSUE_TEMPLATE/enhancement.yml +12 -0
  4. lamindb_core-2.3.0/.github/ISSUE_TEMPLATE/usage_question.yml +14 -0
  5. lamindb_core-2.3.0/.github/workflows/build.yml +262 -0
  6. lamindb_core-2.3.0/.github/workflows/doc-changes.yml +24 -0
  7. lamindb_core-2.3.0/.gitignore +243 -0
  8. lamindb_core-2.3.0/.gitmodules +15 -0
  9. lamindb_core-2.3.0/.pre-commit-config.yaml +75 -0
  10. lamindb_core-2.3.0/CONTRIBUTING.md +111 -0
  11. lamindb_core-2.3.0/LICENSE +201 -0
  12. lamindb_core-2.3.0/PKG-INFO +542 -0
  13. lamindb_core-2.3.0/README.md +489 -0
  14. lamindb_core-2.3.0/docs/api.md +21 -0
  15. lamindb_core-2.3.0/docs/arrays.md +251 -0
  16. lamindb_core-2.3.0/docs/bionty.md +5 -0
  17. lamindb_core-2.3.0/docs/changelog.md +3 -0
  18. lamindb_core-2.3.0/docs/curate.md +599 -0
  19. lamindb_core-2.3.0/docs/faq/acid.md +106 -0
  20. lamindb_core-2.3.0/docs/faq/curate-any.md +117 -0
  21. lamindb_core-2.3.0/docs/faq/idempotency.md +140 -0
  22. lamindb_core-2.3.0/docs/faq/import-modules.md +28 -0
  23. lamindb_core-2.3.0/docs/faq/keep-artifacts-local.md +187 -0
  24. lamindb_core-2.3.0/docs/faq/pydantic-pandera.md +411 -0
  25. lamindb_core-2.3.0/docs/faq/reference-field.md +30 -0
  26. lamindb_core-2.3.0/docs/faq/search.md +83 -0
  27. lamindb_core-2.3.0/docs/faq/symbol-mapping.md +115 -0
  28. lamindb_core-2.3.0/docs/faq/test_notebooks.py +12 -0
  29. lamindb_core-2.3.0/docs/faq/track-run-inputs.md +114 -0
  30. lamindb_core-2.3.0/docs/faq/trash-archive.md +54 -0
  31. lamindb_core-2.3.0/docs/faq/validate-fields.md +28 -0
  32. lamindb_core-2.3.0/docs/faq.md +18 -0
  33. lamindb_core-2.3.0/docs/guide.md +27 -0
  34. lamindb_core-2.3.0/docs/index.md +15 -0
  35. lamindb_core-2.3.0/docs/lamindb.md +5 -0
  36. lamindb_core-2.3.0/docs/manage-ontologies.md +335 -0
  37. lamindb_core-2.3.0/docs/pertdb.md +5 -0
  38. lamindb_core-2.3.0/docs/query-search.md +8 -0
  39. lamindb_core-2.3.0/docs/registries.md +275 -0
  40. lamindb_core-2.3.0/docs/scripts/curate_anndata_flexible.py +10 -0
  41. lamindb_core-2.3.0/docs/scripts/curate_anndata_uns.py +9 -0
  42. lamindb_core-2.3.0/docs/scripts/curate_dataframe_attrs.py +14 -0
  43. lamindb_core-2.3.0/docs/scripts/curate_dataframe_external_features.py +24 -0
  44. lamindb_core-2.3.0/docs/scripts/curate_dataframe_flexible.py +8 -0
  45. lamindb_core-2.3.0/docs/scripts/curate_dataframe_minimal_errors.py +11 -0
  46. lamindb_core-2.3.0/docs/scripts/curate_dataframe_union_features.py +14 -0
  47. lamindb_core-2.3.0/docs/scripts/curate_mudata.py +70 -0
  48. lamindb_core-2.3.0/docs/scripts/curate_soma_experiment.py +42 -0
  49. lamindb_core-2.3.0/docs/scripts/curate_spatialdata.py +17 -0
  50. lamindb_core-2.3.0/docs/scripts/define_schema_anndata_uns.py +10 -0
  51. lamindb_core-2.3.0/docs/scripts/define_schema_df_metadata.py +9 -0
  52. lamindb_core-2.3.0/docs/scripts/define_schema_spatialdata.py +54 -0
  53. lamindb_core-2.3.0/docs/scripts/my_workflow.py +12 -0
  54. lamindb_core-2.3.0/docs/scripts/my_workflow_with_click.py +14 -0
  55. lamindb_core-2.3.0/docs/scripts/my_workflow_with_step.py +26 -0
  56. lamindb_core-2.3.0/docs/scripts/run_script_with_step.py +34 -0
  57. lamindb_core-2.3.0/docs/scripts/run_track_and_finish.py +7 -0
  58. lamindb_core-2.3.0/docs/scripts/run_track_with_features_and_params.py +18 -0
  59. lamindb_core-2.3.0/docs/scripts/run_track_with_params.py +22 -0
  60. lamindb_core-2.3.0/docs/scripts/synced_with_git.py +6 -0
  61. lamindb_core-2.3.0/docs/storage/add-replace-cache.ipynb +991 -0
  62. lamindb_core-2.3.0/docs/storage/anndata-accessor.ipynb +352 -0
  63. lamindb_core-2.3.0/docs/storage/prepare-transfer-local-to-cloud.ipynb +93 -0
  64. lamindb_core-2.3.0/docs/storage/test-files/iris.csv +7 -0
  65. lamindb_core-2.3.0/docs/storage/test-files/iris.data +6 -0
  66. lamindb_core-2.3.0/docs/storage/test-files/new_iris.csv +7 -0
  67. lamindb_core-2.3.0/docs/storage/test_notebooks.py +11 -0
  68. lamindb_core-2.3.0/docs/storage/transfer-local-to-cloud.ipynb +122 -0
  69. lamindb_core-2.3.0/docs/storage/upload.ipynb +383 -0
  70. lamindb_core-2.3.0/docs/storage/vitessce.ipynb +186 -0
  71. lamindb_core-2.3.0/docs/storage.md +12 -0
  72. lamindb_core-2.3.0/docs/test_notebooks.py +25 -0
  73. lamindb_core-2.3.0/docs/track.md +550 -0
  74. lamindb_core-2.3.0/docs/transfer.md +119 -0
  75. lamindb_core-2.3.0/lamindb/__init__.py +239 -0
  76. lamindb_core-2.3.0/lamindb/_finish.py +512 -0
  77. lamindb_core-2.3.0/lamindb/_view.py +166 -0
  78. lamindb_core-2.3.0/lamindb/base/__init__.py +22 -0
  79. lamindb_core-2.3.0/lamindb/base/dtypes.py +98 -0
  80. lamindb_core-2.3.0/lamindb/base/fields.py +296 -0
  81. lamindb_core-2.3.0/lamindb/base/ids.py +1 -0
  82. lamindb_core-2.3.0/lamindb/base/types.py +173 -0
  83. lamindb_core-2.3.0/lamindb/base/uids.py +112 -0
  84. lamindb_core-2.3.0/lamindb/base/users.py +61 -0
  85. lamindb_core-2.3.0/lamindb/base/utils.py +55 -0
  86. lamindb_core-2.3.0/lamindb/core/__init__.py +65 -0
  87. lamindb_core-2.3.0/lamindb/core/_compat.py +60 -0
  88. lamindb_core-2.3.0/lamindb/core/_context.py +1200 -0
  89. lamindb_core-2.3.0/lamindb/core/_functions.py +182 -0
  90. lamindb_core-2.3.0/lamindb/core/_mapped_collection.py +700 -0
  91. lamindb_core-2.3.0/lamindb/core/_settings.py +296 -0
  92. lamindb_core-2.3.0/lamindb/core/_sync_git.py +296 -0
  93. lamindb_core-2.3.0/lamindb/core/_track_environment.py +31 -0
  94. lamindb_core-2.3.0/lamindb/core/exceptions.py +1 -0
  95. lamindb_core-2.3.0/lamindb/core/loaders.py +207 -0
  96. lamindb_core-2.3.0/lamindb/core/storage/__init__.py +20 -0
  97. lamindb_core-2.3.0/lamindb/core/storage/_anndata_accessor.py +898 -0
  98. lamindb_core-2.3.0/lamindb/core/storage/_backed_access.py +224 -0
  99. lamindb_core-2.3.0/lamindb/core/storage/_polars_lazy_df.py +119 -0
  100. lamindb_core-2.3.0/lamindb/core/storage/_pyarrow_dataset.py +41 -0
  101. lamindb_core-2.3.0/lamindb/core/storage/_spatialdata_accessor.py +63 -0
  102. lamindb_core-2.3.0/lamindb/core/storage/_tiledbsoma.py +374 -0
  103. lamindb_core-2.3.0/lamindb/core/storage/_valid_suffixes.py +21 -0
  104. lamindb_core-2.3.0/lamindb/core/storage/_zarr.py +124 -0
  105. lamindb_core-2.3.0/lamindb/core/storage/objects.py +108 -0
  106. lamindb_core-2.3.0/lamindb/core/storage/paths.py +214 -0
  107. lamindb_core-2.3.0/lamindb/core/storage/types.py +15 -0
  108. lamindb_core-2.3.0/lamindb/core/subsettings/__init__.py +9 -0
  109. lamindb_core-2.3.0/lamindb/core/subsettings/_annotation_settings.py +11 -0
  110. lamindb_core-2.3.0/lamindb/core/subsettings/_creation_settings.py +26 -0
  111. lamindb_core-2.3.0/lamindb/curators/__init__.py +52 -0
  112. lamindb_core-2.3.0/lamindb/curators/core.py +2175 -0
  113. lamindb_core-2.3.0/lamindb/errors.py +156 -0
  114. lamindb_core-2.3.0/lamindb/examples/__init__.py +16 -0
  115. lamindb_core-2.3.0/lamindb/examples/cellxgene/__init__.py +11 -0
  116. lamindb_core-2.3.0/lamindb/examples/cellxgene/_cellxgene.py +312 -0
  117. lamindb_core-2.3.0/lamindb/examples/croissant/__init__.py +69 -0
  118. lamindb_core-2.3.0/lamindb/examples/croissant/mini_immuno.anndata.zarr_metadata.json +73 -0
  119. lamindb_core-2.3.0/lamindb/examples/datasets/__init__.py +197 -0
  120. lamindb_core-2.3.0/lamindb/examples/datasets/_core.py +627 -0
  121. lamindb_core-2.3.0/lamindb/examples/datasets/_fake.py +36 -0
  122. lamindb_core-2.3.0/lamindb/examples/datasets/_small.py +141 -0
  123. lamindb_core-2.3.0/lamindb/examples/datasets/define_mini_immuno_features_labels.py +20 -0
  124. lamindb_core-2.3.0/lamindb/examples/datasets/define_mini_immuno_schema_flexible.py +14 -0
  125. lamindb_core-2.3.0/lamindb/examples/datasets/mini_immuno.py +189 -0
  126. lamindb_core-2.3.0/lamindb/examples/datasets/save_mini_immuno_datasets.py +48 -0
  127. lamindb_core-2.3.0/lamindb/examples/fixtures/__init__.py +0 -0
  128. lamindb_core-2.3.0/lamindb/examples/fixtures/sheets.py +291 -0
  129. lamindb_core-2.3.0/lamindb/examples/mlflow/__init__.py +35 -0
  130. lamindb_core-2.3.0/lamindb/examples/schemas/__init__.py +9 -0
  131. lamindb_core-2.3.0/lamindb/examples/schemas/_anndata.py +29 -0
  132. lamindb_core-2.3.0/lamindb/examples/schemas/_simple.py +27 -0
  133. lamindb_core-2.3.0/lamindb/examples/schemas/define_schema_anndata_ensembl_gene_ids_and_valid_features_in_obs.py +13 -0
  134. lamindb_core-2.3.0/lamindb/examples/schemas/define_valid_features.py +3 -0
  135. lamindb_core-2.3.0/lamindb/examples/wandb/__init__.py +37 -0
  136. lamindb_core-2.3.0/lamindb/integrations/__init__.py +37 -0
  137. lamindb_core-2.3.0/lamindb/integrations/_croissant.py +145 -0
  138. lamindb_core-2.3.0/lamindb/integrations/_vitessce.py +104 -0
  139. lamindb_core-2.3.0/lamindb/integrations/lightning.py +637 -0
  140. lamindb_core-2.3.0/lamindb/migrations/0177_squashed.py +6148 -0
  141. lamindb_core-2.3.0/lamindb/migrations/0178_v2_2.py +599 -0
  142. lamindb_core-2.3.0/lamindb/migrations/0179_v2_2_part_2.py +60 -0
  143. lamindb_core-2.3.0/lamindb/migrations/0180_v2_2_part_3.py +35 -0
  144. lamindb_core-2.3.0/lamindb/migrations/0181_v2_2_part_4.py +28 -0
  145. lamindb_core-2.3.0/lamindb/migrations/0182_v2_2_part_5.py +311 -0
  146. lamindb_core-2.3.0/lamindb/migrations/0183_squashed.py +6570 -0
  147. lamindb_core-2.3.0/lamindb/migrations/0183_v2_2_part_6.py +19 -0
  148. lamindb_core-2.3.0/lamindb/migrations/0184_alter_transformrecord_feature.py +26 -0
  149. lamindb_core-2.3.0/lamindb/migrations/README.md +3 -0
  150. lamindb_core-2.3.0/lamindb/migrations/__init__.py +0 -0
  151. lamindb_core-2.3.0/lamindb/models/__init__.py +236 -0
  152. lamindb_core-2.3.0/lamindb/models/_describe.py +723 -0
  153. lamindb_core-2.3.0/lamindb/models/_django.py +416 -0
  154. lamindb_core-2.3.0/lamindb/models/_feature_manager.py +1871 -0
  155. lamindb_core-2.3.0/lamindb/models/_from_values.py +421 -0
  156. lamindb_core-2.3.0/lamindb/models/_is_versioned.py +329 -0
  157. lamindb_core-2.3.0/lamindb/models/_label_manager.py +310 -0
  158. lamindb_core-2.3.0/lamindb/models/_relations.py +116 -0
  159. lamindb_core-2.3.0/lamindb/models/_run_cleanup.py +48 -0
  160. lamindb_core-2.3.0/lamindb/models/artifact.py +3398 -0
  161. lamindb_core-2.3.0/lamindb/models/artifact_set.py +187 -0
  162. lamindb_core-2.3.0/lamindb/models/block.py +514 -0
  163. lamindb_core-2.3.0/lamindb/models/can_curate.py +810 -0
  164. lamindb_core-2.3.0/lamindb/models/collection.py +681 -0
  165. lamindb_core-2.3.0/lamindb/models/feature.py +1616 -0
  166. lamindb_core-2.3.0/lamindb/models/has_parents.py +645 -0
  167. lamindb_core-2.3.0/lamindb/models/project.py +547 -0
  168. lamindb_core-2.3.0/lamindb/models/query_manager.py +347 -0
  169. lamindb_core-2.3.0/lamindb/models/query_set.py +1739 -0
  170. lamindb_core-2.3.0/lamindb/models/record.py +717 -0
  171. lamindb_core-2.3.0/lamindb/models/run.py +615 -0
  172. lamindb_core-2.3.0/lamindb/models/save.py +517 -0
  173. lamindb_core-2.3.0/lamindb/models/schema.py +1379 -0
  174. lamindb_core-2.3.0/lamindb/models/sqlrecord.py +2510 -0
  175. lamindb_core-2.3.0/lamindb/models/storage.py +389 -0
  176. lamindb_core-2.3.0/lamindb/models/transform.py +579 -0
  177. lamindb_core-2.3.0/lamindb/models/ulabel.py +322 -0
  178. lamindb_core-2.3.0/lamindb/py.typed +0 -0
  179. lamindb_core-2.3.0/lamindb/setup/__init__.py +16 -0
  180. lamindb_core-2.3.0/lamindb/setup/_merge.py +95 -0
  181. lamindb_core-2.3.0/lamindb/setup/_switch.py +36 -0
  182. lamindb_core-2.3.0/lamindb/setup/core/__init__.py +4 -0
  183. lamindb_core-2.3.0/lamindb/setup/errors/__init__.py +4 -0
  184. lamindb_core-2.3.0/lamindb/setup/types/__init__.py +4 -0
  185. lamindb_core-2.3.0/lamindb_full.py +13 -0
  186. lamindb_core-2.3.0/noxfile.py +457 -0
  187. lamindb_core-2.3.0/pyproject.full.toml +60 -0
  188. lamindb_core-2.3.0/pyproject.toml +244 -0
  189. lamindb_core-2.3.0/scripts/migrate_test_instances.py +39 -0
  190. lamindb_core-2.3.0/tests/conftest.py +16 -0
  191. lamindb_core-2.3.0/tests/core/_dataset_fixtures.py +92 -0
  192. lamindb_core-2.3.0/tests/core/conftest.py +189 -0
  193. lamindb_core-2.3.0/tests/core/notebooks/basic-r-notebook.Rmd.cleaned.html +42 -0
  194. lamindb_core-2.3.0/tests/core/notebooks/basic-r-notebook.Rmd.html +42 -0
  195. lamindb_core-2.3.0/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +50 -0
  196. lamindb_core-2.3.0/tests/core/notebooks/load_schema.ipynb +51 -0
  197. lamindb_core-2.3.0/tests/core/notebooks/no-title.ipynb +73 -0
  198. lamindb_core-2.3.0/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +78 -0
  199. lamindb_core-2.3.0/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +93 -0
  200. lamindb_core-2.3.0/tests/core/scripts/duplicate1/script-to-test-versioning.py +4 -0
  201. lamindb_core-2.3.0/tests/core/scripts/duplicate2/script-to-test-versioning.py +6 -0
  202. lamindb_core-2.3.0/tests/core/scripts/duplicate3/script-to-test-versioning.py +4 -0
  203. lamindb_core-2.3.0/tests/core/scripts/duplicate4/script-to-test-versioning.py +3 -0
  204. lamindb_core-2.3.0/tests/core/scripts/duplicate5/script-to-test-versioning.py +6 -0
  205. lamindb_core-2.3.0/tests/core/scripts/script-to-test-filename-change.py +3 -0
  206. lamindb_core-2.3.0/tests/core/scripts/script-to-test-versioning.py +4 -0
  207. lamindb_core-2.3.0/tests/core/test_artifact_anndata_with_curation.py +32 -0
  208. lamindb_core-2.3.0/tests/core/test_artifact_basics.py +1315 -0
  209. lamindb_core-2.3.0/tests/core/test_artifact_dataframe_with_curation.py +278 -0
  210. lamindb_core-2.3.0/tests/core/test_artifact_describe_to_dataframe.py +213 -0
  211. lamindb_core-2.3.0/tests/core/test_artifact_features_annotations.py +926 -0
  212. lamindb_core-2.3.0/tests/core/test_artifact_parquet.py +26 -0
  213. lamindb_core-2.3.0/tests/core/test_blocks.py +254 -0
  214. lamindb_core-2.3.0/tests/core/test_branches.py +33 -0
  215. lamindb_core-2.3.0/tests/core/test_can_curate.py +200 -0
  216. lamindb_core-2.3.0/tests/core/test_collection.py +540 -0
  217. lamindb_core-2.3.0/tests/core/test_curator_basics.py +1001 -0
  218. lamindb_core-2.3.0/tests/core/test_data_migrations.py +249 -0
  219. lamindb_core-2.3.0/tests/core/test_db.py +9 -0
  220. lamindb_core-2.3.0/tests/core/test_delete.py +37 -0
  221. lamindb_core-2.3.0/tests/core/test_feature.py +262 -0
  222. lamindb_core-2.3.0/tests/core/test_feature_dtype.py +737 -0
  223. lamindb_core-2.3.0/tests/core/test_from_values.py +110 -0
  224. lamindb_core-2.3.0/tests/core/test_has_parents.py +69 -0
  225. lamindb_core-2.3.0/tests/core/test_has_type.py +110 -0
  226. lamindb_core-2.3.0/tests/core/test_integrity.py +9 -0
  227. lamindb_core-2.3.0/tests/core/test_is_versioned.py +326 -0
  228. lamindb_core-2.3.0/tests/core/test_label_manager.py +324 -0
  229. lamindb_core-2.3.0/tests/core/test_load.py +209 -0
  230. lamindb_core-2.3.0/tests/core/test_manager.py +15 -0
  231. lamindb_core-2.3.0/tests/core/test_merge.py +131 -0
  232. lamindb_core-2.3.0/tests/core/test_nbconvert.py +8 -0
  233. lamindb_core-2.3.0/tests/core/test_notebooks.py +49 -0
  234. lamindb_core-2.3.0/tests/core/test_querydb.py +84 -0
  235. lamindb_core-2.3.0/tests/core/test_queryset.py +384 -0
  236. lamindb_core-2.3.0/tests/core/test_record_basics.py +808 -0
  237. lamindb_core-2.3.0/tests/core/test_record_sheet_examples.py +322 -0
  238. lamindb_core-2.3.0/tests/core/test_rename_features_labels.py +86 -0
  239. lamindb_core-2.3.0/tests/core/test_run.py +80 -0
  240. lamindb_core-2.3.0/tests/core/test_save.py +101 -0
  241. lamindb_core-2.3.0/tests/core/test_schema.py +680 -0
  242. lamindb_core-2.3.0/tests/core/test_search.py +65 -0
  243. lamindb_core-2.3.0/tests/core/test_settings.py +14 -0
  244. lamindb_core-2.3.0/tests/core/test_sqlrecord.py +485 -0
  245. lamindb_core-2.3.0/tests/core/test_storage.py +31 -0
  246. lamindb_core-2.3.0/tests/core/test_switch.py +13 -0
  247. lamindb_core-2.3.0/tests/core/test_track_flow.py +76 -0
  248. lamindb_core-2.3.0/tests/core/test_track_script_or_notebook.py +618 -0
  249. lamindb_core-2.3.0/tests/core/test_track_step.py +106 -0
  250. lamindb_core-2.3.0/tests/core/test_transform.py +336 -0
  251. lamindb_core-2.3.0/tests/core/test_transform_from_git.py +109 -0
  252. lamindb_core-2.3.0/tests/core/test_view.py +6 -0
  253. lamindb_core-2.3.0/tests/curators/conftest.py +29 -0
  254. lamindb_core-2.3.0/tests/curators/test_cellxgene_curation.py +43 -0
  255. lamindb_core-2.3.0/tests/curators/test_curate_from_croissant.py +78 -0
  256. lamindb_core-2.3.0/tests/curators/test_curators_examples.py +1094 -0
  257. lamindb_core-2.3.0/tests/curators/test_curators_remote.py +10 -0
  258. lamindb_core-2.3.0/tests/curators/test_dataframe_curators_accounting_example.py +143 -0
  259. lamindb_core-2.3.0/tests/integrations/conftest.py +29 -0
  260. lamindb_core-2.3.0/tests/integrations/test_lightning.py +618 -0
  261. lamindb_core-2.3.0/tests/no_instance/test_connect_dynamic_import.py +11 -0
  262. lamindb_core-2.3.0/tests/no_instance/test_no_default_instance.py +25 -0
  263. lamindb_core-2.3.0/tests/permissions/conftest.py +35 -0
  264. lamindb_core-2.3.0/tests/permissions/jwt_utils.py +22 -0
  265. lamindb_core-2.3.0/tests/permissions/scripts/check_lamin_dev.py +109 -0
  266. lamindb_core-2.3.0/tests/permissions/scripts/setup_access.py +143 -0
  267. lamindb_core-2.3.0/tests/permissions/scripts/setup_instance.py +15 -0
  268. lamindb_core-2.3.0/tests/permissions/test_rls_dbwritelog.py +549 -0
  269. lamindb_core-2.3.0/tests/profiling/import_lamindb.py +1 -0
  270. lamindb_core-2.3.0/tests/profiling/import_lamindb_and_connect.py +5 -0
  271. lamindb_core-2.3.0/tests/storage/conftest.py +86 -0
  272. lamindb_core-2.3.0/tests/storage/test_artifact_storage.py +190 -0
  273. lamindb_core-2.3.0/tests/storage/test_artifact_zarr.py +85 -0
  274. lamindb_core-2.3.0/tests/storage/test_cache.py +248 -0
  275. lamindb_core-2.3.0/tests/storage/test_connect_reconnect.py +21 -0
  276. lamindb_core-2.3.0/tests/storage/test_storage_lifecycle.py +85 -0
  277. lamindb_core-2.3.0/tests/storage/test_streaming.py +526 -0
  278. lamindb_core-2.3.0/tests/storage/test_tiledbsoma.py +241 -0
  279. lamindb_core-2.3.0/tests/storage/test_transfer.py +231 -0
@@ -0,0 +1,15 @@
1
+ name: Report a bug
2
+ description: Report a bug.
3
+ labels:
4
+ - ":bug: bug"
5
+ body:
6
+ - type: textarea
7
+ id: report
8
+ attributes:
9
+ label: Add a description
10
+ placeholder: |
11
+ Describe and consider providing version information. Please ensure you're on the latest version of lamindb.
12
+ This is a public repository!
13
+ Do not reveal any internal information.
14
+ validations:
15
+ required: true
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: LaminHub issues
4
+ url: https://github.com/laminlabs/laminhub-public
5
+ about: If you have issues with the GUI/web app at lamin.ai, please report them here.
6
+ - name: Enterprise support
7
+ url: https://lamin.ai/contact
8
+ about: If you have other questions, contact us directly.
@@ -0,0 +1,12 @@
1
+ name: Propose an enhancement
2
+ description: Propose an enhancement.
3
+ body:
4
+ - type: textarea
5
+ id: description
6
+ attributes:
7
+ label: Add a description
8
+ placeholder: |
9
+ This is a public repository!
10
+ Do not reveal any internal information.
11
+ validations:
12
+ required: true
@@ -0,0 +1,14 @@
1
+ name: Ask a usage question
2
+ description: Ask a usage question.
3
+ labels:
4
+ - "usage question"
5
+ body:
6
+ - type: textarea
7
+ id: description
8
+ attributes:
9
+ label: Add a description
10
+ placeholder: |
11
+ This is a public repository!
12
+ Do not reveal any internal information.
13
+ validations:
14
+ required: true
@@ -0,0 +1,262 @@
1
+ name: build
2
+
3
+ on:
4
+ push:
5
+ branches: [release]
6
+ pull_request:
7
+
8
+ jobs:
9
+ pre-filter:
10
+ runs-on: ubuntu-latest
11
+ outputs:
12
+ matrix: ${{ steps.set-matrix.outputs.matrix }}
13
+ steps:
14
+ - uses: actions/checkout@v6
15
+ with:
16
+ fetch-depth: 0
17
+
18
+ - uses: dorny/paths-filter@v3
19
+ id: changes
20
+ if: github.event_name != 'push'
21
+ with:
22
+ filters: |
23
+ curator:
24
+ - 'lamindb/curators/**'
25
+ - 'lamindb/examples/cellxgene/**'
26
+ - 'tests/curators/**'
27
+ integrations:
28
+ - 'lamindb/integrations/**'
29
+ - 'tests/integrations/**'
30
+
31
+ - id: set-matrix
32
+ shell: bash
33
+ run: |
34
+ BASE_GROUPS=$(jq -n -c '["unit-core-sqlite", "unit-core-postgres", "unit-storage", "tutorial", "guide", "biology", "faq", "storage", "cli", "permissions", "no-instance"]')
35
+ ADDITIONAL_GROUPS=[]
36
+
37
+ if [[ "${{ github.event_name }}" == "push" || "${{ github.event_name }}" == "repository_dispatch" ]]; then
38
+ # Run everything on push and dispatch
39
+ ADDITIONAL_GROUPS=$(jq -n -c '["curator", "integrations"]')
40
+ else
41
+ # Otherwise check which paths changed
42
+ if [[ "${{ steps.changes.outputs.curator }}" == "true" ]]; then
43
+ ADDITIONAL_GROUPS=$(jq -n -c --argjson groups "$ADDITIONAL_GROUPS" '$groups + ["curator"]')
44
+ fi
45
+ if [[ "${{ steps.changes.outputs.integrations }}" == "true" ]]; then
46
+ ADDITIONAL_GROUPS=$(jq -n -c --argjson groups "$ADDITIONAL_GROUPS" '$groups + ["integrations"]')
47
+ fi
48
+ fi
49
+
50
+ # Combine base groups with any additional groups
51
+ MATRIX=$(jq -n -c --argjson base "$BASE_GROUPS" --argjson additional "$ADDITIONAL_GROUPS" '{group: ($base + $additional)}')
52
+
53
+ # Output as single line for GitHub Actions
54
+ echo "matrix=$(echo "$MATRIX" | jq -c .)" >> $GITHUB_OUTPUT
55
+
56
+ # Pretty print for debugging
57
+ echo "Generated matrix:"
58
+ echo "$MATRIX" | jq .
59
+
60
+ test:
61
+ needs: pre-filter
62
+ runs-on: ubuntu-latest
63
+ strategy:
64
+ fail-fast: false
65
+ matrix: ${{fromJson(needs.pre-filter.outputs.matrix)}}
66
+ timeout-minutes: 20
67
+ steps:
68
+ - uses: actions/checkout@v6
69
+ with:
70
+ submodules: recursive
71
+ fetch-depth: 0
72
+
73
+ - uses: actions/checkout@v6
74
+ if: ${{ matrix.group == 'permissions' }}
75
+ with:
76
+ repository: laminlabs/laminhub
77
+ token: ${{ secrets.GH_TOKEN_DEPLOY_LAMINAPP }}
78
+ path: laminhub
79
+ ref: main
80
+
81
+ - uses: actions/setup-python@v6
82
+ with:
83
+ python-version: |
84
+ ${{ github.ref == 'refs/heads/release' && '3.11' ||
85
+ '3.13'
86
+ }}
87
+
88
+ - name: cache pre-commit
89
+ uses: actions/cache@v4
90
+ with:
91
+ path: ~/.cache/pre-commit
92
+ key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }}
93
+
94
+ - name: cache postgres
95
+ if: ${{ matrix.group == 'faq' || matrix.group == 'unit-core-postgres' || matrix.group == 'unit-storage' || matrix.group == 'permissions'}}
96
+ id: cache-postgres
97
+ uses: actions/cache@v4
98
+ with:
99
+ path: ~/postgres.tar
100
+ key: cache-postgres-0
101
+ restore-keys: |
102
+ cache-postgres-
103
+ - name: cache postgres miss
104
+ if: ${{ (matrix.group == 'faq' || matrix.group == 'unit-core-postgres' || matrix.group == 'unit-storage' || matrix.group == 'permissions') && steps.cache-postgres.outputs.cache-hit != 'true' }}
105
+ run: docker pull postgres:latest && docker image save postgres:latest --output ~/postgres.tar
106
+ - name: cache postgres use
107
+ if: ${{ (matrix.group == 'faq' || matrix.group == 'unit-core-postgres' || matrix.group == 'unit-storage' || matrix.group == 'permissions') && steps.cache-postgres.outputs.cache-hit == 'true' }}
108
+ run: docker image load --input ~/postgres.tar
109
+
110
+ - run: pip install "laminci@git+https://github.com/laminlabs/laminci"
111
+
112
+ - run: nox -s configure_coverage -- '${{needs.pre-filter.outputs.matrix}}'
113
+
114
+ - name: install postgres
115
+ if: ${{ matrix.group == 'faq' }}
116
+ run: sudo apt-get install libpq-dev
117
+
118
+ - name: install graphviz
119
+ if: ${{ matrix.group == 'tutorial' || matrix.group == 'guide' || matrix.group == 'biology' || matrix.group == 'faq'}}
120
+ run: sudo apt-get -y install graphviz
121
+
122
+ # - run: nox -s lint
123
+ # if: ${{ matrix.group == 'tutorial' }}
124
+
125
+ - run: nox -s "install_ci(group='${{ matrix.group }}')"
126
+
127
+ - uses: aws-actions/configure-aws-credentials@v4
128
+ with:
129
+ aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
130
+ aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
131
+ aws-region: us-east-1
132
+ - run: nox -s prepare
133
+ if: ${{ !startsWith(matrix.group, 'unit-') && !startsWith(matrix.group, 'permissions') }}
134
+ - run: nox -s "test(group='${{ matrix.group }}')"
135
+
136
+ - name: upload coverage
137
+ uses: actions/upload-artifact@v4
138
+ with:
139
+ name: coverage--${{ matrix.group }}
140
+ path: .coverage
141
+ include-hidden-files: true
142
+
143
+ - name: upload docs
144
+ if: ${{ matrix.group == 'tutorial' || matrix.group == 'guide' || matrix.group == 'biology' || matrix.group == 'faq' || matrix.group == 'storage' }}
145
+ uses: actions/upload-artifact@v4
146
+ with:
147
+ name: docs-${{ matrix.group }}
148
+ path: ./docs/${{ matrix.group }}
149
+
150
+ profile:
151
+ runs-on: ubuntu-latest
152
+ timeout-minutes: 10
153
+ env:
154
+ LAMIN_API_KEY: ${{ secrets.LAMIN_API_KEY_TESTUSER1 }}
155
+ steps:
156
+ - uses: actions/checkout@v6
157
+ with:
158
+ submodules: recursive
159
+ fetch-depth: 0
160
+ - uses: actions/setup-python@v6
161
+ with:
162
+ python-version: |
163
+ ${{ github.ref == 'refs/heads/release' && '3.11' ||
164
+ '3.13'
165
+ }}
166
+ - run: pip install git+https://github.com/laminlabs/laminci
167
+ - run: nox -s "install_ci(group='unit-core-sqlite')"
168
+ - run: uv pip install --system git+https://github.com/laminlabs/laminprofiler
169
+ - run: lamin login
170
+ - run: laminprofiler check tests/profiling/import_lamindb_and_connect.py --threshold 3.5
171
+ - run: lamin connect laminlabs/lamindata
172
+ - run: laminprofiler check tests/profiling/import_lamindb.py --threshold 1.5
173
+
174
+ docs:
175
+ needs: test
176
+ runs-on: ubuntu-latest
177
+ steps:
178
+ - uses: actions/checkout@v6
179
+ with:
180
+ submodules: recursive
181
+ fetch-depth: 0
182
+
183
+ - name: checkout lndocs
184
+ uses: actions/checkout@v6
185
+ with:
186
+ repository: laminlabs/lndocs
187
+ ssh-key: ${{ secrets.READ_LNDOCS }}
188
+ path: lndocs
189
+ ref: main
190
+
191
+ - uses: aws-actions/configure-aws-credentials@v4
192
+ with:
193
+ aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
194
+ aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
195
+ aws-region: us-east-1
196
+
197
+ - uses: actions/setup-python@v6
198
+ with:
199
+ python-version: "3.12"
200
+ - run: pip install "laminci@git+https://x-access-token:${{ secrets.LAMIN_BUILD_DOCS }}@github.com/laminlabs/laminci"
201
+ - run: nox -s "install_ci(group='docs')"
202
+ - uses: actions/download-artifact@v4
203
+ - run: nox -s clidocs
204
+ - run: nox -s prepare
205
+ - run: nox -s docs
206
+ - run: rm -r ./_build/html/.doctrees # do not want to deploy with cloudflare
207
+ - uses: cloudflare/wrangler-action@v3
208
+ id: cloudflare
209
+ with:
210
+ apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
211
+ accountId: 472bdad691b4483dea759eadb37110bd
212
+ command: pages deploy "_build/html" --project-name=lamindb
213
+ gitHubToken: ${{ secrets.GITHUB_TOKEN }}
214
+ - uses: edumserrano/find-create-or-update-comment@v2
215
+ if: github.event_name == 'pull_request'
216
+ with:
217
+ issue-number: ${{ github.event.pull_request.number }}
218
+ body-includes: "Deployment URL"
219
+ comment-author: "github-actions[bot]"
220
+ body: |
221
+ Deployment URL: ${{ steps.cloudflare.outputs.deployment-url }}
222
+ edit-mode: replace
223
+
224
+ - uses: peter-evans/repository-dispatch@v2
225
+ if: ${{ github.event_name == 'push' }}
226
+ with:
227
+ token: ${{ secrets.LAMIN_BUILD_DOCS }}
228
+ repository: "laminlabs/lamin-docs"
229
+ event-type: build
230
+
231
+ coverage:
232
+ needs: test
233
+ runs-on: ubuntu-latest
234
+ steps:
235
+ - uses: actions/checkout@v6
236
+ - uses: actions/setup-python@v6
237
+ with:
238
+ python-version: "3.13"
239
+ - run: |
240
+ python -m pip install -U uv
241
+ uv pip install --system coverage[toml]
242
+ uv pip install --system --no-deps .
243
+
244
+ - uses: actions/download-artifact@v4
245
+ - name: run coverage
246
+ run: |
247
+ coverage combine coverage--*/.coverage*
248
+ coverage report --fail-under=0
249
+ coverage xml
250
+ - uses: codecov/codecov-action@v2
251
+ with:
252
+ token: ${{ secrets.CODECOV_TOKEN }}
253
+
254
+ dispatch:
255
+ if: ${{ github.event_name == 'push' }}
256
+ runs-on: ubuntu-latest
257
+ steps:
258
+ - uses: peter-evans/repository-dispatch@v2
259
+ with:
260
+ token: ${{ secrets.LAMIN_BUILD_DOCS }}
261
+ repository: "laminlabs/lamindb-dispatch"
262
+ event-type: build
@@ -0,0 +1,24 @@
1
+ name: doc-changes
2
+
3
+ on:
4
+ pull_request_target:
5
+ branches:
6
+ - main
7
+ - release
8
+ types:
9
+ - closed
10
+
11
+ jobs:
12
+ doc-changes:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - uses: actions/setup-python@v5
17
+ with:
18
+ python-version: "3.11"
19
+ - run: pip install "laminci[doc-changes]@git+https://x-access-token:${{ secrets.LAMIN_BUILD_DOCS }}@github.com/laminlabs/laminci"
20
+ - run: laminci doc-changes
21
+ env:
22
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
23
+ docs_token: ${{ secrets.LAMIN_BUILD_DOCS }}
24
+ changelog_file: lamin-docs/docs/changelog/soon/lamindb.md
@@ -0,0 +1,243 @@
1
+ __MACOSX/
2
+
3
+ # LaminDB
4
+ README_stripped.md
5
+ docs/scripts/test_artifact_parquet.py
6
+ README.ipynb
7
+ docs/sample.fasta
8
+ docs/faq/sample.fasta
9
+ docs/faq/test-acid/
10
+ docs/scripts/define_mini_immuno_features_labels.py
11
+ docs/scripts/define_mini_immuno_schema_flexible.py
12
+ docs/scripts/define_schema_anndata_ensembl_gene_ids_and_valid_features_in_obs.py
13
+ docs/scripts/define_valid_features.py
14
+ docs/scripts/save_mini_immuno_datasets.py
15
+ profile_output*
16
+ docs/cli.md
17
+ .coveragerc
18
+ *.db
19
+ *.lndb
20
+ *.jpg
21
+ *.zarr/
22
+ docsbuild/
23
+ docs/lamin.md
24
+ docs/guide/data-validation.ipynb
25
+ docs/guide/bionty.ipynb
26
+ docs/guide/lnschema-core.ipynb
27
+ docs/paradisi05_laminopathic_nuclei.jpg
28
+ bionty_docs/
29
+ lamindb_docs/
30
+ _build
31
+ mydata/
32
+ lamin-intro/
33
+ lamin-tutorial/
34
+ mytest/
35
+ rds/
36
+ mydb/
37
+ docs/test-registries/
38
+ docs/test-annotate-flexible/
39
+ docs/lamindb.*
40
+ lamin_sphinx
41
+ docs/conf.py
42
+ lamindb/setup/.env
43
+ _secrets.py
44
+ _configuration.py
45
+ lamin.db
46
+ docs/generated/*
47
+ _docs_tmp*
48
+ docs/guide/Laminopathic_nuclei.jpg
49
+ docs/guide/paradisi05_laminopathic_nuclei.jpg
50
+ nocodb
51
+ docs/guide/SRR4238351_subsamp.fastq.gz
52
+ docs/faq/paradisi05_laminopathic_nuclei.jpg
53
+ docs/faq/tostore/
54
+ docs/faq/mydata_postgres/
55
+ docs/guide/myobjects/
56
+ docs/faq/test-run-inputs/
57
+ docs/intro/paradisi05_laminopathic_nuclei.jpg
58
+ docs/guide/figures/
59
+ docs/test-annotate/
60
+ docs/test-track/
61
+ suo22/
62
+ docs/biology/test-flow/
63
+ docs/biology/test-scrna/
64
+ docs/biology/test-registries/
65
+ docs/biology/test-multimodal/
66
+ default_storage
67
+ default_storage_unit_core
68
+ default_storage_unit_storage
69
+ test.ipynb
70
+ test2.ipynb
71
+ run-tests
72
+ test-django-validation/
73
+ curate.tiledbsoma
74
+ small_dataset.tiledbsoma
75
+ nonregistered_storage
76
+ registered_storage
77
+ tests/core/notebooks/no-uid-renamed.ipynb
78
+
79
+ # General
80
+ .DS_Store
81
+
82
+ # Byte-compiled / optimized / DLL files
83
+ __pycache__/
84
+ *.py[cod]
85
+ *$py.class
86
+
87
+ # C extensions
88
+ *.so
89
+
90
+ # Distribution / packaging
91
+ .Python
92
+ build/
93
+ develop-eggs/
94
+ dist/
95
+ downloads/
96
+ eggs/
97
+ .eggs/
98
+ lib/
99
+ lib64/
100
+ parts/
101
+ sdist/
102
+ var/
103
+ wheels/
104
+ pip-wheel-metadata/
105
+ share/python-wheels/
106
+ *.egg-info/
107
+ .installed.cfg
108
+ *.egg
109
+ MANIFEST
110
+
111
+ # PyInstaller
112
+ # Usually these files are written by a python script from a template
113
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
114
+ *.manifest
115
+ *.spec
116
+
117
+ # Installer logs
118
+ pip-log.txt
119
+ pip-delete-this-directory.txt
120
+
121
+ # Unit test / coverage reports
122
+ htmlcov/
123
+ .tox/
124
+ .nox/
125
+ .coverage
126
+ .coverage.*
127
+ .cache
128
+ nosetests.xml
129
+ coverage.xml
130
+ *.cover
131
+ *.py,cover
132
+ .hypothesis/
133
+ .pytest_cache/
134
+
135
+ # Translations
136
+ *.mo
137
+ *.pot
138
+
139
+ # Django stuff:
140
+ *.log
141
+ local_settings.py
142
+ db.sqlite3
143
+ db.sqlite3-journal
144
+
145
+ # Flask stuff:
146
+ instance/
147
+ .webassets-cache
148
+
149
+ # Scrapy stuff:
150
+ .scrapy
151
+
152
+ # Sphinx documentation
153
+ docs/_build/
154
+
155
+ # PyBuilder
156
+ target/
157
+
158
+ # Jupyter Notebook
159
+ .ipynb_checkpoints
160
+
161
+ # IPython
162
+ profile_default/
163
+ ipython_config.py
164
+
165
+ # pyenv
166
+ .python-version
167
+
168
+ # pipenv
169
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
170
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
171
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
172
+ # install all needed dependencies.
173
+ #Pipfile.lock
174
+
175
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
176
+ __pypackages__/
177
+
178
+ # Celery stuff
179
+ celerybeat-schedule
180
+ celerybeat.pid
181
+
182
+ # SageMath parsed files
183
+ *.sage.py
184
+
185
+ # Environments
186
+ .env
187
+ .venv
188
+ env/
189
+ venv/
190
+ ENV/
191
+ env.bak/
192
+ venv.bak/
193
+
194
+ # Spyder project settings
195
+ .spyderproject
196
+ .spyproject
197
+
198
+ # Rope project settings
199
+ .ropeproject
200
+
201
+ # mkdocs documentation
202
+ /site
203
+
204
+ # mypy
205
+ .mypy_cache/
206
+ .dmypy.json
207
+ dmypy.json
208
+
209
+ # ruff
210
+ .ruff_cache
211
+
212
+ # Pyre type checker
213
+ .pyre/
214
+
215
+ # data files
216
+ data/
217
+ _build
218
+ *.csv
219
+ *.fcs
220
+ *.zip
221
+ *.feather
222
+ *.h5ad
223
+ *.h5mu
224
+ *.parquet
225
+ *.bam
226
+ *.fastq.gz
227
+ *.pt
228
+
229
+ # Pycharm
230
+ .idea
231
+
232
+ # VSCode
233
+ .vscode
234
+
235
+ # CELLxGENE
236
+ !lamindb/examples/cellxgene/cellxgene_schema_versions.csv
237
+
238
+ # ml
239
+ lightning_logs
240
+ mlruns
241
+ download_mnist
242
+ checkpoints
243
+ test_lightning
@@ -0,0 +1,15 @@
1
+ [submodule "sub/lamindb-setup"]
2
+ path = sub/lamindb-setup
3
+ url = https://github.com/laminlabs/lamindb-setup
4
+ [submodule "sub/lamin-cli"]
5
+ path = sub/lamin-cli
6
+ url = https://github.com/laminlabs/lamin-cli
7
+ [submodule "sub/bionty"]
8
+ path = sub/bionty
9
+ url = https://github.com/laminlabs/bionty
10
+ [submodule "sub/pertdb"]
11
+ path = sub/pertdb
12
+ url = https://github.com/laminlabs/pertdb
13
+ [submodule "sub/cellxgene-lamin"]
14
+ path = sub/cellxgene-lamin
15
+ url = https://github.com/laminlabs/cellxgene-lamin.git
@@ -0,0 +1,75 @@
1
+ fail_fast: false
2
+ default_language_version:
3
+ python: python3
4
+ default_stages:
5
+ - pre-commit
6
+ - pre-push
7
+ minimum_pre_commit_version: 2.16.0
8
+ repos:
9
+ - repo: https://github.com/rbubley/mirrors-prettier
10
+ rev: v3.5.1
11
+ hooks:
12
+ - id: prettier
13
+ exclude: |
14
+ (?x)(
15
+ docs/changelog.md|.github/ISSUE_TEMPLATE/config.yml|tests/core/notebooks/basic-r-notebook.Rmd.cleaned.html|README.md
16
+ )
17
+ - repo: https://github.com/kynan/nbstripout
18
+ rev: 0.8.1
19
+ hooks:
20
+ - id: nbstripout
21
+ exclude: |
22
+ (?x)(
23
+ docs/examples/|
24
+ docs/notes/
25
+ )
26
+ - repo: https://github.com/astral-sh/ruff-pre-commit
27
+ rev: v0.9.10
28
+ hooks:
29
+ - id: ruff
30
+ args: [--fix, --exit-non-zero-on-fix, --unsafe-fixes]
31
+ - id: ruff-format
32
+ - repo: https://github.com/pre-commit/pre-commit-hooks
33
+ rev: v4.5.0
34
+ hooks:
35
+ - id: detect-private-key
36
+ - id: check-ast
37
+ - id: end-of-file-fixer
38
+ exclude: |
39
+ (?x)(
40
+ .github/workflows/latest-changes.jinja2
41
+ )
42
+ - id: mixed-line-ending
43
+ args: [--fix=lf]
44
+ - id: trailing-whitespace
45
+ exclude: |
46
+ (?x)(
47
+ tests/core/notebooks/basic-r-notebook.Rmd.cleaned.html
48
+ )
49
+ - id: check-case-conflict
50
+ - repo: https://github.com/pre-commit/mirrors-mypy
51
+ rev: v1.14.1
52
+ hooks:
53
+ - id: mypy
54
+ args:
55
+ [
56
+ --no-strict-optional,
57
+ --ignore-missing-imports,
58
+ --disable-error-code=annotation-unchecked,
59
+ --disable-error-code=type-arg,
60
+ ]
61
+ additional_dependencies:
62
+ ["types-requests", "types-attrs", "types-PyYAML"]
63
+ exclude: |
64
+ (?x)(
65
+ test_notebooks.py|
66
+ script-to-test-versioning.py|
67
+ tests/storage/conftest.py|
68
+ tests/curators/conftest.py|
69
+ tests/permissions/conftest.py|
70
+ tests/writelog/conftest.py|
71
+ tests/writelog_sqlite/conftest.py|
72
+ tests/curators/test_curators_examples.py|
73
+ tests/core/conftest.py|
74
+ docs/scripts/
75
+ )