supervisely 6.73.452__py3-none-any.whl → 6.73.513__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.
- supervisely/__init__.py +25 -1
- supervisely/annotation/annotation.py +8 -2
- supervisely/annotation/json_geometries_map.py +13 -12
- supervisely/api/annotation_api.py +6 -3
- supervisely/api/api.py +2 -0
- supervisely/api/app_api.py +10 -1
- supervisely/api/dataset_api.py +74 -12
- supervisely/api/entities_collection_api.py +10 -0
- supervisely/api/entity_annotation/figure_api.py +28 -0
- supervisely/api/entity_annotation/object_api.py +3 -3
- supervisely/api/entity_annotation/tag_api.py +63 -12
- supervisely/api/guides_api.py +210 -0
- supervisely/api/image_api.py +4 -0
- supervisely/api/labeling_job_api.py +83 -1
- supervisely/api/labeling_queue_api.py +33 -7
- supervisely/api/module_api.py +5 -0
- supervisely/api/project_api.py +71 -26
- supervisely/api/storage_api.py +3 -1
- supervisely/api/task_api.py +13 -2
- supervisely/api/team_api.py +4 -3
- supervisely/api/video/video_annotation_api.py +119 -3
- supervisely/api/video/video_api.py +65 -14
- supervisely/app/__init__.py +1 -1
- supervisely/app/content.py +23 -7
- supervisely/app/development/development.py +18 -2
- supervisely/app/fastapi/__init__.py +1 -0
- supervisely/app/fastapi/custom_static_files.py +1 -1
- supervisely/app/fastapi/multi_user.py +105 -0
- supervisely/app/fastapi/subapp.py +88 -42
- supervisely/app/fastapi/websocket.py +77 -9
- supervisely/app/singleton.py +21 -0
- supervisely/app/v1/app_service.py +18 -2
- supervisely/app/v1/constants.py +7 -1
- supervisely/app/widgets/__init__.py +6 -0
- supervisely/app/widgets/activity_feed/__init__.py +0 -0
- supervisely/app/widgets/activity_feed/activity_feed.py +239 -0
- supervisely/app/widgets/activity_feed/style.css +78 -0
- supervisely/app/widgets/activity_feed/template.html +22 -0
- supervisely/app/widgets/card/card.py +20 -0
- supervisely/app/widgets/classes_list_selector/classes_list_selector.py +121 -9
- supervisely/app/widgets/classes_list_selector/template.html +60 -93
- supervisely/app/widgets/classes_mapping/classes_mapping.py +13 -12
- supervisely/app/widgets/classes_table/classes_table.py +1 -0
- supervisely/app/widgets/deploy_model/deploy_model.py +56 -35
- supervisely/app/widgets/ecosystem_model_selector/ecosystem_model_selector.py +1 -1
- supervisely/app/widgets/experiment_selector/experiment_selector.py +8 -0
- supervisely/app/widgets/fast_table/fast_table.py +184 -60
- supervisely/app/widgets/fast_table/template.html +1 -1
- supervisely/app/widgets/heatmap/__init__.py +0 -0
- supervisely/app/widgets/heatmap/heatmap.py +564 -0
- supervisely/app/widgets/heatmap/script.js +533 -0
- supervisely/app/widgets/heatmap/style.css +233 -0
- supervisely/app/widgets/heatmap/template.html +21 -0
- supervisely/app/widgets/modal/__init__.py +0 -0
- supervisely/app/widgets/modal/modal.py +198 -0
- supervisely/app/widgets/modal/template.html +10 -0
- supervisely/app/widgets/object_class_view/object_class_view.py +3 -0
- supervisely/app/widgets/radio_tabs/radio_tabs.py +18 -2
- supervisely/app/widgets/radio_tabs/template.html +1 -0
- supervisely/app/widgets/select/select.py +6 -3
- supervisely/app/widgets/select_class/__init__.py +0 -0
- supervisely/app/widgets/select_class/select_class.py +363 -0
- supervisely/app/widgets/select_class/template.html +50 -0
- supervisely/app/widgets/select_cuda/select_cuda.py +22 -0
- supervisely/app/widgets/select_dataset_tree/select_dataset_tree.py +65 -7
- supervisely/app/widgets/select_tag/__init__.py +0 -0
- supervisely/app/widgets/select_tag/select_tag.py +352 -0
- supervisely/app/widgets/select_tag/template.html +64 -0
- supervisely/app/widgets/select_team/select_team.py +37 -4
- supervisely/app/widgets/select_team/template.html +4 -5
- supervisely/app/widgets/select_user/__init__.py +0 -0
- supervisely/app/widgets/select_user/select_user.py +270 -0
- supervisely/app/widgets/select_user/template.html +13 -0
- supervisely/app/widgets/select_workspace/select_workspace.py +59 -10
- supervisely/app/widgets/select_workspace/template.html +9 -12
- supervisely/app/widgets/table/table.py +68 -13
- supervisely/app/widgets/tree_select/tree_select.py +2 -0
- supervisely/aug/aug.py +6 -2
- supervisely/convert/base_converter.py +1 -0
- supervisely/convert/converter.py +2 -2
- supervisely/convert/image/image_converter.py +3 -1
- supervisely/convert/image/image_helper.py +48 -4
- supervisely/convert/image/label_studio/label_studio_converter.py +2 -0
- supervisely/convert/image/medical2d/medical2d_helper.py +2 -24
- supervisely/convert/image/multispectral/multispectral_converter.py +6 -0
- supervisely/convert/image/pascal_voc/pascal_voc_converter.py +8 -5
- supervisely/convert/image/pascal_voc/pascal_voc_helper.py +7 -0
- supervisely/convert/pointcloud/kitti_3d/kitti_3d_converter.py +33 -3
- supervisely/convert/pointcloud/kitti_3d/kitti_3d_helper.py +12 -5
- supervisely/convert/pointcloud/las/las_converter.py +13 -1
- supervisely/convert/pointcloud/las/las_helper.py +110 -11
- supervisely/convert/pointcloud/nuscenes_conv/nuscenes_converter.py +27 -16
- supervisely/convert/pointcloud/pointcloud_converter.py +91 -3
- supervisely/convert/pointcloud_episodes/nuscenes_conv/nuscenes_converter.py +58 -22
- supervisely/convert/pointcloud_episodes/nuscenes_conv/nuscenes_helper.py +21 -47
- supervisely/convert/video/__init__.py +1 -0
- supervisely/convert/video/multi_view/__init__.py +0 -0
- supervisely/convert/video/multi_view/multi_view.py +543 -0
- supervisely/convert/video/sly/sly_video_converter.py +359 -3
- supervisely/convert/video/video_converter.py +22 -2
- supervisely/convert/volume/dicom/dicom_converter.py +13 -5
- supervisely/convert/volume/dicom/dicom_helper.py +30 -18
- supervisely/geometry/constants.py +1 -0
- supervisely/geometry/geometry.py +4 -0
- supervisely/geometry/helpers.py +5 -1
- supervisely/geometry/oriented_bbox.py +676 -0
- supervisely/geometry/rectangle.py +2 -1
- supervisely/io/env.py +76 -1
- supervisely/io/fs.py +21 -0
- supervisely/nn/benchmark/base_evaluator.py +104 -11
- supervisely/nn/benchmark/instance_segmentation/evaluator.py +1 -8
- supervisely/nn/benchmark/object_detection/evaluator.py +20 -4
- supervisely/nn/benchmark/object_detection/vis_metrics/pr_curve.py +10 -5
- supervisely/nn/benchmark/semantic_segmentation/evaluator.py +34 -16
- supervisely/nn/benchmark/semantic_segmentation/vis_metrics/confusion_matrix.py +1 -1
- supervisely/nn/benchmark/semantic_segmentation/vis_metrics/frequently_confused.py +1 -1
- supervisely/nn/benchmark/semantic_segmentation/vis_metrics/overview.py +1 -1
- supervisely/nn/benchmark/visualization/evaluation_result.py +66 -4
- supervisely/nn/inference/cache.py +43 -18
- supervisely/nn/inference/gui/serving_gui_template.py +5 -2
- supervisely/nn/inference/inference.py +795 -199
- supervisely/nn/inference/inference_request.py +42 -9
- supervisely/nn/inference/predict_app/gui/classes_selector.py +83 -12
- supervisely/nn/inference/predict_app/gui/gui.py +676 -488
- supervisely/nn/inference/predict_app/gui/input_selector.py +205 -26
- supervisely/nn/inference/predict_app/gui/model_selector.py +2 -4
- supervisely/nn/inference/predict_app/gui/output_selector.py +46 -6
- supervisely/nn/inference/predict_app/gui/settings_selector.py +756 -59
- supervisely/nn/inference/predict_app/gui/tags_selector.py +1 -1
- supervisely/nn/inference/predict_app/gui/utils.py +236 -119
- supervisely/nn/inference/predict_app/predict_app.py +2 -2
- supervisely/nn/inference/session.py +43 -35
- supervisely/nn/inference/tracking/bbox_tracking.py +113 -34
- supervisely/nn/inference/tracking/tracker_interface.py +7 -2
- supervisely/nn/inference/uploader.py +139 -12
- supervisely/nn/live_training/__init__.py +7 -0
- supervisely/nn/live_training/api_server.py +111 -0
- supervisely/nn/live_training/artifacts_utils.py +243 -0
- supervisely/nn/live_training/checkpoint_utils.py +229 -0
- supervisely/nn/live_training/dynamic_sampler.py +44 -0
- supervisely/nn/live_training/helpers.py +14 -0
- supervisely/nn/live_training/incremental_dataset.py +146 -0
- supervisely/nn/live_training/live_training.py +497 -0
- supervisely/nn/live_training/loss_plateau_detector.py +111 -0
- supervisely/nn/live_training/request_queue.py +52 -0
- supervisely/nn/model/model_api.py +9 -0
- supervisely/nn/prediction_dto.py +12 -1
- supervisely/nn/tracker/base_tracker.py +11 -1
- supervisely/nn/tracker/botsort/botsort_config.yaml +0 -1
- supervisely/nn/tracker/botsort/tracker/mc_bot_sort.py +7 -4
- supervisely/nn/tracker/botsort_tracker.py +94 -65
- supervisely/nn/tracker/visualize.py +87 -90
- supervisely/nn/training/gui/classes_selector.py +16 -1
- supervisely/nn/training/train_app.py +28 -29
- supervisely/project/data_version.py +115 -51
- supervisely/project/download.py +1 -1
- supervisely/project/pointcloud_episode_project.py +37 -8
- supervisely/project/pointcloud_project.py +30 -2
- supervisely/project/project.py +14 -2
- supervisely/project/project_meta.py +27 -1
- supervisely/project/project_settings.py +32 -18
- supervisely/project/versioning/__init__.py +1 -0
- supervisely/project/versioning/common.py +20 -0
- supervisely/project/versioning/schema_fields.py +35 -0
- supervisely/project/versioning/video_schema.py +221 -0
- supervisely/project/versioning/volume_schema.py +87 -0
- supervisely/project/video_project.py +717 -15
- supervisely/project/volume_project.py +623 -5
- supervisely/template/experiment/experiment.html.jinja +4 -4
- supervisely/template/experiment/experiment_generator.py +14 -21
- supervisely/template/live_training/__init__.py +0 -0
- supervisely/template/live_training/header.html.jinja +96 -0
- supervisely/template/live_training/live_training.html.jinja +51 -0
- supervisely/template/live_training/live_training_generator.py +464 -0
- supervisely/template/live_training/sly-style.css +402 -0
- supervisely/template/live_training/template.html.jinja +18 -0
- supervisely/versions.json +28 -26
- supervisely/video/sampling.py +39 -20
- supervisely/video/video.py +40 -11
- supervisely/video_annotation/video_object.py +29 -4
- supervisely/volume/stl_converter.py +2 -0
- supervisely/worker_api/agent_rpc.py +24 -1
- supervisely/worker_api/rpc_servicer.py +31 -7
- {supervisely-6.73.452.dist-info → supervisely-6.73.513.dist-info}/METADATA +56 -39
- {supervisely-6.73.452.dist-info → supervisely-6.73.513.dist-info}/RECORD +189 -142
- {supervisely-6.73.452.dist-info → supervisely-6.73.513.dist-info}/WHEEL +1 -1
- {supervisely-6.73.452.dist-info → supervisely-6.73.513.dist-info}/entry_points.txt +0 -0
- {supervisely-6.73.452.dist-info → supervisely-6.73.513.dist-info/licenses}/LICENSE +0 -0
- {supervisely-6.73.452.dist-info → supervisely-6.73.513.dist-info}/top_level.txt +0 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
|
+
# isort: skip_file
|
|
2
3
|
|
|
3
4
|
import cv2
|
|
4
5
|
import numpy as np
|
|
5
6
|
|
|
6
7
|
from .chunking import load_to_memory_chunked_image, load_to_memory_chunked
|
|
7
|
-
|
|
8
|
+
|
|
9
|
+
# from ..worker_proto import worker_api_pb2 as api_proto # Import moved to methods where needed
|
|
8
10
|
|
|
9
11
|
|
|
10
12
|
class SimpleCache:
|
|
@@ -22,6 +24,13 @@ class SimpleCache:
|
|
|
22
24
|
|
|
23
25
|
|
|
24
26
|
def download_image_from_remote(agent_api, image_hash, src_node_token, logger):
|
|
27
|
+
try:
|
|
28
|
+
from ..worker_proto import worker_api_pb2 as api_proto
|
|
29
|
+
except Exception as e:
|
|
30
|
+
from supervisely.app.v1.constants import PROTOBUF_REQUIRED_ERROR
|
|
31
|
+
|
|
32
|
+
raise ImportError(PROTOBUF_REQUIRED_ERROR) from e
|
|
33
|
+
|
|
25
34
|
resp = agent_api.get_stream_with_data(
|
|
26
35
|
'DownloadImages',
|
|
27
36
|
api_proto.ChunkImage,
|
|
@@ -34,6 +43,13 @@ def download_image_from_remote(agent_api, image_hash, src_node_token, logger):
|
|
|
34
43
|
|
|
35
44
|
|
|
36
45
|
def download_data_from_remote(agent_api, req_id, logger):
|
|
46
|
+
try:
|
|
47
|
+
from ..worker_proto import worker_api_pb2 as api_proto
|
|
48
|
+
except Exception as e:
|
|
49
|
+
from supervisely.app.v1.constants import PROTOBUF_REQUIRED_ERROR
|
|
50
|
+
|
|
51
|
+
raise ImportError(PROTOBUF_REQUIRED_ERROR) from e
|
|
52
|
+
|
|
37
53
|
resp = agent_api.get_stream_with_data('GetGeneralEventData', api_proto.Chunk, api_proto.Empty(),
|
|
38
54
|
addit_headers={'x-request-id': req_id})
|
|
39
55
|
b_data = load_to_memory_chunked(resp)
|
|
@@ -47,6 +63,13 @@ def batched(seq, batch_size):
|
|
|
47
63
|
|
|
48
64
|
|
|
49
65
|
def send_from_memory_generator(out_bytes, chunk_size):
|
|
66
|
+
try:
|
|
67
|
+
from ..worker_proto import worker_api_pb2 as api_proto
|
|
68
|
+
except Exception as e:
|
|
69
|
+
from supervisely.app.v1.constants import PROTOBUF_REQUIRED_ERROR
|
|
70
|
+
|
|
71
|
+
raise ImportError(PROTOBUF_REQUIRED_ERROR) from e
|
|
72
|
+
|
|
50
73
|
for bytes_chunk in batched(out_bytes, chunk_size):
|
|
51
74
|
yield api_proto.Chunk(buffer=bytes_chunk, total_size=len(out_bytes))
|
|
52
75
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
|
+
# isort: skip_file
|
|
2
3
|
|
|
3
4
|
import os
|
|
4
5
|
import concurrent.futures
|
|
@@ -11,18 +12,27 @@ import threading
|
|
|
11
12
|
from supervisely.annotation.annotation import Annotation
|
|
12
13
|
from supervisely.function_wrapper import function_wrapper, function_wrapper_nofail
|
|
13
14
|
from supervisely.imaging.image import drop_image_alpha_channel
|
|
14
|
-
from supervisely.nn.legacy.hosted.inference_modes import
|
|
15
|
-
|
|
15
|
+
from supervisely.nn.legacy.hosted.inference_modes import (
|
|
16
|
+
InferenceModeFactory,
|
|
17
|
+
InfModeFullImage,
|
|
18
|
+
MODE,
|
|
19
|
+
NAME,
|
|
20
|
+
get_effective_inference_mode_config,
|
|
21
|
+
)
|
|
16
22
|
from supervisely.project.project_meta import ProjectMeta
|
|
17
23
|
from supervisely.worker_api.agent_api import AgentAPI
|
|
18
|
-
from supervisely.worker_api.agent_rpc import
|
|
19
|
-
|
|
24
|
+
from supervisely.worker_api.agent_rpc import (
|
|
25
|
+
decode_image,
|
|
26
|
+
download_image_from_remote,
|
|
27
|
+
download_data_from_remote,
|
|
28
|
+
send_from_memory_generator,
|
|
29
|
+
)
|
|
20
30
|
from supervisely.worker_api.interfaces import SingleImageInferenceInterface
|
|
21
|
-
|
|
31
|
+
|
|
32
|
+
# from supervisely.worker_proto import worker_api_pb2 as api_proto # Import moved to methods where needed
|
|
22
33
|
from supervisely.task.progress import report_agent_rpc_ready
|
|
23
34
|
from supervisely.api.api import Api
|
|
24
35
|
|
|
25
|
-
|
|
26
36
|
REQUEST_TYPE = 'request_type'
|
|
27
37
|
GET_OUT_META = 'get_out_meta'
|
|
28
38
|
INFERENCE = 'inference'
|
|
@@ -123,6 +133,13 @@ class AgentRPCServicerBase:
|
|
|
123
133
|
self.thread_pool.submit(function_wrapper_nofail, self._send_data, res_msg, req_id) # skip errors
|
|
124
134
|
|
|
125
135
|
def _send_data(self, out_msg, req_id):
|
|
136
|
+
try:
|
|
137
|
+
from supervisely.worker_proto import worker_api_pb2 as api_proto
|
|
138
|
+
except Exception as e:
|
|
139
|
+
from supervisely.app.v1.constants import PROTOBUF_REQUIRED_ERROR
|
|
140
|
+
|
|
141
|
+
raise ImportError(PROTOBUF_REQUIRED_ERROR) from e
|
|
142
|
+
|
|
126
143
|
self.logger.trace('Will send output data.', extra={REQUEST_ID: req_id})
|
|
127
144
|
out_bytes = json.dumps(out_msg).encode('utf-8')
|
|
128
145
|
|
|
@@ -173,6 +190,13 @@ class AgentRPCServicerBase:
|
|
|
173
190
|
self._load_data_if_required(event_obj)
|
|
174
191
|
|
|
175
192
|
def run_inf_loop(self):
|
|
193
|
+
try:
|
|
194
|
+
from supervisely.worker_proto import worker_api_pb2 as api_proto
|
|
195
|
+
except Exception as e:
|
|
196
|
+
from supervisely.app.v1.constants import PROTOBUF_REQUIRED_ERROR
|
|
197
|
+
|
|
198
|
+
raise ImportError(PROTOBUF_REQUIRED_ERROR) from e
|
|
199
|
+
|
|
176
200
|
def seq_inf_wrapped():
|
|
177
201
|
function_wrapper(self._sequential_final_processing) # exit if raised
|
|
178
202
|
|
|
@@ -252,4 +276,4 @@ class InactiveRPCServicer(AgentRPCServicer):
|
|
|
252
276
|
self.logger.info('Created InactiveRPCServicer for internal usage', extra=conn_config)
|
|
253
277
|
|
|
254
278
|
def run_inf_loop(self):
|
|
255
|
-
raise RuntimeError("Method is not accessible")
|
|
279
|
+
raise RuntimeError("Method is not accessible")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: supervisely
|
|
3
|
-
Version: 6.73.
|
|
3
|
+
Version: 6.73.513
|
|
4
4
|
Summary: Supervisely Python SDK.
|
|
5
5
|
Home-page: https://github.com/supervisely/supervisely
|
|
6
6
|
Author: Supervisely
|
|
@@ -21,15 +21,14 @@ Requires-Python: >=3.8
|
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
License-File: LICENSE
|
|
23
23
|
Requires-Dist: cachetools<=5.5.0,>=4.2.3
|
|
24
|
-
Requires-Dist: numpy
|
|
24
|
+
Requires-Dist: numpy<=2.3.3,>=1.19
|
|
25
25
|
Requires-Dist: opencv-python<5.0.0.0,>=4.6.0.66
|
|
26
26
|
Requires-Dist: PTable<1.0.0,>=0.9.2
|
|
27
27
|
Requires-Dist: pillow<=10.4.0,>=5.4.1
|
|
28
|
-
Requires-Dist:
|
|
29
|
-
Requires-Dist: python-json-logger<3.0.0,>=0.1.11
|
|
28
|
+
Requires-Dist: python-json-logger<=3.0.1,>=0.1.11
|
|
30
29
|
Requires-Dist: requests<3.0.0,>=2.27.1
|
|
31
30
|
Requires-Dist: requests-toolbelt>=0.9.1
|
|
32
|
-
Requires-Dist: Shapely<=2.
|
|
31
|
+
Requires-Dist: Shapely<=2.1.2,>=1.7.1
|
|
33
32
|
Requires-Dist: bidict<1.0.0,>=0.21.2
|
|
34
33
|
Requires-Dist: varname<1.0.0,>=0.8.1
|
|
35
34
|
Requires-Dist: python-dotenv<=1.0.1,>=0.19.2
|
|
@@ -40,18 +39,18 @@ Requires-Dist: stringcase<2.0.0,>=1.2.0
|
|
|
40
39
|
Requires-Dist: python-magic<1.0.0,>=0.4.25
|
|
41
40
|
Requires-Dist: trimesh<=4.5.0,>=3.11.2
|
|
42
41
|
Requires-Dist: uvicorn[standard]<1.0.0,>=0.18.2
|
|
43
|
-
Requires-Dist:
|
|
44
|
-
Requires-Dist:
|
|
45
|
-
Requires-Dist: fastapi<=0.
|
|
42
|
+
Requires-Dist: starlette<=0.47.3
|
|
43
|
+
Requires-Dist: pydantic<=2.12.3,>=1.7.4
|
|
44
|
+
Requires-Dist: fastapi<=0.119.1,>=0.103.1
|
|
46
45
|
Requires-Dist: websockets<=13.1,>=10.3
|
|
47
46
|
Requires-Dist: jinja2<4.0.0,>=3.0.3
|
|
48
|
-
Requires-Dist: psutil
|
|
47
|
+
Requires-Dist: psutil<=7.2.0,>=5.9.0
|
|
49
48
|
Requires-Dist: jsonpatch<2.0,>=1.32
|
|
50
49
|
Requires-Dist: MarkupSafe<3.0.0,>=2.1.1
|
|
51
50
|
Requires-Dist: arel<1.0.0,>=0.2.0
|
|
52
51
|
Requires-Dist: tqdm<5.0.0,>=4.62.3
|
|
53
|
-
Requires-Dist: pandas<=2.
|
|
54
|
-
Requires-Dist:
|
|
52
|
+
Requires-Dist: pandas<=2.3.3,>=1.1.3
|
|
53
|
+
Requires-Dist: async_asgi_testclient
|
|
55
54
|
Requires-Dist: PyYAML>=5.4.0
|
|
56
55
|
Requires-Dist: distinctipy
|
|
57
56
|
Requires-Dist: beautifulsoup4
|
|
@@ -71,6 +70,16 @@ Requires-Dist: zstd
|
|
|
71
70
|
Requires-Dist: aiofiles
|
|
72
71
|
Requires-Dist: httpx[http2]==0.27.2
|
|
73
72
|
Requires-Dist: debugpy
|
|
73
|
+
Requires-Dist: setuptools<81.0.0
|
|
74
|
+
Provides-Extra: extras
|
|
75
|
+
Requires-Dist: docker<6.0.0,>=5.0.3; extra == "extras"
|
|
76
|
+
Requires-Dist: imagecorruptions<2.0.0,>=1.1.2; extra == "extras"
|
|
77
|
+
Requires-Dist: scikit-image<1.0.0,>=0.17.1; extra == "extras"
|
|
78
|
+
Requires-Dist: matplotlib<4.0.0,>=3.3.2; extra == "extras"
|
|
79
|
+
Requires-Dist: pascal-voc-writer<1.0.0,>=0.1.4; extra == "extras"
|
|
80
|
+
Requires-Dist: scipy<2.0.0,>=1.8.0; extra == "extras"
|
|
81
|
+
Requires-Dist: pandas<=2.3.3,>=1.1.3; extra == "extras"
|
|
82
|
+
Requires-Dist: ruamel.yaml==0.17.21; extra == "extras"
|
|
74
83
|
Provides-Extra: apps
|
|
75
84
|
Requires-Dist: uvicorn[standard]<1.0.0,>=0.18.2; extra == "apps"
|
|
76
85
|
Requires-Dist: fastapi<1.0.0,>=0.79.0; extra == "apps"
|
|
@@ -81,10 +90,7 @@ Requires-Dist: jsonpatch<2.0,>=1.32; extra == "apps"
|
|
|
81
90
|
Requires-Dist: MarkupSafe<3.0.0,>=2.1.1; extra == "apps"
|
|
82
91
|
Requires-Dist: arel<1.0.0,>=0.2.0; extra == "apps"
|
|
83
92
|
Requires-Dist: tqdm<5.0.0,>=4.62.3; extra == "apps"
|
|
84
|
-
Requires-Dist: pandas
|
|
85
|
-
Provides-Extra: aug
|
|
86
|
-
Requires-Dist: imgaug<1.0.0,>=0.4.0; extra == "aug"
|
|
87
|
-
Requires-Dist: imagecorruptions<2.0.0,>=1.1.2; extra == "aug"
|
|
93
|
+
Requires-Dist: pandas<=2.3.3,>=1.1.3; extra == "apps"
|
|
88
94
|
Provides-Extra: docs
|
|
89
95
|
Requires-Dist: sphinx==4.4.0; extra == "docs"
|
|
90
96
|
Requires-Dist: jinja2==3.0.3; extra == "docs"
|
|
@@ -93,26 +99,6 @@ Requires-Dist: sphinx-copybutton==0.4.0; extra == "docs"
|
|
|
93
99
|
Requires-Dist: sphinx-autodoc-typehints==1.15.3; extra == "docs"
|
|
94
100
|
Requires-Dist: sphinxcontrib-details-directive==0.1.0; extra == "docs"
|
|
95
101
|
Requires-Dist: myst-parser==0.18.0; extra == "docs"
|
|
96
|
-
Provides-Extra: extras
|
|
97
|
-
Requires-Dist: docker<6.0.0,>=5.0.3; extra == "extras"
|
|
98
|
-
Requires-Dist: imagecorruptions<2.0.0,>=1.1.2; extra == "extras"
|
|
99
|
-
Requires-Dist: scikit-image<1.0.0,>=0.17.1; extra == "extras"
|
|
100
|
-
Requires-Dist: matplotlib<4.0.0,>=3.3.2; extra == "extras"
|
|
101
|
-
Requires-Dist: pascal-voc-writer<1.0.0,>=0.1.4; extra == "extras"
|
|
102
|
-
Requires-Dist: scipy<2.0.0,>=1.8.0; extra == "extras"
|
|
103
|
-
Requires-Dist: pandas<1.4.0,>=1.1.3; extra == "extras"
|
|
104
|
-
Requires-Dist: ruamel.yaml==0.17.21; extra == "extras"
|
|
105
|
-
Provides-Extra: model-benchmark
|
|
106
|
-
Requires-Dist: pycocotools; extra == "model-benchmark"
|
|
107
|
-
Requires-Dist: scikit-learn; extra == "model-benchmark"
|
|
108
|
-
Requires-Dist: plotly==5.22.0; extra == "model-benchmark"
|
|
109
|
-
Requires-Dist: torch; extra == "model-benchmark"
|
|
110
|
-
Requires-Dist: torchvision; extra == "model-benchmark"
|
|
111
|
-
Provides-Extra: plugins
|
|
112
|
-
Requires-Dist: jsonschema<3.0.0,>=2.6.0; extra == "plugins"
|
|
113
|
-
Provides-Extra: sdk-nn-plugins
|
|
114
|
-
Requires-Dist: flask-restful<1.0.0,>=0.3.7; extra == "sdk-nn-plugins"
|
|
115
|
-
Requires-Dist: Werkzeug<3.0.0,>=1.0.1; extra == "sdk-nn-plugins"
|
|
116
102
|
Provides-Extra: sdk-no-usages
|
|
117
103
|
Requires-Dist: grpcio<2.0.0,>=1.53.2; extra == "sdk-no-usages"
|
|
118
104
|
Requires-Dist: plotly<6.0.0,>=4.11.0; extra == "sdk-no-usages"
|
|
@@ -122,7 +108,7 @@ Requires-Dist: yacs; extra == "tracking"
|
|
|
122
108
|
Requires-Dist: matplotlib<4.0.0,>=3.3.2; extra == "tracking"
|
|
123
109
|
Requires-Dist: scipy<2.0.0,>=1.8.0; extra == "tracking"
|
|
124
110
|
Requires-Dist: lap; extra == "tracking"
|
|
125
|
-
Requires-Dist:
|
|
111
|
+
Requires-Dist: cython_bbox; extra == "tracking"
|
|
126
112
|
Requires-Dist: termcolor; extra == "tracking"
|
|
127
113
|
Requires-Dist: scikit-learn; extra == "tracking"
|
|
128
114
|
Requires-Dist: faiss-gpu; extra == "tracking"
|
|
@@ -132,6 +118,12 @@ Requires-Dist: decord; extra == "tracking"
|
|
|
132
118
|
Requires-Dist: gdown; extra == "tracking"
|
|
133
119
|
Requires-Dist: torch; extra == "tracking"
|
|
134
120
|
Requires-Dist: motmetrics; extra == "tracking"
|
|
121
|
+
Provides-Extra: model-benchmark
|
|
122
|
+
Requires-Dist: pycocotools; extra == "model-benchmark"
|
|
123
|
+
Requires-Dist: scikit-learn; extra == "model-benchmark"
|
|
124
|
+
Requires-Dist: plotly==5.22.0; extra == "model-benchmark"
|
|
125
|
+
Requires-Dist: torch; extra == "model-benchmark"
|
|
126
|
+
Requires-Dist: torchvision; extra == "model-benchmark"
|
|
135
127
|
Provides-Extra: training
|
|
136
128
|
Requires-Dist: pycocotools; extra == "training"
|
|
137
129
|
Requires-Dist: scikit-learn; extra == "training"
|
|
@@ -143,6 +135,31 @@ Requires-Dist: markdown; extra == "training"
|
|
|
143
135
|
Requires-Dist: pymdown-extensions; extra == "training"
|
|
144
136
|
Requires-Dist: tbparse; extra == "training"
|
|
145
137
|
Requires-Dist: kaleido==0.2.1; extra == "training"
|
|
138
|
+
Provides-Extra: plugins
|
|
139
|
+
Requires-Dist: jsonschema<3.0.0,>=2.6.0; extra == "plugins"
|
|
140
|
+
Provides-Extra: sdk-nn-plugins
|
|
141
|
+
Requires-Dist: flask-restful<1.0.0,>=0.3.7; extra == "sdk-nn-plugins"
|
|
142
|
+
Requires-Dist: Werkzeug<3.0.0,>=1.0.1; extra == "sdk-nn-plugins"
|
|
143
|
+
Provides-Extra: aug
|
|
144
|
+
Requires-Dist: imgaug<1.0.0,>=0.4.0; extra == "aug"
|
|
145
|
+
Requires-Dist: imagecorruptions<2.0.0,>=1.1.2; extra == "aug"
|
|
146
|
+
Requires-Dist: numpy<2.0.0,>=1.19; extra == "aug"
|
|
147
|
+
Provides-Extra: agent
|
|
148
|
+
Requires-Dist: protobuf<=3.20.3,>=3.19.5; extra == "agent"
|
|
149
|
+
Provides-Extra: versioning
|
|
150
|
+
Requires-Dist: pyarrow<=22.0.0,>=17.0.0; extra == "versioning"
|
|
151
|
+
Dynamic: author
|
|
152
|
+
Dynamic: author-email
|
|
153
|
+
Dynamic: classifier
|
|
154
|
+
Dynamic: description
|
|
155
|
+
Dynamic: description-content-type
|
|
156
|
+
Dynamic: home-page
|
|
157
|
+
Dynamic: license-file
|
|
158
|
+
Dynamic: maintainer
|
|
159
|
+
Dynamic: provides-extra
|
|
160
|
+
Dynamic: requires-dist
|
|
161
|
+
Dynamic: requires-python
|
|
162
|
+
Dynamic: summary
|
|
146
163
|
|
|
147
164
|
<h1 align="center">
|
|
148
165
|
<a href="https://supervisely.com"><img alt="Supervisely" title="Supervisely" src="https://i.imgur.com/B276eMS.png"></a>
|
|
@@ -264,7 +281,7 @@ More concretely, Supervisely includes the following functionality:
|
|
|
264
281
|
|
|
265
282
|
The simplicity of creating Supervisely Apps has already led to the development of [hundreds of applications](https://ecosystem.supervisely.com/), ready to be run within a single click in a web browser and get the job done.
|
|
266
283
|
|
|
267
|
-
Label your data, perform quality assurance, inspect every aspect of your data, collaborate easily, train and apply state-of-the-art neural networks, integrate custom models, automate routine tasks and more
|
|
284
|
+
Label your data, perform quality assurance, inspect every aspect of your data, collaborate easily, train and apply state-of-the-art neural networks, integrate custom models, automate routine tasks and more - like in a real AppStore, there should be an app for everything.
|
|
268
285
|
|
|
269
286
|
## [Development](https://developer.supervisely.com/) 🧑💻
|
|
270
287
|
|
|
@@ -426,7 +443,7 @@ Development for Supervisely builds upon these five principles:
|
|
|
426
443
|
|
|
427
444
|
### Start in a minute
|
|
428
445
|
|
|
429
|
-
Supervisely's open-source SDK and app framework are straightforward to get started with. It
|
|
446
|
+
Supervisely's open-source SDK and app framework are straightforward to get started with. It's just a matter of:
|
|
430
447
|
|
|
431
448
|
```
|
|
432
449
|
pip install supervisely
|