Skip to content

Commit 312067b

Browse files
committed
Merge branch 'develop' into 'fb-leap-1737/playpause-audio-hotkey'
Workflow run: https://github.com/HumanSignal/label-studio/actions/runs/12759688319
2 parents ae1c0dd + 3be1a99 commit 312067b

File tree

96 files changed

+648
-933
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+648
-933
lines changed

.github/workflows/docker-build-ontop.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ jobs:
110110
${{ steps.calculate-docker-tags.outputs.docker-tags }}
111111
112112
- name: Push Docker image
113-
uses: docker/build-push-action@v6.10.0
113+
uses: docker/build-push-action@v6.11.0
114114
id: docker_build_and_push
115115
with:
116116
context: .

.github/workflows/docker-build.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ jobs:
129129
type=raw,value=${{ steps.version.outputs.build_version }}
130130
131131
- name: Push Docker image
132-
uses: docker/build-push-action@v6.10.0
132+
uses: docker/build-push-action@v6.11.0
133133
id: docker_build_and_push
134134
with:
135135
context: .

.github/workflows/docker-release-promote.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ jobs:
195195
${{ steps.generate-tags.outputs.ubuntu-tags }}
196196
197197
- name: Build and Push Release Ubuntu Docker image
198-
uses: docker/build-push-action@v6.10.0
198+
uses: docker/build-push-action@v6.11.0
199199
id: docker_build
200200
with:
201201
context: ${{ steps.release_dockerfile.outputs.release_dir }}

.github/workflows/tests.yml

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ jobs:
1919
fail-fast: false
2020
matrix:
2121
python-version:
22-
- '3.9'
2322
- '3.10'
2423
- '3.11'
2524
- '3.12'

Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ docker-dev-override:
2828
docker-dev-setup: env-dev-setup docker-dev-override
2929

3030
docker-run-dev:
31-
docker-compose up --build
31+
docker compose up --build
3232

3333
docker-migrate-dev:
34-
docker-compose run app python3 /label-studio/label_studio/manage.py migrate
34+
docker compose run app python3 /label-studio/label_studio/manage.py migrate
3535

3636
# Install modules
3737
frontend-install:

docker-compose.yml

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
version: "3.9"
21
services:
32
nginx:
43
build: .

docs/source/tags/taxonomy.md

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ Use with the following data types: audio, image, HTML, paragraphs, text, time se
3030
| [placeholder=] | <code>string</code> | | What to display as prompt on the input |
3131
| [perRegion] | <code>boolean</code> | | Use this tag to classify specific regions instead of the whole object |
3232
| [perItem] | <code>boolean</code> | | Use this tag to classify specific items inside the object instead of the whole object |
33+
| [labeling] | <code>boolean</code> | | Use taxonomy to label regions in text. Only supported with <Text> and <HyperText> object tags. |
3334
| [legacy] | <code>boolean</code> | | Use this tag to enable the legacy version of the Taxonomy tag. The legacy version supports the ability for annotators to add labels as needed. However, when true, the `apiUrl` parameter is not usable. |
3435

3536
### Example

docs/source/templates/taxonomy.md

+11
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,17 @@ In both options, the following tags are required:
3232
<Taxonomy name="taxonomy" toName="text">
3333
```
3434

35+
## Taxonomy as a labeling tool
36+
37+
Typically, the `<Taxonomy>` tag is used to perform classification tasks. However, if you set `labeling="true"`, you can apply your taxonomy choices to regions within text. This can be especially useful for NER projects.
38+
39+
Note that the `labeling` parameter is only supported when using `<Text> `or `<HyperText>` object tags.
40+
41+
![Screenshot of taxonomy as NER](/images/templates-misc/taxonomy_ner.png)
42+
43+
!!! info Tip
44+
You can use the `color` parameter on your taxonomy [`<Choice>`](/tags/choice) to color-code selected regions within the text.
45+
3546
## Taxonomies defined using nested `Choice` tags
3647

3748
Use the [`Choice`](/tags/choice.html) tag to specify the taxonomy. Nest choices under [`Choice`](/tags/choice.html) tags to create layers in the taxonomy.
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
title: Video Frame Classification
2+
type: community
3+
group: Videos
4+
image: /static/templates/video-frame-classification.png
5+
details: <h1>Classify frames within a video</h1>
6+
config: |
7+
<View>
8+
<TimelineLabels name="videoLabels" toName="video">
9+
<Label value="Movement" background="#c813ec"/>
10+
<Label value="Still" background="#1d81cd"/>
11+
<Label value="Slow Motion" background="#54d651"/>
12+
</TimelineLabels>
13+
<Video name="video" value="$video" timelineHeight="120" />
14+
</View>
15+
16+
<!--{
17+
"video": "/static/samples/opossum_snow.mp4"
18+
}-->

label_studio/core/all_urls.json

+6
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,12 @@
527527
"name": "current-user-whoami",
528528
"decorators": ""
529529
},
530+
{
531+
"url": "/api/current-user/product-tour",
532+
"module": "users.product_tours.api.ProductTourAPI",
533+
"name": "product-tour",
534+
"decorators": ""
535+
},
530536
{
531537
"url": "/data/avatars/<path>",
532538
"module": "django.views.static.serve",

label_studio/core/feature_flags/stale_feature_flags.py

-19
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,26 @@
11
STALE_FEATURE_FLAGS = {
2-
'fflag_fix_front_leap_149_taxonomy_selected_true_short': True,
32
'fflag_feat_all_dia_13_structured_data_support_short': False,
43
'fflag_feat_front_optic_66_lazy_chart_evaluation_19092023_short': False,
5-
'fflag_feat_front_leap_187_video_seek_on_select_short': True,
64
'fflag_fix_back_leap_24_tasks_api_optimization_05092023_short': False,
75
'fflag_feat_optic_2_ensure_draft_saved_short': True,
8-
'fflag_fix_front_lsdv_5248_double_click_delay_280823_short': True,
96
'fflag_perf_back_lsdv_4695_update_prediction_query_to_use_direct_project_relation': True,
107
'fflag_feat_front_lsdv_4620_outliner_optimization_310723_short': True,
118
'fflag_fix_front_lsdv_4600_lead_time_27072023_short': False,
129
'fflag_feat_front_lops_e_10_updated_ux_short': False,
1310
'fflag_fix_front_lsdv_4988_dynamic_no_label_120523_short': True,
1411
'fflag_fix_back_lsdv_4648_annotator_filter_29052023_short': True,
1512
'fflag_feat_back_lsdv_5035_use_created_at_from_draft_for_annotation_256052023_short': True,
16-
'fflag_feat_front_lsdv_3025_outliner_filter_short': False,
1713
'fflag_fix_front_lsdv_4992_hide_all_regions_04052023_short': True,
1814
'ff_back_dev_4664_remove_storage_file_on_export_delete_29032023_short': False,
1915
'fflag_feat_front_lops_86_datasets_storage_edit_short': False,
20-
'fflag_fix_front_lsdv_4881_timeseries_points_missing_140423_short': True,
21-
'fflag_feat_front_lsdv_4712_skipduplicates_editing_110423_short': True,
2216
'fflag_fix_back_lsdv_4929_limit_exports_10042023_short': True,
2317
'fflag_feat_front_lsdv_4620_richtext_opimization_060423_short': True,
24-
'fflag_feat_front_lsdv_4661_full_uri_resolve_15032023_short': True,
25-
'fflag_feat_front_lsdv_4659_skipduplicates_060323_short': True,
26-
'fflag_fix_font_lsdv_1148_hotkeys_namespaces_01022023_short': True,
27-
'fflag_fix_back_lsdv_1044_check_annotations_24012023_short': False,
28-
'fflag_fix_front_dev_4075_taxonomy_overlap_281222_short': True,
29-
'fflag_fix_front_dev_3730_shortcuts_initial_input_22122022_short': True,
3018
'ff_back_dev_3865_filters_anno_171222_short': True,
3119
'fflag_feat_front_dev_3873_labeling_ui_improvements_short': True,
3220
'fflag_feat_back_dev_3756_queue_enrollment_min_short': False,
3321
'fflag_fix_front_dev_3666_max_usages_on_region_creation_171122_short': True,
3422
'fflag_fix_front_dev_3617_taxonomy_memory_leaks_fix': True,
35-
'fflag_fix_front_dev_3350_restrict_drawing_area_short': True,
36-
'fflag_feat_front_dev_2461_audio_paragraphs_seek_chunk_position_short': True,
3723
'ff_front_dev_2432_auto_save_polygon_draft_210622_short': True,
38-
'ff_front_dev_2575_projects_list_performance_280622_short': True,
39-
'ff_front_dev_2431_delete_polygon_points_080622_short': True,
40-
'ff_front_dev_2290_draft_in_annotation_history_short': True,
41-
'ff_dev_2128_html_in_labels_150422_short': True,
42-
'ff_dev_2007_rework_choices_280322_short': True,
4324
'ff_front_dev_1495_avatar_mess_210122_short': True,
4425
'ff_front_1170_outliner_030222_short': True,
4526
'fflag_fix_front_lsdv_4620_memory_leaks_100723_short': False,

label_studio/core/utils/contextlog.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ def create_payload(self, request, response, body):
271271
else:
272272
namespace = request.resolver_match.namespace if request.resolver_match else None
273273
status_code = response.status_code
274-
content_type = response.content_type
274+
content_type = getattr(response, 'content_type', None)
275275
response_content = self._get_response_content(response)
276276

277277
payload = {

label_studio/feature_flags.json

+47-74
Original file line numberDiff line numberDiff line change
@@ -190,33 +190,6 @@
190190
"version": 3,
191191
"deleted": false
192192
},
193-
"ff_back_2070_inner_id_12052022_short": {
194-
"key": "ff_back_2070_inner_id_12052022_short",
195-
"on": true,
196-
"prerequisites": [],
197-
"targets": [],
198-
"contextTargets": [],
199-
"rules": [],
200-
"fallthrough": {
201-
"variation": 0
202-
},
203-
"offVariation": 1,
204-
"variations": [
205-
true,
206-
false
207-
],
208-
"clientSideAvailability": {
209-
"usingMobileKey": false,
210-
"usingEnvironmentId": false
211-
},
212-
"clientSide": false,
213-
"salt": "86d9f39cea98459ab04d7ed9c01a1752",
214-
"trackEvents": false,
215-
"trackEventsFallthrough": false,
216-
"debugEventsUntilDate": null,
217-
"version": 4,
218-
"deleted": false
219-
},
220193
"ff_back_2884_comments_notifications_02092022_short": {
221194
"key": "ff_back_2884_comments_notifications_02092022_short",
222195
"on": false,
@@ -973,8 +946,8 @@
973946
"version": 4,
974947
"deleted": false
975948
},
976-
"fflag-feat-dev-2887-comments-ui-editor-short": {
977-
"key": "fflag-feat-dev-2887-comments-ui-editor-short",
949+
"ff_front_optic_1494_saved_templates_to_custom_templates": {
950+
"key": "ff_front_optic_1494_saved_templates_to_custom_templates",
978951
"on": false,
979952
"prerequisites": [],
980953
"targets": [],
@@ -993,15 +966,15 @@
993966
"usingEnvironmentId": false
994967
},
995968
"clientSide": false,
996-
"salt": "7b49c8b7fb8a4bb6b2836e3cdeeee5df",
969+
"salt": "bd4fd2af88bc47fa8d0b7c7648158e4d",
997970
"trackEvents": false,
998971
"trackEventsFallthrough": false,
999972
"debugEventsUntilDate": null,
1000-
"version": 9,
973+
"version": 3,
1001974
"deleted": false
1002975
},
1003-
"fflag-feat-dev-3034-comments-with-drafts-short": {
1004-
"key": "fflag-feat-dev-3034-comments-with-drafts-short",
976+
"fflag-feat-dev-2887-comments-ui-editor-short": {
977+
"key": "fflag-feat-dev-2887-comments-ui-editor-short",
1005978
"on": false,
1006979
"prerequisites": [],
1007980
"targets": [],
@@ -1020,15 +993,15 @@
1020993
"usingEnvironmentId": false
1021994
},
1022995
"clientSide": false,
1023-
"salt": "4070f7702bc84aa4a4ccf28fb92d3e7a",
996+
"salt": "7b49c8b7fb8a4bb6b2836e3cdeeee5df",
1024997
"trackEvents": false,
1025998
"trackEventsFallthrough": false,
1026999
"debugEventsUntilDate": null,
1027-
"version": 5,
1000+
"version": 9,
10281001
"deleted": false
10291002
},
1030-
"fflag-feat-front-dev-2866-free-trial-invite-short": {
1031-
"key": "fflag-feat-front-dev-2866-free-trial-invite-short",
1003+
"fflag-feat-dev-3034-comments-with-drafts-short": {
1004+
"key": "fflag-feat-dev-3034-comments-with-drafts-short",
10321005
"on": false,
10331006
"prerequisites": [],
10341007
"targets": [],
@@ -1047,16 +1020,16 @@
10471020
"usingEnvironmentId": false
10481021
},
10491022
"clientSide": false,
1050-
"salt": "82b06caa7c0242f780dbdf5e1f537b45",
1023+
"salt": "4070f7702bc84aa4a4ccf28fb92d3e7a",
10511024
"trackEvents": false,
10521025
"trackEventsFallthrough": false,
10531026
"debugEventsUntilDate": null,
1054-
"version": 2,
1027+
"version": 5,
10551028
"deleted": false
10561029
},
1057-
"fflag-feat-front-dev-2982-label-weights-settings": {
1058-
"key": "fflag-feat-front-dev-2982-label-weights-settings",
1059-
"on": true,
1030+
"fflag-feat-front-dev-2866-free-trial-invite-short": {
1031+
"key": "fflag-feat-front-dev-2866-free-trial-invite-short",
1032+
"on": false,
10601033
"prerequisites": [],
10611034
"targets": [],
10621035
"contextTargets": [],
@@ -1074,11 +1047,11 @@
10741047
"usingEnvironmentId": false
10751048
},
10761049
"clientSide": false,
1077-
"salt": "87124bd5b0b54930aa35f693be93d3aa",
1050+
"salt": "82b06caa7c0242f780dbdf5e1f537b45",
10781051
"trackEvents": false,
10791052
"trackEventsFallthrough": false,
10801053
"debugEventsUntilDate": null,
1081-
"version": 3,
1054+
"version": 2,
10821055
"deleted": false
10831056
},
10841057
"fflag-feat-front-dev-3051-trial-experience": {
@@ -1459,6 +1432,33 @@
14591432
"version": 3,
14601433
"deleted": false
14611434
},
1435+
"fflag_feat_all_leap_1732_pausing_an_annotator_short": {
1436+
"key": "fflag_feat_all_leap_1732_pausing_an_annotator_short",
1437+
"on": false,
1438+
"prerequisites": [],
1439+
"targets": [],
1440+
"contextTargets": [],
1441+
"rules": [],
1442+
"fallthrough": {
1443+
"variation": 1
1444+
},
1445+
"offVariation": 1,
1446+
"variations": [
1447+
true,
1448+
false
1449+
],
1450+
"clientSideAvailability": {
1451+
"usingMobileKey": false,
1452+
"usingEnvironmentId": false
1453+
},
1454+
"clientSide": false,
1455+
"salt": "bf2998352dcb4350846a1621b3c44626",
1456+
"trackEvents": false,
1457+
"trackEventsFallthrough": false,
1458+
"debugEventsUntilDate": null,
1459+
"version": 2,
1460+
"deleted": false
1461+
},
14621462
"fflag_feat_all_leap_883_custom_script_270524_short": {
14631463
"key": "fflag_feat_all_leap_883_custom_script_270524_short",
14641464
"on": true,
@@ -2037,7 +2037,7 @@
20372037
"trackEvents": false,
20382038
"trackEventsFallthrough": false,
20392039
"debugEventsUntilDate": null,
2040-
"version": 2,
2040+
"version": 3,
20412041
"deleted": false
20422042
},
20432043
"fflag_feat_dia_1697_product_tour_short": {
@@ -2121,33 +2121,6 @@
21212121
"version": 3,
21222122
"deleted": false
21232123
},
2124-
"fflag_feat_front_dev_2984_dm_draggable_columns_short": {
2125-
"key": "fflag_feat_front_dev_2984_dm_draggable_columns_short",
2126-
"on": true,
2127-
"prerequisites": [],
2128-
"targets": [],
2129-
"contextTargets": [],
2130-
"rules": [],
2131-
"fallthrough": {
2132-
"variation": 0
2133-
},
2134-
"offVariation": 1,
2135-
"variations": [
2136-
true,
2137-
false
2138-
],
2139-
"clientSideAvailability": {
2140-
"usingMobileKey": false,
2141-
"usingEnvironmentId": false
2142-
},
2143-
"clientSide": false,
2144-
"salt": "69f38a9b776d4c8fa453b2dbea7017a2",
2145-
"trackEvents": false,
2146-
"trackEventsFallthrough": false,
2147-
"debugEventsUntilDate": null,
2148-
"version": 4,
2149-
"deleted": false
2150-
},
21512124
"fflag_feat_front_dev_3051_trial_experience_short": {
21522125
"key": "fflag_feat_front_dev_3051_trial_experience_short",
21532126
"on": false,
@@ -3797,7 +3770,7 @@
37973770
},
37983771
"fflag_fix_back_optic_1407_optimize_tasks_api_pagination_counts": {
37993772
"key": "fflag_fix_back_optic_1407_optimize_tasks_api_pagination_counts",
3800-
"on": false,
3773+
"on": true,
38013774
"prerequisites": [],
38023775
"targets": [],
38033776
"contextTargets": [],
@@ -3819,7 +3792,7 @@
38193792
"trackEvents": false,
38203793
"trackEventsFallthrough": false,
38213794
"debugEventsUntilDate": null,
3822-
"version": 4,
3795+
"version": 5,
38233796
"deleted": false
38243797
},
38253798
"fflag_fix_font_lsdv_1148_hotkeys_namespaces_01022023_short": {

0 commit comments

Comments
 (0)