lightly-studio 0.3.1__py3-none-any.whl → 0.3.3__py3-none-any.whl
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.
Potentially problematic release.
This version of lightly-studio might be problematic. Click here for more details.
- lightly_studio/__init__.py +4 -4
- lightly_studio/api/app.py +7 -5
- lightly_studio/api/db_tables.py +0 -3
- lightly_studio/api/routes/api/annotation.py +32 -16
- lightly_studio/api/routes/api/annotation_label.py +2 -5
- lightly_studio/api/routes/api/annotations/__init__.py +7 -0
- lightly_studio/api/routes/api/annotations/create_annotation.py +52 -0
- lightly_studio/api/routes/api/classifier.py +2 -5
- lightly_studio/api/routes/api/dataset.py +5 -8
- lightly_studio/api/routes/api/dataset_tag.py +2 -3
- lightly_studio/api/routes/api/embeddings2d.py +104 -0
- lightly_studio/api/routes/api/export.py +73 -0
- lightly_studio/api/routes/api/metadata.py +2 -4
- lightly_studio/api/routes/api/sample.py +5 -13
- lightly_studio/api/routes/api/selection.py +87 -0
- lightly_studio/api/routes/api/settings.py +2 -6
- lightly_studio/api/routes/images.py +6 -6
- lightly_studio/core/add_samples.py +374 -0
- lightly_studio/core/dataset.py +272 -400
- lightly_studio/core/dataset_query/boolean_expression.py +67 -0
- lightly_studio/core/dataset_query/dataset_query.py +216 -0
- lightly_studio/core/dataset_query/field.py +113 -0
- lightly_studio/core/dataset_query/field_expression.py +79 -0
- lightly_studio/core/dataset_query/match_expression.py +23 -0
- lightly_studio/core/dataset_query/order_by.py +79 -0
- lightly_studio/core/dataset_query/sample_field.py +28 -0
- lightly_studio/core/dataset_query/tags_expression.py +46 -0
- lightly_studio/core/sample.py +159 -32
- lightly_studio/core/start_gui.py +35 -0
- lightly_studio/dataset/edge_embedding_generator.py +13 -8
- lightly_studio/dataset/embedding_generator.py +2 -3
- lightly_studio/dataset/embedding_manager.py +74 -6
- lightly_studio/dataset/env.py +4 -0
- lightly_studio/dataset/file_utils.py +13 -2
- lightly_studio/dataset/fsspec_lister.py +275 -0
- lightly_studio/dataset/loader.py +49 -84
- lightly_studio/dataset/mobileclip_embedding_generator.py +9 -6
- lightly_studio/db_manager.py +145 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/0.CA_CXIBb.css +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/_layout.DS78jgNY.css +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/index.BVs_sZj9.css +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/transform.D487hwJk.css +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/6t3IJ0vQ.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{D6su9Aln.js → 8NsknIT2.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{x9G_hzyY.js → BND_-4Kp.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{BylOuP6i.js → BdfTHw61.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{DOlTMNyt.js → BfHVnyNT.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BjkP1AHA.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BuuNVL9G.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{O-EABkf9.js → BzKGpnl4.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CCx7Ho51.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{l7KrR96u.js → CH6P3X75.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{D5-A_Ffd.js → CR2upx_Q.js} +2 -2
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CWPZrTTJ.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{C8I8rFJQ.js → Cs1XmhiF.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{CDnpyLsT.js → CwPowJfP.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CxFKfZ9T.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Cxevwdid.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{DjfY96ND.js → D4whDBUi.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/D6r9vr07.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DA6bFLPR.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DEgUu98i.js +3 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DGTPl6Gk.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DKGxBSlK.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DQXoLcsF.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DQe_kdRt.js +92 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DcY4jgG3.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{Bu7uvVrG.js → RmD8FzRo.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/V-MnMC1X.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/{Bsi3UGy5.js → keKYsoph.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/app.BVr6DYqP.js +2 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/start.u7zsVvqp.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/0.Da2agmdd.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/{1.B4rNYwVp.js → 1.B11tVRJV.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/10.l30Zud4h.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/12.CgKPGcAP.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/2.C8HLK8mj.js +857 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/{3.CWHpKonm.js → 3.CLvg3QcJ.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/{4.OUWOLQeV.js → 4.BQhDtXUI.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/5.-6XqWX5G.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/6.uBV1Lhat.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/7.BXsgoQZh.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/8.BkbcnUs8.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/{9.CPu3CiBc.js → 9.Bkrv-Vww.js} +1 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/workers/clustering.worker-DKqeLtG0.js +2 -0
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/workers/search.worker-vNSty3B0.js +1 -0
- lightly_studio/dist_lightly_studio_view_app/_app/version.json +1 -1
- lightly_studio/dist_lightly_studio_view_app/index.html +14 -14
- lightly_studio/examples/example.py +13 -12
- lightly_studio/examples/example_coco.py +13 -0
- lightly_studio/examples/example_metadata.py +83 -98
- lightly_studio/examples/example_selection.py +7 -19
- lightly_studio/examples/example_split_work.py +12 -36
- lightly_studio/examples/{example_v2.py → example_yolo.py} +3 -4
- lightly_studio/export/export_dataset.py +65 -0
- lightly_studio/export/lightly_studio_label_input.py +120 -0
- lightly_studio/few_shot_classifier/classifier_manager.py +5 -26
- lightly_studio/metadata/compute_typicality.py +67 -0
- lightly_studio/models/annotation/annotation_base.py +18 -20
- lightly_studio/models/annotation/instance_segmentation.py +8 -8
- lightly_studio/models/annotation/object_detection.py +4 -4
- lightly_studio/models/dataset.py +6 -2
- lightly_studio/models/sample.py +10 -3
- lightly_studio/resolvers/annotation_label_resolver/__init__.py +2 -1
- lightly_studio/resolvers/annotation_label_resolver/get_all.py +15 -0
- lightly_studio/resolvers/annotation_resolver/__init__.py +2 -3
- lightly_studio/resolvers/annotation_resolver/create_many.py +3 -3
- lightly_studio/resolvers/annotation_resolver/delete_annotation.py +1 -1
- lightly_studio/resolvers/annotation_resolver/delete_annotations.py +7 -3
- lightly_studio/resolvers/annotation_resolver/get_by_id.py +19 -1
- lightly_studio/resolvers/annotation_resolver/update_annotation_label.py +0 -1
- lightly_studio/resolvers/annotations/annotations_filter.py +1 -11
- lightly_studio/resolvers/dataset_resolver.py +10 -0
- lightly_studio/resolvers/embedding_model_resolver.py +22 -0
- lightly_studio/resolvers/sample_resolver.py +53 -9
- lightly_studio/resolvers/tag_resolver.py +23 -0
- lightly_studio/selection/mundig.py +7 -10
- lightly_studio/selection/select.py +55 -46
- lightly_studio/selection/select_via_db.py +23 -19
- lightly_studio/selection/selection_config.py +10 -4
- lightly_studio/services/annotations_service/__init__.py +12 -0
- lightly_studio/services/annotations_service/create_annotation.py +63 -0
- lightly_studio/services/annotations_service/delete_annotation.py +22 -0
- lightly_studio/services/annotations_service/update_annotation.py +21 -32
- lightly_studio/services/annotations_service/update_annotation_bounding_box.py +36 -0
- lightly_studio-0.3.3.dist-info/METADATA +814 -0
- {lightly_studio-0.3.1.dist-info → lightly_studio-0.3.3.dist-info}/RECORD +130 -113
- lightly_studio/api/db.py +0 -133
- lightly_studio/api/routes/api/annotation_task.py +0 -38
- lightly_studio/api/routes/api/metrics.py +0 -80
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/0.DenzbfeK.css +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/SelectableSvgGroup.OwPEPQZu.css +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/SelectableSvgGroup.b653GmVf.css +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/_layout.T-zjSUd3.css +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/B2FVR0s0.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/B9zumHo5.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BJXwVxaE.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Bx1xMsFy.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CcaPhhk3.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CvOmgdoc.js +0 -93
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CxtLVaYz.js +0 -3
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/D6RI2Zrd.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/D98V7j6A.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DIRAtgl0.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DjUWrjOv.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/XO7A28GO.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/hQVEETDE.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/nAHhluT7.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/r64xT6ao.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/vC4nQVEB.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/app.CjnvpsmS.js +0 -2
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/start.0o1H7wM9.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/0.XRq_TUwu.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/10.DfBwOEhN.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/12.CwF2_8mP.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/2.CS4muRY-.js +0 -6
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/5.Dm6t9F5W.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/6.Bw5ck4gK.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/7.CF0EDTR6.js +0 -1
- lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/8.Cw30LEcV.js +0 -1
- lightly_studio/metrics/detection/__init__.py +0 -0
- lightly_studio/metrics/detection/map.py +0 -268
- lightly_studio/models/annotation_task.py +0 -28
- lightly_studio/resolvers/annotation_resolver/create.py +0 -19
- lightly_studio/resolvers/annotation_task_resolver.py +0 -31
- lightly_studio-0.3.1.dist-info/METADATA +0 -520
- /lightly_studio/{metrics → core/dataset_query}/__init__.py +0 -0
- /lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/{OpenSans- → OpenSans-Medium.DVUZMR_6.ttf} +0 -0
- {lightly_studio-0.3.1.dist-info → lightly_studio-0.3.3.dist-info}/WHEEL +0 -0
|
@@ -1,174 +1,188 @@
|
|
|
1
|
-
lightly_studio/__init__.py,sha256=
|
|
1
|
+
lightly_studio/__init__.py,sha256=l04o5TZrSbEMkradiGnAG8KHsm8cBX1kwlsjgiSumQg,574
|
|
2
|
+
lightly_studio/db_manager.py,sha256=BTjYzPThvcjRASpy7CJUr0zyxVEPkq43XSCH3BE-zmU,4891
|
|
2
3
|
lightly_studio/export_schema.py,sha256=tjJnekCJFacaK6Hraabfbat0hUknwRW7DqO1lddXcA0,484
|
|
3
4
|
lightly_studio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
5
|
lightly_studio/setup_logging.py,sha256=o4xDUKJ-YkATLvKOqgwSzHaOjGXzN_-1HkiG5hbHXB8,672
|
|
5
6
|
lightly_studio/type_definitions.py,sha256=W2L-SQBD8OtgUc0kbvRbltSqSrIGE1BZzYg_POPOQ0Y,562
|
|
6
7
|
lightly_studio/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
lightly_studio/api/app.py,sha256=
|
|
8
|
+
lightly_studio/api/app.py,sha256=FJjNgVzkwMtSoFAPHxI9QF_cjR8UyOJjo3v_MbCCEG4,3006
|
|
8
9
|
lightly_studio/api/cache.py,sha256=eJF4VYBFhx_p5rItfIIe18SDqUJVkKIDROXv61Tv1Zo,2478
|
|
9
|
-
lightly_studio/api/
|
|
10
|
-
lightly_studio/api/db_tables.py,sha256=Bn4K6lLhECUVu9tCjLFYxV1Yt8F_qAZblAaBzPn9BRs,1339
|
|
10
|
+
lightly_studio/api/db_tables.py,sha256=mL92m47wgxdXAGvfXt4oAOy9R_Q3Vxe_7rPU_NmoMEo,1206
|
|
11
11
|
lightly_studio/api/features.py,sha256=4iwYUj8KMvpC3nvA2bbJQnABacgFC9MfD0jX9hHeYm0,242
|
|
12
12
|
lightly_studio/api/server.py,sha256=dsHBdgPkD3z43GCP4VEoXmC77Pir12Woap4qc7LN52Y,2513
|
|
13
13
|
lightly_studio/api/routes/healthz.py,sha256=4wfMBPqpwYsFenUo006aVA1aIcZg4fg9biM93D0HMlk,356
|
|
14
|
-
lightly_studio/api/routes/images.py,sha256=
|
|
14
|
+
lightly_studio/api/routes/images.py,sha256=J8HSgdmVSMzW9cKmx2Qx2fciFluAU9c6W7nQwg_J-p0,2883
|
|
15
15
|
lightly_studio/api/routes/webapp.py,sha256=7l0-OlShofB0FMZu7X0Kgafp76_S38Exy-hOLsJXdZs,1691
|
|
16
|
-
lightly_studio/api/routes/api/annotation.py,sha256=
|
|
17
|
-
lightly_studio/api/routes/api/annotation_label.py,sha256=
|
|
18
|
-
lightly_studio/api/routes/api/
|
|
19
|
-
lightly_studio/api/routes/api/
|
|
20
|
-
lightly_studio/api/routes/api/
|
|
21
|
-
lightly_studio/api/routes/api/
|
|
16
|
+
lightly_studio/api/routes/api/annotation.py,sha256=XT_fOraJoO6bmRAsI_H-5CBwMlyGvjGRSXLaTFq4Q1w,8611
|
|
17
|
+
lightly_studio/api/routes/api/annotation_label.py,sha256=YZHcgGwzDUo8TTVfWw_hIxRW9Now7sL8gv7-iKaNsCA,2678
|
|
18
|
+
lightly_studio/api/routes/api/classifier.py,sha256=ZBT8LVolL27SAjZjx2YCEGTGervDQeKWWQh4Fa3DKsI,10877
|
|
19
|
+
lightly_studio/api/routes/api/dataset.py,sha256=BIPd5OIhfODj6YIVJ1jhhTGKclJVvcdWlfczSZi0pJE,5357
|
|
20
|
+
lightly_studio/api/routes/api/dataset_tag.py,sha256=5SwrguT5Ds4AkIlCLFPpbLYvkS_vVeB9j7VNDfh251c,7607
|
|
21
|
+
lightly_studio/api/routes/api/embeddings2d.py,sha256=PL7EisBw1-aHOZbuF1ThczLCpBjf7es1DupuYmQLOYw,4257
|
|
22
22
|
lightly_studio/api/routes/api/exceptions.py,sha256=89QD_JVXSCtHUSyTAK_5ganPu7J943KHTXcIkqSU9UY,3331
|
|
23
|
+
lightly_studio/api/routes/api/export.py,sha256=TIF8_JJCTHkob0Ugx_pkJoGqaHIMgA_SgcZ65N9Axx0,2411
|
|
23
24
|
lightly_studio/api/routes/api/features.py,sha256=X3o_iCSLK6f32ctwVQQAKQolUYRA_9SyM7QPKNtPoD8,477
|
|
24
|
-
lightly_studio/api/routes/api/metadata.py,sha256=
|
|
25
|
-
lightly_studio/api/routes/api/
|
|
26
|
-
lightly_studio/api/routes/api/
|
|
27
|
-
lightly_studio/api/routes/api/settings.py,sha256=
|
|
25
|
+
lightly_studio/api/routes/api/metadata.py,sha256=mHSXdRny9dn3f1oamaOxyZSbI2Zh0tGIqoExJOagq6Y,1137
|
|
26
|
+
lightly_studio/api/routes/api/sample.py,sha256=k3-Wm2VBva3PxOIc3ZTbn64m3nMgPrJU-Zun56NNVjw,6523
|
|
27
|
+
lightly_studio/api/routes/api/selection.py,sha256=_T5ZzZmPPlqIzBCsmLcJEafEWtkLatYspdgLtpTJTX0,3031
|
|
28
|
+
lightly_studio/api/routes/api/settings.py,sha256=x-Mr_m02diehh4MBq_F6M5DEFXD6MvgRD-06Bef985g,954
|
|
28
29
|
lightly_studio/api/routes/api/status.py,sha256=PCXra08H8UCepaSc7PxQ7ySNwyC7U-Gsr818bVfawv4,528
|
|
29
30
|
lightly_studio/api/routes/api/text_embedding.py,sha256=ypKHPVg8NpJu40j2yAypzF14eKxrJBQZc9tFQC92ZrY,1456
|
|
30
31
|
lightly_studio/api/routes/api/validators.py,sha256=2I70qb9bXnnhVk-hMYXbGBJDGSws0bqWICb77PaxD6k,539
|
|
32
|
+
lightly_studio/api/routes/api/annotations/__init__.py,sha256=O06o1vsFZAHMO9DnrtAsCcFARAEh2dj3IR6aaeMN4bM,112
|
|
33
|
+
lightly_studio/api/routes/api/annotations/create_annotation.py,sha256=njncfS7ui95w3Vg3HF1FpmyDUPlsnG-Vm1ZGYPaRgoM,1510
|
|
31
34
|
lightly_studio/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
-
lightly_studio/core/
|
|
33
|
-
lightly_studio/core/
|
|
34
|
-
lightly_studio/core/
|
|
35
|
+
lightly_studio/core/add_samples.py,sha256=AZWrJDwC0kprzkkhb3As4pfpppblRpgZvKjEuwCjmxo,13849
|
|
36
|
+
lightly_studio/core/dataset.py,sha256=wtYrxOTOkDh0xWqMBTbRhLhWK0gEUh7DDD0lY-PzAyY,13727
|
|
37
|
+
lightly_studio/core/sample.py,sha256=I0ev9Ak1TXrzzWwUBOPokvv4zbzq_1dkR_ZsnURXob0,6503
|
|
38
|
+
lightly_studio/core/start_gui.py,sha256=ZwO76xMTfHp8ztYzBuRHnNcRAWZoN5KMDQkJ4NayR8w,1605
|
|
39
|
+
lightly_studio/core/dataset_query/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
+
lightly_studio/core/dataset_query/boolean_expression.py,sha256=pDRYTcNoaUcPrVjbxz5vut_TMa5kK7vP73DPfof-gxc,2041
|
|
41
|
+
lightly_studio/core/dataset_query/dataset_query.py,sha256=s34gBmZVfxf7nv1Sfcde9ScPutfF1rgchHGPmZ4SRBM,7999
|
|
42
|
+
lightly_studio/core/dataset_query/field.py,sha256=aKTeiVWcFyc22VO8v79j01CkcfdaLHIl70pn7aTa3Cg,3825
|
|
43
|
+
lightly_studio/core/dataset_query/field_expression.py,sha256=tfu0nwHwbUc1W4kcsDuurR60aJLLVWFwZh1zP3OqhM8,2502
|
|
44
|
+
lightly_studio/core/dataset_query/match_expression.py,sha256=hAsYjxcwon-3iU3pdI0gUa3XRbmxnHT1xwSI18zCdC4,651
|
|
45
|
+
lightly_studio/core/dataset_query/order_by.py,sha256=DJFOyMF3ZYpowi8kZZ4wjjLGboS0qcTVF7AlzXE8PO0,2278
|
|
46
|
+
lightly_studio/core/dataset_query/sample_field.py,sha256=iaswBMsIQMuiVQu0Sus0-HW2w7ybbvUbEfWjcaXJs8w,917
|
|
47
|
+
lightly_studio/core/dataset_query/tags_expression.py,sha256=ZOKbhiDM9CmPfyJipzz3HzQ1AC_mz6VGxXKNPL-vjY8,1369
|
|
35
48
|
lightly_studio/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
-
lightly_studio/dataset/edge_embedding_generator.py,sha256=
|
|
37
|
-
lightly_studio/dataset/embedding_generator.py,sha256=
|
|
38
|
-
lightly_studio/dataset/embedding_manager.py,sha256=
|
|
39
|
-
lightly_studio/dataset/env.py,sha256=
|
|
40
|
-
lightly_studio/dataset/file_utils.py,sha256=
|
|
41
|
-
lightly_studio/dataset/
|
|
42
|
-
lightly_studio/dataset/
|
|
49
|
+
lightly_studio/dataset/edge_embedding_generator.py,sha256=obLsDHxOId9QM-MAaZqDOujJArfjp-eJMgeucWBUjos,4552
|
|
50
|
+
lightly_studio/dataset/embedding_generator.py,sha256=OClb60y4thJiVU-rU4JWKQwp-1s2bw9nJJm2yqxyGzo,2835
|
|
51
|
+
lightly_studio/dataset/embedding_manager.py,sha256=QBN6ev_PhaP0wFqTfjOkYbV6zqxkwolK_6IF-AbjCLY,8147
|
|
52
|
+
lightly_studio/dataset/env.py,sha256=YghE9ehKG03gol_QcUuj2J6d9A8V4fASxXVZQ93Rv-o,814
|
|
53
|
+
lightly_studio/dataset/file_utils.py,sha256=_hd9NSs21Ib1-MuBOKNz1Cu6psUdFIXWHRscNQ-Ch8g,1245
|
|
54
|
+
lightly_studio/dataset/fsspec_lister.py,sha256=WezfO5KiiFoiCSBh3aocrPSbDZBauOxWuh0qaEkOb5g,8779
|
|
55
|
+
lightly_studio/dataset/loader.py,sha256=7ZsAfpw3bgXpkqY9PZiBsrPPwHu_dBGRonYWPNL1i9M,20369
|
|
56
|
+
lightly_studio/dataset/mobileclip_embedding_generator.py,sha256=9WUfxroBNguOSESJgj3vzlF3oHFRr-II-xdr__jpo6I,5030
|
|
43
57
|
lightly_studio/dist_lightly_studio_view_app/apple-touch-icon-precomposed.png,sha256=UUbtebSGy54c3N14FM0irnjnDOsw-ga0zZoWzxIbyeY,1571
|
|
44
58
|
lightly_studio/dist_lightly_studio_view_app/apple-touch-icon.png,sha256=UUbtebSGy54c3N14FM0irnjnDOsw-ga0zZoWzxIbyeY,1571
|
|
45
59
|
lightly_studio/dist_lightly_studio_view_app/favicon.png,sha256=UUbtebSGy54c3N14FM0irnjnDOsw-ga0zZoWzxIbyeY,1571
|
|
46
|
-
lightly_studio/dist_lightly_studio_view_app/index.html,sha256=
|
|
60
|
+
lightly_studio/dist_lightly_studio_view_app/index.html,sha256=EEl64CluZaRq9Q3O2-3to6Awo4cno8qZyl1xsm4xmhA,1842
|
|
47
61
|
lightly_studio/dist_lightly_studio_view_app/_app/env.js,sha256=hLh9EQqXP13H3XQjod8C7qhob7-CvlByIRZBZ0M37fw,85
|
|
48
|
-
lightly_studio/dist_lightly_studio_view_app/_app/version.json,sha256
|
|
49
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/0.
|
|
62
|
+
lightly_studio/dist_lightly_studio_view_app/_app/version.json,sha256=-GAWkK6G5EyxxfLofT7vgys4JF6s_2rvVdUFF3Z72KI,27
|
|
63
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/0.CA_CXIBb.css,sha256=s7X_rUfkFRQ3K_gItpXQ3OAuazP0EaCpRbwBkHMDxvs,52848
|
|
50
64
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/LightlyLogo.BNjCIww-.png,sha256=Hu4gPw9s4pxEOk85ro5VjB4GKLoiMrQCT2LB4cFtpg8,17123
|
|
51
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-,sha256=KrFWKUJKzobUKdvA5ae-sw0q89uZiisDpxYB7mllwzQ,130976
|
|
52
65
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-Bold.DGvYQtcs.ttf,sha256=vHPEXlgQoJcevq7062w13shGB9vgLaZ1f59D2Vi22l8,130860
|
|
53
66
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-Italic-VariableFont_wdth_wght.B4AZ-wl6.ttf,sha256=QSoWv9h46CRX_fdlqFM3O2d3-PF3R1srnb4zUezcLm0,580280
|
|
67
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-Medium.DVUZMR_6.ttf,sha256=KrFWKUJKzobUKdvA5ae-sw0q89uZiisDpxYB7mllwzQ,130976
|
|
54
68
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-Regular.DxJTClRG.ttf,sha256=ZTBIAnfaYu_eBH6ybnin5TLRz67skWA-aNY4drlmnw0,130832
|
|
55
69
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-SemiBold.D3TTYgdB.ttf,sha256=5gMTXMOxIAxyYLNPN_nLHyF4pCs2MDfiah4YJ2q3i_A,130760
|
|
56
70
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-VariableFont_wdth_wght.BZBpG5Iz.ttf,sha256=E3RLvAefD0kuT7OxShXSQrjZYA-qzUI9WM35N_6nzms,529700
|
|
57
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/
|
|
58
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/
|
|
59
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/
|
|
71
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/_layout.DS78jgNY.css,sha256=pGUv2QFSkUYsqYxYrT2mO0hfcx21i3lCwLcdE53iKmw,52908
|
|
72
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/index.BVs_sZj9.css,sha256=_ZGvkmGUgJ3w_Z3JSnYpb7w5AUQyOp_s-O9BvMS6Qyo,817
|
|
73
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/transform.D487hwJk.css,sha256=OzRdBEVH_a7tQYGhXCeAbJlXPhK30vbghmUeptKdXHA,1105
|
|
60
74
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/useFeatureFlags.CV-KWLNP.css,sha256=d3gUJK0pHvJ1f6ZiL2mJ4AmvKUONRGPDbQU_UdWZbs8,289
|
|
61
75
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/69_IOA4Y.js,sha256=ZeRHEle237-CUEan-VArVExxfKi9XafXM591ylj_ecs,34
|
|
62
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
76
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/6t3IJ0vQ.js,sha256=CFs9mkJX0xxLC7P5biNLxxTE2TiugOC2AL6HSrY2S48,2692
|
|
77
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/8NsknIT2.js,sha256=NmVf0S6Mbt-v5j0FPnUaN9l7GH8ZrPmx0e23tXycvR4,976
|
|
63
78
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/B90CZVMX.js,sha256=NSrXzdg71WFiRRhYQIfnoZLpblfPyXvuXXCWIJ1-FQ4,110
|
|
64
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
65
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
66
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
67
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
68
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
69
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
70
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
71
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
79
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BND_-4Kp.js,sha256=slZYVrGVv9f0MqXJ9UctZtXza6Bu9q02ojOhcjf1UWM,1008
|
|
80
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BdfTHw61.js,sha256=vSFwk1r7ZRZznPAxnGOF1PEYVNXQCaqMCvXf654jBTI,1515
|
|
81
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BfHVnyNT.js,sha256=efV80h-F03Hs3BzYo75CiuBm7WsCqDQw-_YemsExDxw,7293
|
|
82
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BjkP1AHA.js,sha256=AnR2kBwnEoqEhBGe1RI5Oyb4Oul8KYGsiKYSg2R9pDo,1738
|
|
83
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BuuNVL9G.js,sha256=WCg_Gbn-6H3t7L61qpARQY5S-v01QVXQczjDAGyZogA,464
|
|
84
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BzKGpnl4.js,sha256=BL171ABDCFCXjBZQAgRYAkLmvMyCYGAh3W0nfMB0LcI,517
|
|
85
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CCx7Ho51.js,sha256=qXPYI9ypUBvPh9yW2lA5dyuIG40oa1WssS9l8xB3LxQ,7148
|
|
86
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CH6P3X75.js,sha256=etm79hGbhL9S2-S28Xmlz5kkSQ4K5s5qIl9vxo87yH8,15074
|
|
87
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CR2upx_Q.js,sha256=KFtlxbEch8yU1ZvSSDtEzYkWglXPfGkwiwvSwhMlgyk,3142
|
|
88
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CWPZrTTJ.js,sha256=a79iCBDN-9sue0QuMHqLscWpgElxB7qqMcWAIyrXO-M,25151
|
|
72
89
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CWj6FrbW.js,sha256=U8gujwcJTusJSlmztmyz71B67fviyXJdA4sx4tz-wvY,106
|
|
73
90
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CYgJF_JY.js,sha256=wIbvC8qcEbFh6Wuxi6tST_Zensm43mTMXLYV4HCoGjI,336
|
|
74
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
75
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
76
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
77
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
78
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
79
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
80
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
81
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
91
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Cs1XmhiF.js,sha256=jgic9KIgeLZNt_e8KVUPAlgjvp3-Quyg0SuY7ksn0xs,227
|
|
92
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CwPowJfP.js,sha256=mDL1C0aWAoHScPjg26G84KY5jPLtgqCe-aDEPdyRypU,1003
|
|
93
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CxFKfZ9T.js,sha256=zzqh08K86PPLWTDxeLVjCNQvdkYNa3-0vTyIxMWahRA,9576
|
|
94
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Cxevwdid.js,sha256=2d8rhstdrSL9Ax3zKFOmCAsivb5G_BZoKoRBVBvpkNM,207
|
|
95
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/D4whDBUi.js,sha256=TOsI31NdfkQG0lv3sButnmAG8fBBoQq3YBJvcs7h-0I,2247
|
|
96
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/D6r9vr07.js,sha256=L7wdRzXy5qL4NexjzpqHpBzLvO7nnf725hgYItYIj6E,12998
|
|
97
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DA6bFLPR.js,sha256=bEPXb-mS6t8dkYgZ3XNMQcrvNM5cpWlEZWv8VPvbiOc,1257
|
|
98
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DEgUu98i.js,sha256=4uzByZuiYWAxxDSBtTPBCQ_Y1u1xA4eHFzvS-VPjdO8,32475
|
|
99
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DGTPl6Gk.js,sha256=x3TenwTNG546vlJHWf6GdCDqZRaFv6xiXHuWwTCodOY,2965
|
|
82
100
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DIeogL5L.js,sha256=Ux-9DG7TuJMhTle8qli8iEz061qYxmM9ZlDzFdqSTc8,62
|
|
83
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
84
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
85
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
101
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DKGxBSlK.js,sha256=2hJ7xekPc40VP7R5qN2QJFzPM3-x8uRJK4mD2UIqgGI,8915
|
|
102
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DQXoLcsF.js,sha256=15aZUs5wX1F10DUmAi1dtgDlZhHJK5EEFGb8hZ26WfQ,5977
|
|
103
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DQe_kdRt.js,sha256=Hlywun8NHmaoB53WwFMl2YbJtz_mh2YqF48u_bozZAU,447963
|
|
104
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DcY4jgG3.js,sha256=ez79ZbiFlMecDJIDjzczQTSQc8GZaZcrOtXkx_qRjg8,20077
|
|
86
105
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/H7C68rOM.js,sha256=5mXutIexRaQU7WbR4RL8IA1NvxoZoYHAVXQ68_WsFuU,1023
|
|
87
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
88
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
89
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/
|
|
90
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/
|
|
91
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/
|
|
92
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/
|
|
93
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/
|
|
94
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/
|
|
95
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/app.CjnvpsmS.js,sha256=str8jSnIsG2cZiI7yRUp8KvNffPxhu3-gmvdvdPj6iY,8898
|
|
96
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/start.0o1H7wM9.js,sha256=hqPIlme9XqC0Crp_tD9PD5KZ2F-7npGKrn0b2gwPm2E,83
|
|
97
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/0.XRq_TUwu.js,sha256=Vlofz4X3sWP2OBPMdO2lpX0m2eu8841Ff7rNuep2vzU,60426
|
|
98
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/1.B4rNYwVp.js,sha256=OV6dRRIJuWXrQPQzDcYbTIBnbHeCxKOdKV36pAhQ19c,544
|
|
99
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/10.DfBwOEhN.js,sha256=l7r5ngWTOhp7GA5QGcly5vSX2K5YxlZ369aZEbvuEss,961
|
|
106
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/RmD8FzRo.js,sha256=wJeCPOhwrSXj1qoi2lsQfkl0Ybz7barrRWzkYU4svhM,1222
|
|
107
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/V-MnMC1X.js,sha256=lRmusbG6a9SRUb1Q_b9DWxRDgGHdv4hfmhiYCFqtFH0,972
|
|
108
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/keKYsoph.js,sha256=v0gmU7Ieu7EKBLVdhG9I9hTHdhRhBOsBRldToQPuUHE,313
|
|
109
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/app.BVr6DYqP.js,sha256=ChcYlfz8D-UOyLLXYs0vY6nsqnn2Fwa_s7PDpwRUmGc,8890
|
|
110
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/start.u7zsVvqp.js,sha256=KorRGNrGMe3E9hhOGVh76w1xuXsddE88E2b1S2Lw0EU,83
|
|
111
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/0.Da2agmdd.js,sha256=pyQHOl8AnXNoFk5jXtdtPMT8-MYmvIhRHm5QFrjNstA,64702
|
|
112
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/1.B11tVRJV.js,sha256=58Ek_m_fDeNG0U7mEKbVKMwc5PunWP9rHHpcchdvVX4,544
|
|
113
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/10.l30Zud4h.js,sha256=BxTS2qT2hyjK6HcKoncGpXTsoGzlwGZJzQDPqJcsdb8,931
|
|
100
114
|
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/11.CWG1ehzT.js,sha256=Z_ycfijsaOCIM9oWR-PD0RPyMfgqfQqKKXMjr3Xmt_g,99
|
|
101
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/12.
|
|
102
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/2.
|
|
103
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/3.
|
|
104
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/4.
|
|
105
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/5.
|
|
106
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/6.
|
|
107
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/7.
|
|
108
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/8.
|
|
109
|
-
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/9.
|
|
110
|
-
lightly_studio/
|
|
111
|
-
lightly_studio/
|
|
112
|
-
lightly_studio/examples/
|
|
113
|
-
lightly_studio/examples/
|
|
114
|
-
lightly_studio/examples/
|
|
115
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/12.CgKPGcAP.js,sha256=_GSLG4iqbNhJ3Fs_8CGTvgQDrjOtKgje1-lxAfrA1s8,2939
|
|
116
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/2.C8HLK8mj.js,sha256=UOP8yu3i1tgD7dcu8lde0gpOKKqU1uBdqtdCoJp4fJQ,1328311
|
|
117
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/3.CLvg3QcJ.js,sha256=coun98VSLdCA1HRuFlv9TbozRqszYKKBKMG3ff_ndEs,468
|
|
118
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/4.BQhDtXUI.js,sha256=eoZz-ma0dU524eRTEq8i73cOjRo3BrqZV4agTGF5vq0,595
|
|
119
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/5.-6XqWX5G.js,sha256=4DwSCXKYT-CHsZzY0vd2JEKkFq0QyS6p_U_OMwWEdYA,16441
|
|
120
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/6.uBV1Lhat.js,sha256=KQARC9Hqjykk4GjxidmFrNYbd21rWEXxcBwt0wDe45s,555
|
|
121
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/7.BXsgoQZh.js,sha256=Ejur9qgQZuaENAEsseYuqGBEGDEmb9ABvBPDZorMsj0,853
|
|
122
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/8.BkbcnUs8.js,sha256=3jPJgLv-XERKiTs8A9I8qqcypBFhS82irOU8o7MqRKw,13897
|
|
123
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/9.Bkrv-Vww.js,sha256=UBwue3zIZf9oPYHSS1ouhmrivpA3tuZCMiqIXMGxaiE,683
|
|
124
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/workers/clustering.worker-DKqeLtG0.js,sha256=08mMV2xxdfpfu9xPDbULd30WqpVC3GxitrqDieK3Qt0,256061
|
|
125
|
+
lightly_studio/dist_lightly_studio_view_app/_app/immutable/workers/search.worker-vNSty3B0.js,sha256=r7YWmAkJU793Lre4Mb7Vb3gvqQYwYYao_icJLrQFFbA,50997
|
|
126
|
+
lightly_studio/examples/example.py,sha256=lxw-Zc72ikoxIEJo7SFV5V5vzwKCUHsAu6Xxt-qKuX4,578
|
|
127
|
+
lightly_studio/examples/example_coco.py,sha256=ttwFSSlVP0IKuASJXeepQQm25WBEkVMNO6EdTRnZ1oE,359
|
|
128
|
+
lightly_studio/examples/example_metadata.py,sha256=Pxp9NpCEvyd601q-UokvGlnUu0yMywUrICJJ4a_7YRA,12729
|
|
129
|
+
lightly_studio/examples/example_selection.py,sha256=UcQ5W0ZTzWZ5TnX-FWsmNJ0sNLz4DODvk0lnAbAGpXs,666
|
|
130
|
+
lightly_studio/examples/example_split_work.py,sha256=0je9xsAPhuvGc7-E7tcx5wbaGRARwSUHzKNskFTmOz4,1236
|
|
131
|
+
lightly_studio/examples/example_yolo.py,sha256=4AZqi2jO2ycH-WPXCDCh9j9y41qW_C-Jgh0jtOdA8pk,477
|
|
132
|
+
lightly_studio/export/export_dataset.py,sha256=txuaKejX5lBrv1LP9GNnBC7hpvhWlwZKNqk18dmu2-s,2018
|
|
133
|
+
lightly_studio/export/lightly_studio_label_input.py,sha256=4IONORlFnrBQ5PpRwJ_9rMCzYTvhlAN7kWNb5UEAaaY,4355
|
|
115
134
|
lightly_studio/few_shot_classifier/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
116
135
|
lightly_studio/few_shot_classifier/classifier.py,sha256=BpPHd69cxMGpNZPJetW9XKmLzVlt9qRoAoSArdt2V50,2444
|
|
117
|
-
lightly_studio/few_shot_classifier/classifier_manager.py,sha256=
|
|
136
|
+
lightly_studio/few_shot_classifier/classifier_manager.py,sha256=a3Zf39vRXWCXTEJiRIs2GmO16m9HyIBAjmf3nyanWxU,24152
|
|
118
137
|
lightly_studio/few_shot_classifier/random_forest_classifier.py,sha256=XoZMhETO4pKGlfH_c6O1MNT-m-qiretifKd0L1iuAqs,17173
|
|
119
138
|
lightly_studio/metadata/complex_metadata.py,sha256=EV3KI11PHA0tHyEu7f-2DKLidlC3gr_mprn_vp-4KNg,1520
|
|
139
|
+
lightly_studio/metadata/compute_typicality.py,sha256=rBK0aoseBtsl6GjLhoucVZiC_DFc4dvmeH84XJTNO3Q,2239
|
|
120
140
|
lightly_studio/metadata/gps_coordinate.py,sha256=FcUGhh0HiFI2FHPu_L9ylbaxbgctvu06jPsly_xzBek,1111
|
|
121
141
|
lightly_studio/metadata/metadata_protocol.py,sha256=kk9x2ZN2uAugnukU4OtEWL9JaW04sUyhM8NoQj8e-XE,554
|
|
122
|
-
lightly_studio/metrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
123
|
-
lightly_studio/metrics/detection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
124
|
-
lightly_studio/metrics/detection/map.py,sha256=iVQHqrzODWv517aCGUWVHU8byB7jfhyQ1F_elCRs-ds,8639
|
|
125
142
|
lightly_studio/models/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
126
143
|
lightly_studio/models/annotation_label.py,sha256=oMOai50vyXOccgAONAvfQPPxiTwPFibgPtDXjT1nK58,1272
|
|
127
|
-
lightly_studio/models/annotation_task.py,sha256=LR-yCwmMJjmlVl_mu25WEHZ_lDMbCdVPijnEAlonAhE,795
|
|
128
144
|
lightly_studio/models/classifier.py,sha256=jSyEEvVhE2pQbkup1kAcdJaXBQSDSBfS1kXbpC3OOXc,446
|
|
129
|
-
lightly_studio/models/dataset.py,sha256=
|
|
145
|
+
lightly_studio/models/dataset.py,sha256=uYTxrBvOrA0sgm_4vhGXAWRTTje2RFlHF1PNVpmEueQ,2800
|
|
130
146
|
lightly_studio/models/embedding_model.py,sha256=nlCxVyuBNDooYfnyFUmPd5xIOpaY7x1o_w2FrJg0hCI,995
|
|
131
147
|
lightly_studio/models/metadata.py,sha256=uE-Meo585PZ95b9LzknzLCYCN7Sm6k23Fc_vjuPCuoU,6574
|
|
132
|
-
lightly_studio/models/sample.py,sha256=
|
|
148
|
+
lightly_studio/models/sample.py,sha256=gjt4mJCxQQ0jCOFbVuA2P6OaG4mhCrA0dQk2H7Fo1bU,5698
|
|
133
149
|
lightly_studio/models/sample_embedding.py,sha256=2rCnT1bLpAYsGqeewTqvLDP4TBALKpgZl-UJY7q0M9k,1090
|
|
134
150
|
lightly_studio/models/settings.py,sha256=I0qC96sLi9-EJcgn6M00MdStISZius0X14Dp4Gc5P1I,1703
|
|
135
151
|
lightly_studio/models/tag.py,sha256=gdKjEKx_6uRs09SegzeVbssaeOEEiLvrwPG2u65WNxo,2479
|
|
136
152
|
lightly_studio/models/annotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
|
-
lightly_studio/models/annotation/annotation_base.py,sha256=
|
|
138
|
-
lightly_studio/models/annotation/instance_segmentation.py,sha256=
|
|
153
|
+
lightly_studio/models/annotation/annotation_base.py,sha256=GhaxYdR3nMJ8Ih4z4XEB02WzfX4FIAGR9XlUlBFRLrY,5296
|
|
154
|
+
lightly_studio/models/annotation/instance_segmentation.py,sha256=URv5sOyBHsxmYX2huqlW7qDHuDCzL3LRBqmSzG8pSsw,1596
|
|
139
155
|
lightly_studio/models/annotation/links.py,sha256=FoFGeoznbr8gHVrJo4l4xSvs7ko4SS2ddMQl1SiRRXQ,510
|
|
140
|
-
lightly_studio/models/annotation/object_detection.py,sha256=
|
|
156
|
+
lightly_studio/models/annotation/object_detection.py,sha256=lOvkt8uyPqXljy7oUmXx9_3IB1xdpjuVAxRQVgugsp8,1114
|
|
141
157
|
lightly_studio/models/annotation/semantic_segmentation.py,sha256=HVM3djqtM1KNq2mFYcDfjmNz8Fs3glEVjUOQ5tj5FFs,1348
|
|
142
158
|
lightly_studio/resolvers/__init__.py,sha256=fMGTt_WiKFrqk6W8UlCkZL_cZBHiUej4Q0pxHS3VWdo,137
|
|
143
|
-
lightly_studio/resolvers/
|
|
144
|
-
lightly_studio/resolvers/
|
|
145
|
-
lightly_studio/resolvers/embedding_model_resolver.py,sha256=4Kqq5mWCeLibHh9gvRDtlDxpDlvScfqBdv4rH-S8ldo,3399
|
|
159
|
+
lightly_studio/resolvers/dataset_resolver.py,sha256=sIiDxKPw2IFDpS76NcP_2cyMsvUQygmv8hT3sjZp48c,10445
|
|
160
|
+
lightly_studio/resolvers/embedding_model_resolver.py,sha256=GfcsSYj8Dw1WwFh0Zz4NPEPF2EgNJXTosTKW7_uo2YQ,4391
|
|
146
161
|
lightly_studio/resolvers/sample_embedding_resolver.py,sha256=M7Uw6Bv6XBHPXraV8ja_KpjJ35rQzlwGys-fAQLtwn0,2937
|
|
147
|
-
lightly_studio/resolvers/sample_resolver.py,sha256=
|
|
162
|
+
lightly_studio/resolvers/sample_resolver.py,sha256=dS8khKwxmsvyc8tYfswYLIkq4UFLOKEqpdYo0st5WIk,10901
|
|
148
163
|
lightly_studio/resolvers/samples_filter.py,sha256=-76zxZb-GnrhpnhjEXVzQtdNGqyIJjPH6rpkNRzswTA,3182
|
|
149
164
|
lightly_studio/resolvers/settings_resolver.py,sha256=15mSvoBALtHps4un3s_dk2lB2F-e8v_II97vwn056sg,1628
|
|
150
|
-
lightly_studio/resolvers/tag_resolver.py,sha256=
|
|
151
|
-
lightly_studio/resolvers/annotation_label_resolver/__init__.py,sha256=
|
|
165
|
+
lightly_studio/resolvers/tag_resolver.py,sha256=PuMQflQ-PumQF96EwAUcVkSIeFzi11JeqJDnXYwyyic,8782
|
|
166
|
+
lightly_studio/resolvers/annotation_label_resolver/__init__.py,sha256=c0NxLRVKQYKxnPuGEI8dO-dBE610QxH0Vkz0oQwDwsI,555
|
|
152
167
|
lightly_studio/resolvers/annotation_label_resolver/create.py,sha256=q2vrnOXd8S6FMp6BrM-d4Kz_ydeo9n-0gFZSOM-sY7E,750
|
|
153
168
|
lightly_studio/resolvers/annotation_label_resolver/delete.py,sha256=uGpcC_PG96MdHxNdmv-1-PhxUrAy6A3bC4f8twwZ4Tw,653
|
|
154
|
-
lightly_studio/resolvers/annotation_label_resolver/get_all.py,sha256=
|
|
169
|
+
lightly_studio/resolvers/annotation_label_resolver/get_all.py,sha256=ICGTGwS7GQxPSKm9dXGm0tY40ASFngMT_yGgI8A9flI,1094
|
|
155
170
|
lightly_studio/resolvers/annotation_label_resolver/get_by_id.py,sha256=ApNkHolcbkLgDKYTzzATweS-daKX6uE-Eck1dwK58tk,755
|
|
156
171
|
lightly_studio/resolvers/annotation_label_resolver/get_by_ids.py,sha256=ofuxTjMRjHe5CoyRwsRVT7AbQJyuXqjqSjQnQrPr4MA,797
|
|
157
172
|
lightly_studio/resolvers/annotation_label_resolver/get_by_label_name.py,sha256=hhgX7WdYjSBGWcSgFN3s43yKURj3IF5HhEATs4hR2KU,743
|
|
158
173
|
lightly_studio/resolvers/annotation_label_resolver/names_by_ids.py,sha256=kqDHrclODReDPOTi5K47dfQdO_uztTrl274hunURoK0,833
|
|
159
174
|
lightly_studio/resolvers/annotation_label_resolver/update.py,sha256=Lzjv57VFphvZ_4k5DEsnitOSaWld9O3QqHQuEcH6g4U,989
|
|
160
|
-
lightly_studio/resolvers/annotation_resolver/__init__.py,sha256=
|
|
175
|
+
lightly_studio/resolvers/annotation_resolver/__init__.py,sha256=zpKrUmsMN80myN8KpegKG8ObySPtR4-yHmF2SUn20cs,1064
|
|
161
176
|
lightly_studio/resolvers/annotation_resolver/count_annotations_by_dataset.py,sha256=0hgRFVJT02sNG_aWICSAm6JWPN10xGcNlFuoeWSMJ14,4280
|
|
162
|
-
lightly_studio/resolvers/annotation_resolver/
|
|
163
|
-
lightly_studio/resolvers/annotation_resolver/
|
|
164
|
-
lightly_studio/resolvers/annotation_resolver/
|
|
165
|
-
lightly_studio/resolvers/annotation_resolver/delete_annotations.py,sha256=2gn0YyH5q4IW3-aE5wan0GAXw11OPWyd5TX13VunwYo,1891
|
|
177
|
+
lightly_studio/resolvers/annotation_resolver/create_many.py,sha256=0lBfnC0kDwY6t105lkCFHLFOuyPQGD2wYSCYttjc0Uk,3783
|
|
178
|
+
lightly_studio/resolvers/annotation_resolver/delete_annotation.py,sha256=_PugnfgDMTk7UNZzHb5_ZCgbUlSSd1JpS_yY1lGyxkw,1371
|
|
179
|
+
lightly_studio/resolvers/annotation_resolver/delete_annotations.py,sha256=PwBkkuiYLpZVr_B0VdlL_SegKB6CSAk0B67yCFIjCf4,2114
|
|
166
180
|
lightly_studio/resolvers/annotation_resolver/get_all.py,sha256=6YqdcVesm_rHc2An1ZFbEefVBZnRiHe8MaCfYYRGVU4,2176
|
|
167
|
-
lightly_studio/resolvers/annotation_resolver/get_by_id.py,sha256=
|
|
168
|
-
lightly_studio/resolvers/annotation_resolver/update_annotation_label.py,sha256=
|
|
181
|
+
lightly_studio/resolvers/annotation_resolver/get_by_id.py,sha256=chL9xS-4wR4BtFvn1Cf13GoqgFvKbr8-q7NHVce0FdY,1088
|
|
182
|
+
lightly_studio/resolvers/annotation_resolver/update_annotation_label.py,sha256=2KL1SsoofZTMWjmKuKqe09TtquuzkmnSkxuJg8Ftk9Y,5388
|
|
169
183
|
lightly_studio/resolvers/annotation_resolver/update_bounding_box.py,sha256=6Mok2dKXFSkFN3bSSd4TO_nUTTMKq83EN5aL5nocQQc,2280
|
|
170
184
|
lightly_studio/resolvers/annotations/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
171
|
-
lightly_studio/resolvers/annotations/annotations_filter.py,sha256=
|
|
185
|
+
lightly_studio/resolvers/annotations/annotations_filter.py,sha256=eaZT6wttubYjSC35N88ary1mZwnKIC7k0zZWRCHSKns,2696
|
|
172
186
|
lightly_studio/resolvers/metadata_resolver/__init__.py,sha256=jZZsOiOalzX5Sg4bSavTFzC49feQgIADWOb7abl_UMw,316
|
|
173
187
|
lightly_studio/resolvers/metadata_resolver/metadata_filter.py,sha256=WpA5na4MfZxgRFNp_WdY6RA9FAnZPaL-mAGpb76pzm8,5169
|
|
174
188
|
lightly_studio/resolvers/metadata_resolver/sample/__init__.py,sha256=2dSGpLxLFZGrg0U2LLRGrClRIvukwBh17aI8y2Sq_tE,404
|
|
@@ -178,13 +192,16 @@ lightly_studio/resolvers/metadata_resolver/sample/get_metadata_info.py,sha256=Rw
|
|
|
178
192
|
lightly_studio/resolvers/metadata_resolver/sample/get_value_for_sample.py,sha256=NbPANvsFAyKvutYSC97HSFmmOmiNKcOU71zXmP3IRUU,702
|
|
179
193
|
lightly_studio/resolvers/metadata_resolver/sample/set_value_for_sample.py,sha256=HNs5t8VACf9h_qJ69R_h34K1TPGa7UjQokkpEcl9530,1289
|
|
180
194
|
lightly_studio/selection/README.md,sha256=X9KTCy5GmLxpVmb-MELqpBQKhlRxaQ0aQt5i3fnAOKQ,320
|
|
181
|
-
lightly_studio/selection/mundig.py,sha256=
|
|
182
|
-
lightly_studio/selection/select.py,sha256=
|
|
183
|
-
lightly_studio/selection/select_via_db.py,sha256=
|
|
184
|
-
lightly_studio/selection/selection_config.py,sha256=
|
|
185
|
-
lightly_studio/services/annotations_service/__init__.py,sha256=
|
|
195
|
+
lightly_studio/selection/mundig.py,sha256=dRph7_lQbw4nTYqbvsAsPgUDD_TSZAOcYHWN6c2CLro,3991
|
|
196
|
+
lightly_studio/selection/select.py,sha256=OQU8iw_h3qHRzq7L9rD2NlU56wRRosxJlZfdBa7EvGg,3663
|
|
197
|
+
lightly_studio/selection/select_via_db.py,sha256=tLmNLuPaQqzSqdvmEo0Mc8-sFNMptikG9eruXqXlblE,3621
|
|
198
|
+
lightly_studio/selection/selection_config.py,sha256=AqnXdYy5tkQ45wUfJS_Fbdjk-l9y9-ubis-7oFBCPq0,903
|
|
199
|
+
lightly_studio/services/annotations_service/__init__.py,sha256=VRLb6c2KO2vCvfZ5r_PgVEZztV0d5PL-wrAIVxvQxBc,1010
|
|
200
|
+
lightly_studio/services/annotations_service/create_annotation.py,sha256=ClN4cJJqpdg1eN7KmzuKAkQBbPkJKWAYi2PKewyS_mE,1581
|
|
201
|
+
lightly_studio/services/annotations_service/delete_annotation.py,sha256=cDsE9fi0WSSGSRpwnATHpCJr8Dy7x2t9T8-pIesuSG0,604
|
|
186
202
|
lightly_studio/services/annotations_service/get_annotation_by_id.py,sha256=95OyWCE5egmiY97P2_3xAbul_gWLDMM0Gf7Kgf9bKiM,804
|
|
187
|
-
lightly_studio/services/annotations_service/update_annotation.py,sha256=
|
|
203
|
+
lightly_studio/services/annotations_service/update_annotation.py,sha256=KzSB0XWSk2pj2CImkup8s12uy4urEAzVw4reUVewtC0,1569
|
|
204
|
+
lightly_studio/services/annotations_service/update_annotation_bounding_box.py,sha256=zL76GVl9lmmPEHOlNbfmusKK1QO_uP0GSkzHQ15iZlw,1008
|
|
188
205
|
lightly_studio/services/annotations_service/update_annotation_label.py,sha256=B84_9XkHdyCu-Tp7SW8yVtVRv1jmFtdHTEkLwMgpANA,1279
|
|
189
206
|
lightly_studio/services/annotations_service/update_annotations.py,sha256=WAR8hLEE7FAJL7F8E6HQ63fQZzPBRSjxMtgSFaFZSZg,866
|
|
190
207
|
lightly_studio/vendor/ACKNOWLEDGEMENTS,sha256=H99jquLjJeLv3hrtHTzJrdsGPqYKMfQNKlZL18KawoM,22903
|
|
@@ -214,6 +231,6 @@ lightly_studio/vendor/mobileclip/modules/image/replknet.py,sha256=kbcZTT3KAdpv7I
|
|
|
214
231
|
lightly_studio/vendor/mobileclip/modules/text/__init__.py,sha256=xIBdotHUSILUTw9Um4NfLunDEtNuQVKRcZlVhwJih38,104
|
|
215
232
|
lightly_studio/vendor/mobileclip/modules/text/repmixer.py,sha256=baFcHH8bLVeW2VET9gZvg2bUy080yLDVxDr4cuH2upg,9401
|
|
216
233
|
lightly_studio/vendor/mobileclip/modules/text/tokenizer.py,sha256=g569KONPF33J-2BWgghUy3Xcj0vDE-g00W1YpOZiGwk,1328
|
|
217
|
-
lightly_studio-0.3.
|
|
218
|
-
lightly_studio-0.3.
|
|
219
|
-
lightly_studio-0.3.
|
|
234
|
+
lightly_studio-0.3.3.dist-info/METADATA,sha256=GAu_TwozDwtQheVlREzypMSiGcixpPBQavKicN5bn94,24226
|
|
235
|
+
lightly_studio-0.3.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
236
|
+
lightly_studio-0.3.3.dist-info/RECORD,,
|
lightly_studio/api/db.py
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
"""Module provides functions to initialize and manage the DuckDB."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
import logging
|
|
6
|
-
import os
|
|
7
|
-
from contextlib import contextmanager
|
|
8
|
-
from typing import Generator
|
|
9
|
-
|
|
10
|
-
from sqlalchemy.engine import Engine
|
|
11
|
-
from sqlmodel import Session, SQLModel, create_engine
|
|
12
|
-
|
|
13
|
-
import lightly_studio.api.db_tables # noqa: F401, required for SQLModel to work properly
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class MockDatabaseManager:
|
|
17
|
-
"""Mock version of DatabaseManager."""
|
|
18
|
-
|
|
19
|
-
_persistent_session: Session | None = None
|
|
20
|
-
|
|
21
|
-
def __init__(self) -> None:
|
|
22
|
-
"""Create a new instance of the MockDatabaseManager."""
|
|
23
|
-
self.engine = create_engine("duckdb:///:memory:")
|
|
24
|
-
self._session_instance = Session(self.engine, close_resets_only=False)
|
|
25
|
-
# Initialize tables
|
|
26
|
-
SQLModel.metadata.create_all(self.engine)
|
|
27
|
-
|
|
28
|
-
@contextmanager
|
|
29
|
-
def session(self) -> Generator[Session, None, None]:
|
|
30
|
-
"""Return the database session."""
|
|
31
|
-
try:
|
|
32
|
-
yield self._session_instance
|
|
33
|
-
if not self._session_instance.in_transaction():
|
|
34
|
-
self._session_instance.commit()
|
|
35
|
-
except Exception:
|
|
36
|
-
self._session_instance.rollback()
|
|
37
|
-
raise
|
|
38
|
-
finally:
|
|
39
|
-
self._session_instance.close()
|
|
40
|
-
|
|
41
|
-
def persistent_session(self) -> Session:
|
|
42
|
-
"""Create a persistent session."""
|
|
43
|
-
if self._persistent_session is None:
|
|
44
|
-
self._persistent_session = Session(self.engine, close_resets_only=False)
|
|
45
|
-
return self._persistent_session
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
class DatabaseManager:
|
|
49
|
-
"""Manages database connections and ensures proper resource handling."""
|
|
50
|
-
|
|
51
|
-
_instance: DatabaseManager | None = None
|
|
52
|
-
engine: Engine | None = None
|
|
53
|
-
_persistent_session: Session | None = None
|
|
54
|
-
|
|
55
|
-
@staticmethod
|
|
56
|
-
def database_exists(db_file: str) -> bool:
|
|
57
|
-
"""Check if database file exists.
|
|
58
|
-
|
|
59
|
-
Args:
|
|
60
|
-
db_file: Path to the database file
|
|
61
|
-
|
|
62
|
-
Returns:
|
|
63
|
-
True if database file exists, False otherwise
|
|
64
|
-
"""
|
|
65
|
-
return os.path.exists(db_file)
|
|
66
|
-
|
|
67
|
-
@staticmethod
|
|
68
|
-
def cleanup_database(db_file: str) -> None:
|
|
69
|
-
"""Delete database file if it exists.
|
|
70
|
-
|
|
71
|
-
Args:
|
|
72
|
-
db_file: Path to the database file to delete
|
|
73
|
-
"""
|
|
74
|
-
if DatabaseManager.database_exists(db_file):
|
|
75
|
-
os.remove(db_file)
|
|
76
|
-
logging.info(f"Deleted existing database: {db_file}")
|
|
77
|
-
|
|
78
|
-
def __new__(
|
|
79
|
-
cls, db_file: str = "lightly_studio.db", cleanup_existing: bool = False
|
|
80
|
-
) -> DatabaseManager:
|
|
81
|
-
"""Create a new instance of the DatabaseManager.
|
|
82
|
-
|
|
83
|
-
Args:
|
|
84
|
-
db_file: Path to the database file
|
|
85
|
-
cleanup_existing: If True, deletes existing database
|
|
86
|
-
before creating a new one
|
|
87
|
-
|
|
88
|
-
Returns:
|
|
89
|
-
DatabaseManager instance
|
|
90
|
-
"""
|
|
91
|
-
if cleanup_existing:
|
|
92
|
-
cls.cleanup_database(db_file)
|
|
93
|
-
|
|
94
|
-
if cls._instance is None:
|
|
95
|
-
cls._instance = super().__new__(cls)
|
|
96
|
-
# File-based DuckDB
|
|
97
|
-
cls._instance.engine = create_engine(f"duckdb:///{db_file}")
|
|
98
|
-
# Initialize tables
|
|
99
|
-
SQLModel.metadata.create_all(cls._instance.engine)
|
|
100
|
-
return cls._instance
|
|
101
|
-
|
|
102
|
-
@contextmanager
|
|
103
|
-
def session(self) -> Generator[Session, None, None]:
|
|
104
|
-
"""Create a new database session."""
|
|
105
|
-
session = Session(self.engine, close_resets_only=False)
|
|
106
|
-
try:
|
|
107
|
-
yield session
|
|
108
|
-
session.commit()
|
|
109
|
-
except Exception:
|
|
110
|
-
session.rollback()
|
|
111
|
-
raise
|
|
112
|
-
finally:
|
|
113
|
-
session.close()
|
|
114
|
-
|
|
115
|
-
def persistent_session(self) -> Session:
|
|
116
|
-
"""Create a persistent session."""
|
|
117
|
-
if self._persistent_session is None:
|
|
118
|
-
# TODO(Michal, 08/2025): Consider setting close_resets_only=True
|
|
119
|
-
# before the release. The current solution is more strict and prevents
|
|
120
|
-
# bugs but it might be too restrictive for users.
|
|
121
|
-
self._persistent_session = Session(self.engine, close_resets_only=False)
|
|
122
|
-
return self._persistent_session
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
# Global instance
|
|
126
|
-
db_manager = DatabaseManager(cleanup_existing=True)
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
# For FastAPI dependency injection
|
|
130
|
-
def get_session() -> Generator[Session, None, None]:
|
|
131
|
-
"""Yield a new session for database operations."""
|
|
132
|
-
with db_manager.session() as session:
|
|
133
|
-
yield session
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"""API endpoints for annotation tasks."""
|
|
2
|
-
|
|
3
|
-
from typing import List
|
|
4
|
-
from uuid import UUID
|
|
5
|
-
|
|
6
|
-
from fastapi import APIRouter, Depends, HTTPException, status
|
|
7
|
-
from sqlmodel import Session
|
|
8
|
-
|
|
9
|
-
from lightly_studio.api.db import get_session
|
|
10
|
-
from lightly_studio.models.annotation_task import AnnotationTaskTable
|
|
11
|
-
from lightly_studio.resolvers import annotation_task_resolver
|
|
12
|
-
|
|
13
|
-
router = APIRouter(prefix="/annotationtasks", tags=["annotationtasks"])
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
@router.get("/", response_model=List[AnnotationTaskTable])
|
|
17
|
-
def get_annotation_tasks(
|
|
18
|
-
session: Session = Depends(get_session), # noqa: B008
|
|
19
|
-
) -> List[AnnotationTaskTable]:
|
|
20
|
-
"""Get all annotation tasks."""
|
|
21
|
-
return annotation_task_resolver.get_all(session=session)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
@router.get("/{annotation_task_id}", response_model=AnnotationTaskTable)
|
|
25
|
-
def get_annotation_task(
|
|
26
|
-
annotation_task_id: UUID,
|
|
27
|
-
session: Session = Depends(get_session), # noqa: B008
|
|
28
|
-
) -> AnnotationTaskTable:
|
|
29
|
-
"""Get an annotation task by ID."""
|
|
30
|
-
task = annotation_task_resolver.get_by_id(
|
|
31
|
-
session=session, annotation_task_id=annotation_task_id
|
|
32
|
-
)
|
|
33
|
-
if task is None:
|
|
34
|
-
raise HTTPException(
|
|
35
|
-
status_code=status.HTTP_404_NOT_FOUND,
|
|
36
|
-
detail=f"Annotation task with ID {annotation_task_id} not found",
|
|
37
|
-
)
|
|
38
|
-
return task
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"""This module contains the API routes for computing detection metrics."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from uuid import UUID
|
|
6
|
-
|
|
7
|
-
from fastapi import APIRouter, Depends
|
|
8
|
-
from pydantic import BaseModel
|
|
9
|
-
from sqlmodel import Session
|
|
10
|
-
from typing_extensions import Annotated
|
|
11
|
-
|
|
12
|
-
from lightly_studio.api.db import get_session
|
|
13
|
-
from lightly_studio.metrics.detection.map import (
|
|
14
|
-
DetectionMetricsMAP,
|
|
15
|
-
calculate_map_metric,
|
|
16
|
-
)
|
|
17
|
-
from lightly_studio.resolvers import (
|
|
18
|
-
annotation_label_resolver,
|
|
19
|
-
annotation_resolver,
|
|
20
|
-
)
|
|
21
|
-
from lightly_studio.resolvers.annotations.annotations_filter import (
|
|
22
|
-
AnnotationsFilter,
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
metrics_router = APIRouter()
|
|
26
|
-
|
|
27
|
-
SessionDep = Annotated[Session, Depends(get_session)]
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
class DetectionMetricsMAPRequest(BaseModel):
|
|
31
|
-
"""Request for computing the MAP detection metric."""
|
|
32
|
-
|
|
33
|
-
dataset_id: UUID
|
|
34
|
-
ground_truth_task_id: UUID
|
|
35
|
-
prediction_task_id: UUID
|
|
36
|
-
tag_id: UUID | None = None
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
@metrics_router.post("/metrics/compute/detection/map", response_model=DetectionMetricsMAP)
|
|
40
|
-
def compute_detection_map(
|
|
41
|
-
request_body: DetectionMetricsMAPRequest,
|
|
42
|
-
session: SessionDep,
|
|
43
|
-
) -> DetectionMetricsMAP:
|
|
44
|
-
"""Compute the MAP detection metric."""
|
|
45
|
-
ground_truth_annotations = annotation_resolver.get_all(
|
|
46
|
-
session=session,
|
|
47
|
-
filters=AnnotationsFilter(
|
|
48
|
-
dataset_ids=[request_body.dataset_id],
|
|
49
|
-
annotation_task_ids=[request_body.ground_truth_task_id],
|
|
50
|
-
sample_tag_ids=[request_body.tag_id] if request_body.tag_id else None,
|
|
51
|
-
),
|
|
52
|
-
).annotations
|
|
53
|
-
prediction_annotations = annotation_resolver.get_all(
|
|
54
|
-
session=session,
|
|
55
|
-
filters=AnnotationsFilter(
|
|
56
|
-
dataset_ids=[request_body.dataset_id],
|
|
57
|
-
annotation_task_ids=[request_body.prediction_task_id],
|
|
58
|
-
sample_tag_ids=[request_body.tag_id] if request_body.tag_id else None,
|
|
59
|
-
),
|
|
60
|
-
).annotations
|
|
61
|
-
|
|
62
|
-
metrics_result = calculate_map_metric(
|
|
63
|
-
pred_annotations=prediction_annotations,
|
|
64
|
-
gt_annotations=ground_truth_annotations,
|
|
65
|
-
)
|
|
66
|
-
|
|
67
|
-
# Rename per-class metrics to use label names
|
|
68
|
-
raw_map_pc = metrics_result.map_per_class
|
|
69
|
-
if raw_map_pc:
|
|
70
|
-
id2name = annotation_label_resolver.names_by_ids(
|
|
71
|
-
session=session, ids=[UUID(k) for k in raw_map_pc]
|
|
72
|
-
)
|
|
73
|
-
metrics_result.map_per_class = {id2name.get(k, k): v for k, v in raw_map_pc.items()}
|
|
74
|
-
raw_mar100_pc = metrics_result.mar_100_per_class
|
|
75
|
-
if raw_mar100_pc:
|
|
76
|
-
id2name = annotation_label_resolver.names_by_ids(
|
|
77
|
-
session=session, ids=[UUID(k) for k in raw_mar100_pc]
|
|
78
|
-
)
|
|
79
|
-
metrics_result.mar_100_per_class = {id2name.get(k, k): v for k, v in raw_mar100_pc.items()}
|
|
80
|
-
return metrics_result
|