lightly-studio 0.3.2__tar.gz → 0.3.3__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.
Potentially problematic release.
This version of lightly-studio might be problematic. Click here for more details.
- lightly_studio-0.3.2/USAGE.md → lightly_studio-0.3.3/PKG-INFO +183 -24
- lightly_studio-0.3.2/PKG-INFO → lightly_studio-0.3.3/USAGE.md +142 -58
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/pyproject.toml +30 -11
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/__init__.py +1 -1
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/app.py +6 -4
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/db_tables.py +0 -3
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/annotation.py +26 -0
- lightly_studio-0.3.3/src/lightly_studio/api/routes/api/annotations/__init__.py +7 -0
- lightly_studio-0.3.3/src/lightly_studio/api/routes/api/annotations/create_annotation.py +52 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/dataset.py +3 -5
- lightly_studio-0.3.3/src/lightly_studio/api/routes/api/embeddings2d.py +104 -0
- lightly_studio-0.3.3/src/lightly_studio/api/routes/api/export.py +73 -0
- lightly_studio-0.3.3/src/lightly_studio/api/routes/api/selection.py +87 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/add_samples.py +0 -9
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/dataset.py +32 -48
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/dataset_query/dataset_query.py +5 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dataset/env.py +4 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dataset/file_utils.py +13 -2
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dataset/loader.py +0 -54
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dataset/mobileclip_embedding_generator.py +3 -2
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/0.CA_CXIBb.css +1 -0
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/_layout.DS78jgNY.css +1 -0
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/SelectableSvgGroup.BNTuXSAe.css → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/index.BVs_sZj9.css +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/SelectableSvgGroup.BBm0IWdq.css → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/transform.D487hwJk.css +1 -1
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/6t3IJ0vQ.js +1 -0
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/gLNdjSzu.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/8NsknIT2.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Cur71c3O.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BND_-4Kp.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DRZO-E-T.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BdfTHw61.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BqBqV92V.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BfHVnyNT.js +1 -1
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BjkP1AHA.js +1 -0
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BuuNVL9G.js +1 -0
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/7YNGEs1C.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BzKGpnl4.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/C0JiMuYn.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CCx7Ho51.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DcGCxgpH.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CH6P3X75.js +1 -1
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CR2upx_Q.js +4 -0
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CWPZrTTJ.js +1 -0
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Ccq4ZD0B.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Cs1XmhiF.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/OH7-C_mc.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CwPowJfP.js +1 -1
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CxFKfZ9T.js +1 -0
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Cxevwdid.js +1 -0
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/C98Hk3r5.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/D4whDBUi.js +1 -1
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/D6r9vr07.js +1 -0
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DqUGznj_.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DA6bFLPR.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/2O287xak.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DEgUu98i.js +2 -2
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/KpAtIldw.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DGTPl6Gk.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Cs31G8Qn.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DKGxBSlK.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/D8GZDMNN.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DQXoLcsF.js +1 -1
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DQe_kdRt.js +92 -0
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DcY4jgG3.js +1 -0
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Crk-jcvV.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/RmD8FzRo.js +1 -1
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/V-MnMC1X.js +1 -0
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Df3aMO5B.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/keKYsoph.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/app.BI-EA5gL.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/app.BVr6DYqP.js +2 -2
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/start.u7zsVvqp.js +1 -0
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/0.Da2agmdd.js +1 -0
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/1._I9GR805.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/1.B11tVRJV.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/10.J2RBFrSr.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/10.l30Zud4h.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/12.Cmqj25a-.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/12.CgKPGcAP.js +1 -1
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/2.C8HLK8mj.js +857 -0
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/3.w9g4AcAx.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/3.CLvg3QcJ.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/4.BBI8KwnD.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/4.BQhDtXUI.js +1 -1
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/5.-6XqWX5G.js +1 -0
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/6.CrbkRPam.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/6.uBV1Lhat.js +1 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/7.FomEdhD6.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/7.BXsgoQZh.js +1 -1
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/8.BkbcnUs8.js +1 -0
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/9.CajIG5ce.js → lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/9.Bkrv-Vww.js +1 -1
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/workers/clustering.worker-DKqeLtG0.js +2 -0
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/workers/search.worker-vNSty3B0.js +1 -0
- lightly_studio-0.3.3/src/lightly_studio/dist_lightly_studio_view_app/_app/version.json +1 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/index.html +14 -14
- lightly_studio-0.3.3/src/lightly_studio/export/export_dataset.py +65 -0
- lightly_studio-0.3.3/src/lightly_studio/export/lightly_studio_label_input.py +120 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/few_shot_classifier/classifier_manager.py +5 -26
- lightly_studio-0.3.3/src/lightly_studio/metadata/compute_typicality.py +67 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/annotation/annotation_base.py +11 -12
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_label_resolver/__init__.py +2 -1
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_label_resolver/get_all.py +15 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_resolver/__init__.py +2 -3
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_resolver/create_many.py +3 -3
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_resolver/delete_annotation.py +1 -1
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_resolver/delete_annotations.py +7 -3
- lightly_studio-0.3.3/src/lightly_studio/resolvers/annotation_resolver/get_by_id.py +36 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_resolver/update_annotation_label.py +0 -1
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotations/annotations_filter.py +1 -11
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/selection/mundig.py +7 -10
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/selection/selection_config.py +4 -1
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/services/annotations_service/__init__.py +8 -0
- lightly_studio-0.3.3/src/lightly_studio/services/annotations_service/create_annotation.py +63 -0
- lightly_studio-0.3.3/src/lightly_studio/services/annotations_service/delete_annotation.py +22 -0
- lightly_studio-0.3.2/src/lightly_studio/api/routes/api/annotation_task.py +0 -37
- lightly_studio-0.3.2/src/lightly_studio/api/routes/api/metrics.py +0 -76
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/0.DenzbfeK.css +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/_layout.T-zjSUd3.css +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BBoGk9hq.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/BRnH9v23.js +0 -92
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Bg1Y5eUZ.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CG0dMCJi.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/Cpy-nab_.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CsKrY2zA.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CzgC3GFB.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DFRh-Spp.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DkR_EZ_B.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/M1Q1F7bw.js +0 -4
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/i0ZZ4z06.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/entry/start.CcsRl3cZ.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/0.BbO4Zc3r.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/2.C45iKJHA.js +0 -6
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/5.huHuxdiF.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/8.Cb_ADSLk.js +0 -1
- lightly_studio-0.3.2/src/lightly_studio/dist_lightly_studio_view_app/_app/version.json +0 -1
- lightly_studio-0.3.2/src/lightly_studio/metrics/detection/__init__.py +0 -0
- lightly_studio-0.3.2/src/lightly_studio/metrics/detection/map.py +0 -268
- lightly_studio-0.3.2/src/lightly_studio/models/annotation/__init__.py +0 -0
- lightly_studio-0.3.2/src/lightly_studio/models/annotation_task.py +0 -28
- lightly_studio-0.3.2/src/lightly_studio/resolvers/annotation_resolver/create.py +0 -19
- lightly_studio-0.3.2/src/lightly_studio/resolvers/annotation_resolver/get_by_id.py +0 -18
- lightly_studio-0.3.2/src/lightly_studio/resolvers/annotation_task_resolver.py +0 -31
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/.gitignore +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/cache.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/features.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/annotation_label.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/classifier.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/dataset_tag.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/exceptions.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/features.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/metadata.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/sample.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/settings.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/status.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/text_embedding.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/api/validators.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/healthz.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/images.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/routes/webapp.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/api/server.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/dataset_query/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/dataset_query/boolean_expression.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/dataset_query/field.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/dataset_query/field_expression.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/dataset_query/match_expression.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/dataset_query/order_by.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/dataset_query/sample_field.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/dataset_query/tags_expression.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/sample.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/core/start_gui.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dataset/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dataset/edge_embedding_generator.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dataset/embedding_generator.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dataset/embedding_manager.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dataset/fsspec_lister.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/db_manager.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/env.js +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/LightlyLogo.BNjCIww-.png +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-Bold.DGvYQtcs.ttf +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-Italic-VariableFont_wdth_wght.B4AZ-wl6.ttf +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-Medium.DVUZMR_6.ttf +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-Regular.DxJTClRG.ttf +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-SemiBold.D3TTYgdB.ttf +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/OpenSans-VariableFont_wdth_wght.BZBpG5Iz.ttf +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/assets/useFeatureFlags.CV-KWLNP.css +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/69_IOA4Y.js +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/B90CZVMX.js +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CWj6FrbW.js +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/CYgJF_JY.js +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/DIeogL5L.js +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/chunks/H7C68rOM.js +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/_app/immutable/nodes/11.CWG1ehzT.js +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/apple-touch-icon-precomposed.png +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/apple-touch-icon.png +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/dist_lightly_studio_view_app/favicon.png +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/examples/example.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/examples/example_coco.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/examples/example_metadata.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/examples/example_selection.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/examples/example_split_work.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/examples/example_yolo.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/export_schema.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/few_shot_classifier/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/few_shot_classifier/classifier.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/few_shot_classifier/random_forest_classifier.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/metadata/complex_metadata.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/metadata/gps_coordinate.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/metadata/metadata_protocol.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/__init__.py +0 -0
- {lightly_studio-0.3.2/src/lightly_studio/metrics → lightly_studio-0.3.3/src/lightly_studio/models/annotation}/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/annotation/instance_segmentation.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/annotation/links.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/annotation/object_detection.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/annotation/semantic_segmentation.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/annotation_label.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/classifier.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/dataset.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/embedding_model.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/metadata.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/sample.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/sample_embedding.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/settings.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/models/tag.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/py.typed +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_label_resolver/create.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_label_resolver/delete.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_label_resolver/get_by_id.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_label_resolver/get_by_ids.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_label_resolver/get_by_label_name.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_label_resolver/names_by_ids.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_label_resolver/update.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_resolver/count_annotations_by_dataset.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_resolver/get_all.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotation_resolver/update_bounding_box.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/annotations/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/dataset_resolver.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/embedding_model_resolver.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/metadata_resolver/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/metadata_resolver/metadata_filter.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/metadata_resolver/sample/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/metadata_resolver/sample/bulk_set_metadata.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/metadata_resolver/sample/get_by_sample_id.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/metadata_resolver/sample/get_metadata_info.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/metadata_resolver/sample/get_value_for_sample.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/metadata_resolver/sample/set_value_for_sample.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/sample_embedding_resolver.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/sample_resolver.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/samples_filter.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/settings_resolver.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/resolvers/tag_resolver.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/selection/README.md +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/selection/select.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/selection/select_via_db.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/services/annotations_service/get_annotation_by_id.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/services/annotations_service/update_annotation.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/services/annotations_service/update_annotation_bounding_box.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/services/annotations_service/update_annotation_label.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/services/annotations_service/update_annotations.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/setup_logging.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/type_definitions.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/ACKNOWLEDGEMENTS +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/LICENSE +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/LICENSE_weights_data +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/README.md +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/clip.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/configs/mobileclip_b.json +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/configs/mobileclip_s0.json +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/configs/mobileclip_s1.json +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/configs/mobileclip_s2.json +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/image_encoder.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/logger.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/models/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/models/mci.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/models/vit.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/modules/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/modules/common/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/modules/common/mobileone.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/modules/common/transformer.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/modules/image/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/modules/image/image_projection.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/modules/image/replknet.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/modules/text/__init__.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/modules/text/repmixer.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/modules/text/tokenizer.py +0 -0
- {lightly_studio-0.3.2 → lightly_studio-0.3.3}/src/lightly_studio/vendor/mobileclip/text_encoder.py +0 -0
|
@@ -1,3 +1,44 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: lightly-studio
|
|
3
|
+
Version: 0.3.3
|
|
4
|
+
Summary: LightlyStudio is a lightweight, fast, and easy-to-use data exploration tool for data scientists and engineers.
|
|
5
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
6
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
7
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Requires-Python: >=3.8
|
|
14
|
+
Requires-Dist: annotated-types==0.7.0
|
|
15
|
+
Requires-Dist: duckdb-engine<0.17,>=0.15.0
|
|
16
|
+
Requires-Dist: duckdb<1.3,>=1.2.2
|
|
17
|
+
Requires-Dist: environs<12.0.0
|
|
18
|
+
Requires-Dist: eval-type-backport>=0.2.2
|
|
19
|
+
Requires-Dist: fastapi>=0.115.5
|
|
20
|
+
Requires-Dist: faster-coco-eval>=1.6.5
|
|
21
|
+
Requires-Dist: fsspec>=2023.1.0
|
|
22
|
+
Requires-Dist: labelformat>=0.1.7
|
|
23
|
+
Requires-Dist: lightly-mundig==0.1.4
|
|
24
|
+
Requires-Dist: open-clip-torch>=2.20.0
|
|
25
|
+
Requires-Dist: pyarrow>=17.0.0
|
|
26
|
+
Requires-Dist: python-multipart>=0.0.20
|
|
27
|
+
Requires-Dist: scikit-learn==1.3.2
|
|
28
|
+
Requires-Dist: sqlmodel>=0.0.22
|
|
29
|
+
Requires-Dist: tqdm>=4.65.0
|
|
30
|
+
Requires-Dist: typing-extensions>=4.12.2
|
|
31
|
+
Requires-Dist: uvicorn>=0.32.1
|
|
32
|
+
Requires-Dist: xxhash>=3.5.0
|
|
33
|
+
Provides-Extra: cloud-storage
|
|
34
|
+
Requires-Dist: adlfs>=2023.1.0; extra == 'cloud-storage'
|
|
35
|
+
Requires-Dist: gcsfs>=2023.1.0; extra == 'cloud-storage'
|
|
36
|
+
Requires-Dist: s3fs>=2023.1.0; extra == 'cloud-storage'
|
|
37
|
+
Provides-Extra: lightly-edge
|
|
38
|
+
Requires-Dist: lightly-edge-sdk>=1.0.1b2; extra == 'lightly-edge'
|
|
39
|
+
Requires-Dist: opencv-python; extra == 'lightly-edge'
|
|
40
|
+
Description-Content-Type: text/markdown
|
|
41
|
+
|
|
1
42
|
<div align="center">
|
|
2
43
|
<p align="center">
|
|
3
44
|
|
|
@@ -79,41 +120,46 @@ python -m venv venv
|
|
|
79
120
|
.\venv\Scripts\activate
|
|
80
121
|
|
|
81
122
|
# 2. Install LightlyStudio
|
|
82
|
-
pip install
|
|
123
|
+
pip install lightly-studio
|
|
83
124
|
```
|
|
84
125
|
|
|
85
126
|
## **Quickstart**
|
|
86
127
|
|
|
87
|
-
Download
|
|
88
|
-
|
|
89
|
-
### YOLO Object Detection
|
|
90
|
-
|
|
91
|
-
To run an example using a yolo dataset, clone the example repository and run the example script from below:
|
|
128
|
+
Download example datasets by cloning the example repository:
|
|
92
129
|
|
|
93
130
|
```shell
|
|
94
131
|
git clone https://github.com/lightly-ai/dataset_examples dataset_examples
|
|
95
132
|
```
|
|
96
133
|
|
|
97
|
-
|
|
134
|
+
### YOLO Object Detection
|
|
135
|
+
|
|
136
|
+
To run an example using a YOLO dataset, create a file named `example_yolo.py` with the
|
|
137
|
+
following contents in the same directory that contains the `dataset_examples/` folder:
|
|
98
138
|
|
|
99
139
|
```python
|
|
100
|
-
|
|
140
|
+
# example_yolo.py
|
|
101
141
|
|
|
142
|
+
from pathlib import Path
|
|
102
143
|
import lightly_studio as ls
|
|
103
144
|
|
|
104
|
-
data_yaml_path = Path(__file__).resolve().parent / "data.yaml"
|
|
105
|
-
|
|
106
145
|
# Create a dataset and add the samples from the yolo format
|
|
107
146
|
dataset = ls.Dataset.create()
|
|
108
147
|
dataset.add_samples_from_yolo(
|
|
109
|
-
data_yaml=
|
|
148
|
+
data_yaml="dataset_examples/road_signs_yolo/data.yaml",
|
|
110
149
|
input_split="test",
|
|
111
150
|
)
|
|
112
151
|
|
|
113
152
|
# Start the UI application on the port 8001.
|
|
114
153
|
ls.start_gui()
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Run the script:
|
|
115
157
|
|
|
116
158
|
```
|
|
159
|
+
python example_yolo.py
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
When you are done, stop the app by pressing Ctrl+C in the terminal.
|
|
117
163
|
|
|
118
164
|
<details>
|
|
119
165
|
<summary>The YOLO format details:</summary>
|
|
@@ -149,26 +195,21 @@ Where coordinates are normalized between 0 and 1.
|
|
|
149
195
|
|
|
150
196
|
### COCO Instance Segmentation
|
|
151
197
|
|
|
152
|
-
To run an instance segmentation example using a COCO dataset,
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
git clone https://github.com/lightly-ai/dataset_examples dataset_examples
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
**`example_coco.py` script to explore the dataset:**
|
|
198
|
+
To run an instance segmentation example using a COCO dataset, create a file named
|
|
199
|
+
`example_coco.py` with the following contents in the same directory that contains
|
|
200
|
+
the `dataset_examples/` folder:
|
|
159
201
|
|
|
160
202
|
```python
|
|
161
|
-
|
|
203
|
+
# example_coco.py
|
|
162
204
|
|
|
205
|
+
from pathlib import Path
|
|
163
206
|
import lightly_studio as ls
|
|
164
207
|
|
|
165
|
-
current_dir = Path(__file__).resolve().parent
|
|
166
|
-
|
|
167
208
|
# Create a dataset and add the samples from the coco format
|
|
168
209
|
dataset = ls.Dataset.create()
|
|
169
210
|
dataset.add_samples_from_coco(
|
|
170
|
-
annotations_json=
|
|
171
|
-
images_path=
|
|
211
|
+
annotations_json="dataset_examples/coco_subset_128_images/instances_train2017.json",
|
|
212
|
+
images_path="dataset_examples/coco_subset_128_images/images",
|
|
172
213
|
annotation_type=ls.AnnotationType.INSTANCE_SEGMENTATION,
|
|
173
214
|
)
|
|
174
215
|
|
|
@@ -176,6 +217,14 @@ dataset.add_samples_from_coco(
|
|
|
176
217
|
ls.start_gui()
|
|
177
218
|
```
|
|
178
219
|
|
|
220
|
+
Run the script:
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
python example_coco.py
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
When you are done, stop the app by pressing Ctrl+C in the terminal.
|
|
227
|
+
|
|
179
228
|
<details>
|
|
180
229
|
<summary>The COCO format details:</summary>
|
|
181
230
|
|
|
@@ -219,6 +268,53 @@ dataset.add_samples_from_path(path="/path/to/image_dataset")
|
|
|
219
268
|
ls.start_gui()
|
|
220
269
|
```
|
|
221
270
|
|
|
271
|
+
#### ☁️ Cloud Storage Support
|
|
272
|
+
|
|
273
|
+
#### Installation with Cloud Storage Support
|
|
274
|
+
|
|
275
|
+
```shell
|
|
276
|
+
pip install lightly-studio[cloud-storage]
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
#### Example: Loading Dataset from Cloud Storage
|
|
280
|
+
|
|
281
|
+
```python
|
|
282
|
+
import lightly_studio as ls
|
|
283
|
+
|
|
284
|
+
dataset = ls.Dataset.create()
|
|
285
|
+
|
|
286
|
+
# Load dataset from S3
|
|
287
|
+
dataset.add_samples_from_path(path="s3://my-bucket/path/to/images/")
|
|
288
|
+
|
|
289
|
+
# You can use glob pattern in the file path
|
|
290
|
+
dataset.add_samples_from_path(path="s3://my-bucket/path/to/images/**/*.jpg") # matches all .jpg files recursively
|
|
291
|
+
|
|
292
|
+
# Load dataset from gcs
|
|
293
|
+
dataset.add_samples_from_path(path="gs://path/to/images/")
|
|
294
|
+
|
|
295
|
+
ls.start_gui()
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
**Note**: Currently, cloud storage support is limited to loading images only. Annotation files (YOLO labels, COCO JSON files, etc.) cannot be loaded directly from cloud storage paths.
|
|
299
|
+
|
|
300
|
+
#### Authentication
|
|
301
|
+
|
|
302
|
+
**Important**: Cloud storage authentication must be configured before running LightlyStudio. The application relies on your existing cloud storage credentials and will not prompt for authentication.
|
|
303
|
+
|
|
304
|
+
#### AWS S3
|
|
305
|
+
|
|
306
|
+
You can use either of the following two options:
|
|
307
|
+
|
|
308
|
+
- **Set environment variables manually**: Set `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` (LightlyStudio uses `s3fs` under the hood to connect to S3)
|
|
309
|
+
- **Authenticate using AWS CLI**: Run `aws configure` (this will automatically set the environment variables that LightlyStudio can access)
|
|
310
|
+
|
|
311
|
+
#### Google Cloud Storage
|
|
312
|
+
|
|
313
|
+
You can use either of the following two options:
|
|
314
|
+
|
|
315
|
+
- **Set environment variable manually**: Set `GOOGLE_APPLICATION_CREDENTIALS` pointing to your service account key file (LightlyStudio uses `gcsfs` under the hood to connect to GCS)
|
|
316
|
+
- **Authenticate using gcloud CLI**: Run `gcloud auth application-default login` (this will automatically set the environment variables that LightlyStudio can access)
|
|
317
|
+
|
|
222
318
|
#### Load Images With Annotations
|
|
223
319
|
|
|
224
320
|
The `Dataset` currently supports:
|
|
@@ -530,6 +626,16 @@ In some use cases, one might want to assign a tag to the samples that are the re
|
|
|
530
626
|
query.add_tag("tag_name")
|
|
531
627
|
```
|
|
532
628
|
|
|
629
|
+
#### Export Samples
|
|
630
|
+
|
|
631
|
+
Currently, exporting to the COCO object detection format is supported. The following example shows how to export the samples in the query to a COCO JSON file:
|
|
632
|
+
|
|
633
|
+
```py
|
|
634
|
+
from pathlib import Path
|
|
635
|
+
|
|
636
|
+
query.export().to_coco_object_detections(Path("coco_export.json"))
|
|
637
|
+
```
|
|
638
|
+
|
|
533
639
|
### Examples
|
|
534
640
|
|
|
535
641
|
#### Add Custom Metadata
|
|
@@ -601,7 +707,9 @@ import os
|
|
|
601
707
|
os.environ["LIGHTLY_STUDIO_LICENSE_KEY"] = "license_key_here"
|
|
602
708
|
```
|
|
603
709
|
|
|
604
|
-
|
|
710
|
+
#### Diversity Selection
|
|
711
|
+
|
|
712
|
+
Diversity selection can be configured directly from a `DatasetQuery`. The example below showcases a simple case of selecting diverse samples.
|
|
605
713
|
|
|
606
714
|
```py
|
|
607
715
|
import lightly_studio as ls
|
|
@@ -619,6 +727,57 @@ dataset.query().selection().diverse(
|
|
|
619
727
|
ls.start_gui()
|
|
620
728
|
```
|
|
621
729
|
|
|
730
|
+
#### Metadata Weighting Selection
|
|
731
|
+
|
|
732
|
+
You can select samples based on the values of a metadata field. The example below showcases a simple case of selecting samples with the highest metadata value.
|
|
733
|
+
|
|
734
|
+
```py
|
|
735
|
+
import lightly_studio as ls
|
|
736
|
+
|
|
737
|
+
# Load your dataset
|
|
738
|
+
dataset = ls.Dataset.load_or_create()
|
|
739
|
+
dataset.add_samples_from_path(path="/path/to/image_dataset")
|
|
740
|
+
# Compute and store 'typicality' metadata.
|
|
741
|
+
dataset.compute_typicality_metadata(metadata_name="typicality")
|
|
742
|
+
|
|
743
|
+
# Select the 5 samples with the highest 'typicality' scores.
|
|
744
|
+
dataset.query().selection().metadata_weighting(
|
|
745
|
+
n_samples_to_select=5,
|
|
746
|
+
selection_result_tag_name="metadata_weighting_selection",
|
|
747
|
+
metadata_key="typicality",
|
|
748
|
+
)
|
|
749
|
+
```
|
|
750
|
+
|
|
751
|
+
#### Selection Based on Multiple Strategies
|
|
752
|
+
|
|
753
|
+
You can configure multiple strategies, the selection takes into account all of them at the same time, weighted by the `strength` parameter.
|
|
754
|
+
|
|
755
|
+
```py
|
|
756
|
+
import lightly_studio as ls
|
|
757
|
+
from lightly_studio.selection.selection_config import (
|
|
758
|
+
MetadataWeightingStrategy,
|
|
759
|
+
EmbeddingDiversityStrategy,
|
|
760
|
+
)
|
|
761
|
+
|
|
762
|
+
# Load your dataset
|
|
763
|
+
dataset = ls.Dataset.load_or_create()
|
|
764
|
+
dataset.add_samples_from_path(path="/path/to/image_dataset")
|
|
765
|
+
# Compute typicality and store it as `typicality` metadata
|
|
766
|
+
dataset.compute_typicality_metadata(metadata_name="typicality")
|
|
767
|
+
|
|
768
|
+
# Select 10 samples by combining typicality and diversity, diversity having double the strength.
|
|
769
|
+
dataset.query().selection().multi_strategies(
|
|
770
|
+
n_samples_to_select=10,
|
|
771
|
+
selection_result_tag_name="multi_strategy_selection",
|
|
772
|
+
selection_strategies=[
|
|
773
|
+
MetadataWeightingStrategy(metadata_key="typicality", strength=1.0),
|
|
774
|
+
EmbeddingDiversityStrategy(embedding_model_name="my_model_name", strength=2.0),
|
|
775
|
+
],
|
|
776
|
+
)
|
|
777
|
+
```
|
|
778
|
+
|
|
779
|
+
#### Exporting Selected Samples
|
|
780
|
+
|
|
622
781
|
The selected sample paths can be exported via the GUI, or by a script:
|
|
623
782
|
|
|
624
783
|
```py
|
|
@@ -1,37 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: lightly-studio
|
|
3
|
-
Version: 0.3.2
|
|
4
|
-
Summary: LightlyStudio is a lightweight, fast, and easy-to-use data exploration tool for data scientists and engineers.
|
|
5
|
-
Classifier: Operating System :: MacOS :: MacOS X
|
|
6
|
-
Classifier: Operating System :: Microsoft :: Windows
|
|
7
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
10
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
-
Requires-Python: >=3.8
|
|
14
|
-
Requires-Dist: annotated-types==0.7.0
|
|
15
|
-
Requires-Dist: duckdb-engine<0.17,>=0.15.0
|
|
16
|
-
Requires-Dist: duckdb<1.3,>=1.2.2
|
|
17
|
-
Requires-Dist: environs<12.0.0
|
|
18
|
-
Requires-Dist: eval-type-backport>=0.2.2
|
|
19
|
-
Requires-Dist: fastapi>=0.115.5
|
|
20
|
-
Requires-Dist: faster-coco-eval>=1.6.5
|
|
21
|
-
Requires-Dist: fsspec>=2023.1.0
|
|
22
|
-
Requires-Dist: labelformat>=0.1.7
|
|
23
|
-
Requires-Dist: lightly-mundig==0.1.3
|
|
24
|
-
Requires-Dist: open-clip-torch>=2.20.0
|
|
25
|
-
Requires-Dist: python-multipart>=0.0.20
|
|
26
|
-
Requires-Dist: scikit-learn==1.3.2
|
|
27
|
-
Requires-Dist: sqlmodel>=0.0.22
|
|
28
|
-
Requires-Dist: torchmetrics>=1.5.2
|
|
29
|
-
Requires-Dist: tqdm>=4.65.0
|
|
30
|
-
Requires-Dist: typing-extensions>=4.12.2
|
|
31
|
-
Requires-Dist: uvicorn>=0.32.1
|
|
32
|
-
Requires-Dist: xxhash>=3.5.0
|
|
33
|
-
Description-Content-Type: text/markdown
|
|
34
|
-
|
|
35
1
|
<div align="center">
|
|
36
2
|
<p align="center">
|
|
37
3
|
|
|
@@ -113,41 +79,46 @@ python -m venv venv
|
|
|
113
79
|
.\venv\Scripts\activate
|
|
114
80
|
|
|
115
81
|
# 2. Install LightlyStudio
|
|
116
|
-
pip install
|
|
82
|
+
pip install lightly-studio
|
|
117
83
|
```
|
|
118
84
|
|
|
119
85
|
## **Quickstart**
|
|
120
86
|
|
|
121
|
-
Download
|
|
122
|
-
|
|
123
|
-
### YOLO Object Detection
|
|
124
|
-
|
|
125
|
-
To run an example using a yolo dataset, clone the example repository and run the example script from below:
|
|
87
|
+
Download example datasets by cloning the example repository:
|
|
126
88
|
|
|
127
89
|
```shell
|
|
128
90
|
git clone https://github.com/lightly-ai/dataset_examples dataset_examples
|
|
129
91
|
```
|
|
130
92
|
|
|
131
|
-
|
|
93
|
+
### YOLO Object Detection
|
|
94
|
+
|
|
95
|
+
To run an example using a YOLO dataset, create a file named `example_yolo.py` with the
|
|
96
|
+
following contents in the same directory that contains the `dataset_examples/` folder:
|
|
132
97
|
|
|
133
98
|
```python
|
|
134
|
-
|
|
99
|
+
# example_yolo.py
|
|
135
100
|
|
|
101
|
+
from pathlib import Path
|
|
136
102
|
import lightly_studio as ls
|
|
137
103
|
|
|
138
|
-
data_yaml_path = Path(__file__).resolve().parent / "data.yaml"
|
|
139
|
-
|
|
140
104
|
# Create a dataset and add the samples from the yolo format
|
|
141
105
|
dataset = ls.Dataset.create()
|
|
142
106
|
dataset.add_samples_from_yolo(
|
|
143
|
-
data_yaml=
|
|
107
|
+
data_yaml="dataset_examples/road_signs_yolo/data.yaml",
|
|
144
108
|
input_split="test",
|
|
145
109
|
)
|
|
146
110
|
|
|
147
111
|
# Start the UI application on the port 8001.
|
|
148
112
|
ls.start_gui()
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Run the script:
|
|
149
116
|
|
|
150
117
|
```
|
|
118
|
+
python example_yolo.py
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
When you are done, stop the app by pressing Ctrl+C in the terminal.
|
|
151
122
|
|
|
152
123
|
<details>
|
|
153
124
|
<summary>The YOLO format details:</summary>
|
|
@@ -183,26 +154,21 @@ Where coordinates are normalized between 0 and 1.
|
|
|
183
154
|
|
|
184
155
|
### COCO Instance Segmentation
|
|
185
156
|
|
|
186
|
-
To run an instance segmentation example using a COCO dataset,
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
git clone https://github.com/lightly-ai/dataset_examples dataset_examples
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
**`example_coco.py` script to explore the dataset:**
|
|
157
|
+
To run an instance segmentation example using a COCO dataset, create a file named
|
|
158
|
+
`example_coco.py` with the following contents in the same directory that contains
|
|
159
|
+
the `dataset_examples/` folder:
|
|
193
160
|
|
|
194
161
|
```python
|
|
195
|
-
|
|
162
|
+
# example_coco.py
|
|
196
163
|
|
|
164
|
+
from pathlib import Path
|
|
197
165
|
import lightly_studio as ls
|
|
198
166
|
|
|
199
|
-
current_dir = Path(__file__).resolve().parent
|
|
200
|
-
|
|
201
167
|
# Create a dataset and add the samples from the coco format
|
|
202
168
|
dataset = ls.Dataset.create()
|
|
203
169
|
dataset.add_samples_from_coco(
|
|
204
|
-
annotations_json=
|
|
205
|
-
images_path=
|
|
170
|
+
annotations_json="dataset_examples/coco_subset_128_images/instances_train2017.json",
|
|
171
|
+
images_path="dataset_examples/coco_subset_128_images/images",
|
|
206
172
|
annotation_type=ls.AnnotationType.INSTANCE_SEGMENTATION,
|
|
207
173
|
)
|
|
208
174
|
|
|
@@ -210,6 +176,14 @@ dataset.add_samples_from_coco(
|
|
|
210
176
|
ls.start_gui()
|
|
211
177
|
```
|
|
212
178
|
|
|
179
|
+
Run the script:
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
python example_coco.py
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
When you are done, stop the app by pressing Ctrl+C in the terminal.
|
|
186
|
+
|
|
213
187
|
<details>
|
|
214
188
|
<summary>The COCO format details:</summary>
|
|
215
189
|
|
|
@@ -253,6 +227,53 @@ dataset.add_samples_from_path(path="/path/to/image_dataset")
|
|
|
253
227
|
ls.start_gui()
|
|
254
228
|
```
|
|
255
229
|
|
|
230
|
+
#### ☁️ Cloud Storage Support
|
|
231
|
+
|
|
232
|
+
#### Installation with Cloud Storage Support
|
|
233
|
+
|
|
234
|
+
```shell
|
|
235
|
+
pip install lightly-studio[cloud-storage]
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
#### Example: Loading Dataset from Cloud Storage
|
|
239
|
+
|
|
240
|
+
```python
|
|
241
|
+
import lightly_studio as ls
|
|
242
|
+
|
|
243
|
+
dataset = ls.Dataset.create()
|
|
244
|
+
|
|
245
|
+
# Load dataset from S3
|
|
246
|
+
dataset.add_samples_from_path(path="s3://my-bucket/path/to/images/")
|
|
247
|
+
|
|
248
|
+
# You can use glob pattern in the file path
|
|
249
|
+
dataset.add_samples_from_path(path="s3://my-bucket/path/to/images/**/*.jpg") # matches all .jpg files recursively
|
|
250
|
+
|
|
251
|
+
# Load dataset from gcs
|
|
252
|
+
dataset.add_samples_from_path(path="gs://path/to/images/")
|
|
253
|
+
|
|
254
|
+
ls.start_gui()
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
**Note**: Currently, cloud storage support is limited to loading images only. Annotation files (YOLO labels, COCO JSON files, etc.) cannot be loaded directly from cloud storage paths.
|
|
258
|
+
|
|
259
|
+
#### Authentication
|
|
260
|
+
|
|
261
|
+
**Important**: Cloud storage authentication must be configured before running LightlyStudio. The application relies on your existing cloud storage credentials and will not prompt for authentication.
|
|
262
|
+
|
|
263
|
+
#### AWS S3
|
|
264
|
+
|
|
265
|
+
You can use either of the following two options:
|
|
266
|
+
|
|
267
|
+
- **Set environment variables manually**: Set `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` (LightlyStudio uses `s3fs` under the hood to connect to S3)
|
|
268
|
+
- **Authenticate using AWS CLI**: Run `aws configure` (this will automatically set the environment variables that LightlyStudio can access)
|
|
269
|
+
|
|
270
|
+
#### Google Cloud Storage
|
|
271
|
+
|
|
272
|
+
You can use either of the following two options:
|
|
273
|
+
|
|
274
|
+
- **Set environment variable manually**: Set `GOOGLE_APPLICATION_CREDENTIALS` pointing to your service account key file (LightlyStudio uses `gcsfs` under the hood to connect to GCS)
|
|
275
|
+
- **Authenticate using gcloud CLI**: Run `gcloud auth application-default login` (this will automatically set the environment variables that LightlyStudio can access)
|
|
276
|
+
|
|
256
277
|
#### Load Images With Annotations
|
|
257
278
|
|
|
258
279
|
The `Dataset` currently supports:
|
|
@@ -564,6 +585,16 @@ In some use cases, one might want to assign a tag to the samples that are the re
|
|
|
564
585
|
query.add_tag("tag_name")
|
|
565
586
|
```
|
|
566
587
|
|
|
588
|
+
#### Export Samples
|
|
589
|
+
|
|
590
|
+
Currently, exporting to the COCO object detection format is supported. The following example shows how to export the samples in the query to a COCO JSON file:
|
|
591
|
+
|
|
592
|
+
```py
|
|
593
|
+
from pathlib import Path
|
|
594
|
+
|
|
595
|
+
query.export().to_coco_object_detections(Path("coco_export.json"))
|
|
596
|
+
```
|
|
597
|
+
|
|
567
598
|
### Examples
|
|
568
599
|
|
|
569
600
|
#### Add Custom Metadata
|
|
@@ -635,7 +666,9 @@ import os
|
|
|
635
666
|
os.environ["LIGHTLY_STUDIO_LICENSE_KEY"] = "license_key_here"
|
|
636
667
|
```
|
|
637
668
|
|
|
638
|
-
|
|
669
|
+
#### Diversity Selection
|
|
670
|
+
|
|
671
|
+
Diversity selection can be configured directly from a `DatasetQuery`. The example below showcases a simple case of selecting diverse samples.
|
|
639
672
|
|
|
640
673
|
```py
|
|
641
674
|
import lightly_studio as ls
|
|
@@ -653,6 +686,57 @@ dataset.query().selection().diverse(
|
|
|
653
686
|
ls.start_gui()
|
|
654
687
|
```
|
|
655
688
|
|
|
689
|
+
#### Metadata Weighting Selection
|
|
690
|
+
|
|
691
|
+
You can select samples based on the values of a metadata field. The example below showcases a simple case of selecting samples with the highest metadata value.
|
|
692
|
+
|
|
693
|
+
```py
|
|
694
|
+
import lightly_studio as ls
|
|
695
|
+
|
|
696
|
+
# Load your dataset
|
|
697
|
+
dataset = ls.Dataset.load_or_create()
|
|
698
|
+
dataset.add_samples_from_path(path="/path/to/image_dataset")
|
|
699
|
+
# Compute and store 'typicality' metadata.
|
|
700
|
+
dataset.compute_typicality_metadata(metadata_name="typicality")
|
|
701
|
+
|
|
702
|
+
# Select the 5 samples with the highest 'typicality' scores.
|
|
703
|
+
dataset.query().selection().metadata_weighting(
|
|
704
|
+
n_samples_to_select=5,
|
|
705
|
+
selection_result_tag_name="metadata_weighting_selection",
|
|
706
|
+
metadata_key="typicality",
|
|
707
|
+
)
|
|
708
|
+
```
|
|
709
|
+
|
|
710
|
+
#### Selection Based on Multiple Strategies
|
|
711
|
+
|
|
712
|
+
You can configure multiple strategies, the selection takes into account all of them at the same time, weighted by the `strength` parameter.
|
|
713
|
+
|
|
714
|
+
```py
|
|
715
|
+
import lightly_studio as ls
|
|
716
|
+
from lightly_studio.selection.selection_config import (
|
|
717
|
+
MetadataWeightingStrategy,
|
|
718
|
+
EmbeddingDiversityStrategy,
|
|
719
|
+
)
|
|
720
|
+
|
|
721
|
+
# Load your dataset
|
|
722
|
+
dataset = ls.Dataset.load_or_create()
|
|
723
|
+
dataset.add_samples_from_path(path="/path/to/image_dataset")
|
|
724
|
+
# Compute typicality and store it as `typicality` metadata
|
|
725
|
+
dataset.compute_typicality_metadata(metadata_name="typicality")
|
|
726
|
+
|
|
727
|
+
# Select 10 samples by combining typicality and diversity, diversity having double the strength.
|
|
728
|
+
dataset.query().selection().multi_strategies(
|
|
729
|
+
n_samples_to_select=10,
|
|
730
|
+
selection_result_tag_name="multi_strategy_selection",
|
|
731
|
+
selection_strategies=[
|
|
732
|
+
MetadataWeightingStrategy(metadata_key="typicality", strength=1.0),
|
|
733
|
+
EmbeddingDiversityStrategy(embedding_model_name="my_model_name", strength=2.0),
|
|
734
|
+
],
|
|
735
|
+
)
|
|
736
|
+
```
|
|
737
|
+
|
|
738
|
+
#### Exporting Selected Samples
|
|
739
|
+
|
|
656
740
|
The selected sample paths can be exported via the GUI, or by a script:
|
|
657
741
|
|
|
658
742
|
```py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "lightly-studio"
|
|
3
|
-
version = "0.3.
|
|
3
|
+
version = "0.3.3"
|
|
4
4
|
description = "LightlyStudio is a lightweight, fast, and easy-to-use data exploration tool for data scientists and engineers."
|
|
5
5
|
readme = "USAGE.md"
|
|
6
6
|
requires-python = ">=3.8"
|
|
@@ -29,7 +29,6 @@ dependencies = [
|
|
|
29
29
|
"eval-type-backport>=0.2.2",
|
|
30
30
|
"xxhash>=3.5.0",
|
|
31
31
|
"scikit-learn==1.3.2",
|
|
32
|
-
"torchmetrics>=1.5.2",
|
|
33
32
|
"faster-coco-eval>=1.6.5",
|
|
34
33
|
"python-multipart>=0.0.20",
|
|
35
34
|
"environs<12.0.0",
|
|
@@ -37,7 +36,26 @@ dependencies = [
|
|
|
37
36
|
# Public Mundig versions are found at https://pypi.org/project/lightly-mundig/
|
|
38
37
|
# Internal Mundig versions are found at
|
|
39
38
|
# https://console.cloud.google.com/artifacts/python/boris-250909/europe-west3/lightly-pypi/lightly-mundig
|
|
40
|
-
|
|
39
|
+
#
|
|
40
|
+
# To update to an internal version, first install the new version
|
|
41
|
+
# uv pip install --upgrade --keyring-provider subprocess --extra-index-url \
|
|
42
|
+
# https://oauth2accesstoken@europe-west3-python.pkg.dev/boris-250909/lightly-pypi/simple/ \
|
|
43
|
+
# lightly-mundig==$version
|
|
44
|
+
# Then lock the version. The uv.lock file is updated accordingly.
|
|
45
|
+
# uv lock --upgrade-package lightly-mundig==$version
|
|
46
|
+
"lightly-mundig==0.1.4",
|
|
47
|
+
"pyarrow>=17.0.0",
|
|
48
|
+
]
|
|
49
|
+
|
|
50
|
+
[project.optional-dependencies]
|
|
51
|
+
lightly-edge = [
|
|
52
|
+
"lightly-edge-sdk>=1.0.1b2",
|
|
53
|
+
"opencv-python",
|
|
54
|
+
]
|
|
55
|
+
cloud-storage = [
|
|
56
|
+
"s3fs>=2023.1.0",
|
|
57
|
+
"gcsfs>=2023.1.0",
|
|
58
|
+
"adlfs>=2023.1.0",
|
|
41
59
|
]
|
|
42
60
|
|
|
43
61
|
[dependency-groups]
|
|
@@ -55,14 +73,7 @@ dev = [
|
|
|
55
73
|
"types-PyYAML>=6.0.0",
|
|
56
74
|
"pytest-xdist>=3.6.1",
|
|
57
75
|
]
|
|
58
|
-
|
|
59
|
-
"lightly-edge-sdk>=1.0.1b2",
|
|
60
|
-
"opencv-python",
|
|
61
|
-
]
|
|
62
|
-
cloud-storage = [
|
|
63
|
-
"s3fs>=2023.1.0",
|
|
64
|
-
"gcsfs>=2023.1.0",
|
|
65
|
-
]
|
|
76
|
+
|
|
66
77
|
|
|
67
78
|
[tool.mypy]
|
|
68
79
|
strict = true
|
|
@@ -77,6 +88,14 @@ exclude = [
|
|
|
77
88
|
module = "fsspec.*"
|
|
78
89
|
ignore_missing_imports = true
|
|
79
90
|
|
|
91
|
+
[[tool.mypy.overrides]]
|
|
92
|
+
module = "pyarrow.*"
|
|
93
|
+
ignore_missing_imports = true
|
|
94
|
+
|
|
95
|
+
[[tool.mypy.overrides]]
|
|
96
|
+
module = "sklearn.manifold.*"
|
|
97
|
+
ignore_missing_imports = true
|
|
98
|
+
|
|
80
99
|
|
|
81
100
|
[tool.pytest.ini_options]
|
|
82
101
|
# Make pytest discover all files in the tests directory. This is useful for showing
|
|
@@ -6,6 +6,6 @@ from lightly_studio.core.start_gui import start_gui
|
|
|
6
6
|
|
|
7
7
|
# TODO (Jonas 08/25): This will be removed as soon as the new interface is used in the examples
|
|
8
8
|
from lightly_studio.dataset.loader import DatasetLoader
|
|
9
|
-
from lightly_studio.models.
|
|
9
|
+
from lightly_studio.models.annotation.annotation_base import AnnotationType
|
|
10
10
|
|
|
11
11
|
__all__ = ["AnnotationType", "Dataset", "DatasetLoader", "start_gui"]
|
|
@@ -16,14 +16,15 @@ from lightly_studio.api.routes import healthz, images, webapp
|
|
|
16
16
|
from lightly_studio.api.routes.api import (
|
|
17
17
|
annotation,
|
|
18
18
|
annotation_label,
|
|
19
|
-
annotation_task,
|
|
20
19
|
classifier,
|
|
21
20
|
dataset,
|
|
22
21
|
dataset_tag,
|
|
22
|
+
embeddings2d,
|
|
23
|
+
export,
|
|
23
24
|
features,
|
|
24
25
|
metadata,
|
|
25
|
-
metrics,
|
|
26
26
|
sample,
|
|
27
|
+
selection,
|
|
27
28
|
settings,
|
|
28
29
|
text_embedding,
|
|
29
30
|
)
|
|
@@ -84,16 +85,17 @@ api_router = APIRouter(prefix="/api", tags=["api"])
|
|
|
84
85
|
|
|
85
86
|
api_router.include_router(dataset.dataset_router)
|
|
86
87
|
api_router.include_router(dataset_tag.tag_router)
|
|
88
|
+
api_router.include_router(export.export_router)
|
|
87
89
|
api_router.include_router(sample.samples_router)
|
|
88
90
|
api_router.include_router(annotation_label.annotations_label_router)
|
|
89
91
|
api_router.include_router(annotation.annotations_router)
|
|
90
92
|
api_router.include_router(text_embedding.text_embedding_router)
|
|
91
|
-
api_router.include_router(annotation_task.router)
|
|
92
93
|
api_router.include_router(settings.settings_router)
|
|
93
94
|
api_router.include_router(classifier.classifier_router)
|
|
95
|
+
api_router.include_router(embeddings2d.embeddings2d_router)
|
|
94
96
|
api_router.include_router(features.features_router)
|
|
95
97
|
api_router.include_router(metadata.metadata_router)
|
|
96
|
-
api_router.include_router(
|
|
98
|
+
api_router.include_router(selection.selection_router)
|
|
97
99
|
|
|
98
100
|
|
|
99
101
|
app.include_router(api_router)
|