matrice 1.0.99219__py3-none-any.whl → 1.0.99221__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.
@@ -102,7 +102,6 @@ from .usecases.concrete_crack_detection import ConcreteCrackConfig
102
102
  from .usecases.fashion_detection import FashionDetectionConfig, FashionDetectionUseCase
103
103
  from .usecases.shelf_inventory_detection import ShelfInventoryConfig
104
104
  from .usecases.road_lane_detection import LaneDetectionConfig
105
- from .usecases.human_activity_recognition import HumanActivityConfig, HumanActivityUseCase
106
105
 
107
106
  from .usecases.warehouse_object_segmentation import WarehouseObjectConfig
108
107
  from .usecases.shopping_cart_analysis import ShoppingCartConfig
@@ -116,6 +115,8 @@ from .usecases.windmill_maintenance import WindmillMaintenanceUseCase, WindmillM
116
115
  from .usecases.flower_segmentation import FlowerUseCase, FlowerConfig
117
116
  from .usecases.leaf import LeafConfig, LeafUseCase
118
117
  from .usecases.litter_monitoring import LitterDetectionUseCase,LitterDetectionConfig
118
+ from .usecases.human_activity import HumanActivityRecognitionUseCase, HumanActivityRecognitionConfig
119
+ from .usecases.gas_leak_detection import GasLeakConfig, GasLeakUseCase
119
120
 
120
121
  #Put all IMAGE based usecases here
121
122
  from .usecases.blood_cancer_detection_img import BloodCancerDetectionConfig, BloodCancerDetectionUseCase
@@ -189,7 +190,6 @@ from .usecases import (
189
190
  _people_counting = PeopleCountingUseCase()
190
191
  _customer_service = CustomerServiceUseCase()
191
192
  _advanced_customer_service = AdvancedCustomerServiceUseCase()
192
- _human_activity = HumanActivityUseCase()
193
193
  _basic_counting_tracking = BasicCountingTrackingUseCase()
194
194
  _license_plate = LicensePlateUseCase()
195
195
  _color_detection = ColorDetectionUseCase()
@@ -244,6 +244,8 @@ _flower_segmentation = FlowerUseCase()
244
244
  _leaf_det = LeafUseCase()
245
245
  _smoker_detection = SmokerDetectionUseCase()
246
246
  _litter_detection = LitterDetectionUseCase()
247
+ _human_activity = HumanActivityRecognitionUseCase()
248
+ _gas_leak_detection = GasLeakUseCase()
247
249
 
248
250
 
249
251
  #Put all IMAGE based usecases here
@@ -256,7 +258,6 @@ registry.register_use_case(_litter_detection.category, _litter_detection.name, L
256
258
  registry.register_use_case(_people_counting.category, _people_counting.name, PeopleCountingUseCase)
257
259
  registry.register_use_case(_customer_service.category, _customer_service.name, CustomerServiceUseCase)
258
260
  registry.register_use_case(_advanced_customer_service.category, _advanced_customer_service.name, AdvancedCustomerServiceUseCase)
259
- registry.register_use_case(_human_activity.category, _human_activity.name, HumanActivityUseCase)
260
261
  registry.register_use_case(_basic_counting_tracking.category, _basic_counting_tracking.name, BasicCountingTrackingUseCase)
261
262
  registry.register_use_case(_license_plate.category, _license_plate.name, LicensePlateUseCase)
262
263
  registry.register_use_case(_color_detection.category, _color_detection.name, ColorDetectionUseCase)
@@ -312,6 +313,8 @@ registry.register_use_case(_flower_segmentation.category, _flower_segmentation.n
312
313
  registry.register_use_case(_parking_det.category, _parking_det.name, ParkingUseCase)
313
314
  registry.register_use_case(_leaf_det.category, _leaf_det.name, LeafUseCase)
314
315
  registry.register_use_case(_smoker_detection.category, _smoker_detection.name, SmokerDetectionUseCase)
316
+ registry.register_use_case(_human_activity.category, _human_activity.name, HumanActivityRecognitionUseCase)
317
+ registry.register_use_case(_gas_leak_detection.category, _gas_leak_detection.name, GasLeakUseCase)
315
318
 
316
319
  #Put all IMAGE based usecases here
317
320
  registry.register_use_case(_blood_cancer_detection.category, _blood_cancer_detection.name, BloodCancerDetectionUseCase)
@@ -449,7 +452,6 @@ __all__ = [
449
452
  'BaseConfig',
450
453
  'PeopleCountingConfig',
451
454
  'CustomerServiceConfig',
452
- 'HumanActivityConfig',
453
455
  'ColorDetectionConfig',
454
456
  'LicensePlateConfig',
455
457
  'MaskDetectionConfig',
@@ -502,6 +504,8 @@ __all__ = [
502
504
  'FlowerConfig',
503
505
  'SmokerDetectionConfig',
504
506
  'LitterDetectionConfig',
507
+ 'GasLeakConfig',
508
+ 'HumanActivityRecognitionConfig',
505
509
 
506
510
  #Put all IMAGE based usecase CONFIGS here
507
511
  'BloodCancerDetectionConfig',
@@ -513,7 +517,6 @@ __all__ = [
513
517
  'PeopleCountingUseCase',
514
518
  'CustomerServiceUseCase',
515
519
  'AdvancedCustomerServiceUseCase',
516
- 'HumanActivityUseCase',
517
520
  'BasicCountingTrackingUseCase',
518
521
  'LicensePlateUseCase',
519
522
  'ColorDetectionUseCase',
@@ -563,6 +566,8 @@ __all__ = [
563
566
  'FlowerUseCase',
564
567
  'SmokerDetectionUseCase',
565
568
  'LitterDetectionUseCase',
569
+ 'HumanActivityRecognitionUseCase',
570
+ 'GasLeakUseCase',
566
571
 
567
572
  #Put all IMAGE based usecases here
568
573
  'BloodCancerDetectionUseCase',
@@ -873,8 +873,8 @@ class ConfigManager:
873
873
  def human_activity_config_class(self):
874
874
  """Register a configuration class for a use case."""
875
875
  try:
876
- from ..usecases.human_activity import HumanActivityRecognitionConfig
877
- return HumanActivityRecognitionConfig
876
+ from ..usecases.human_activity import HumanActivityConfig
877
+ return HumanActivityConfig
878
878
  except ImportError:
879
879
  return None
880
880
 
@@ -1856,13 +1856,13 @@ class ConfigManager:
1856
1856
 
1857
1857
  elif usecase == "human_activity":
1858
1858
  # Import here to avoid circular import
1859
- from ..usecases.human_activity import HumanActivityRecognitionConfig
1859
+ from ..usecases.human_activity import HumanActivityConfig
1860
1860
 
1861
1861
  alert_config = kwargs.pop("alert_config", None)
1862
1862
  if alert_config and isinstance(alert_config, dict):
1863
1863
  alert_config = AlertConfig(**alert_config)
1864
1864
 
1865
- config = HumanActivityRecognitionConfig(
1865
+ config = HumanActivityConfig(
1866
1866
  category=category or "general",
1867
1867
  usecase=usecase,
1868
1868
  zone_config=zone_config,
@@ -2343,8 +2343,8 @@ class ConfigManager:
2343
2343
  return default_config.to_dict()
2344
2344
  elif usecase == "human_activity":
2345
2345
  # Import here to avoid circular import
2346
- from ..usecases.human_activity import HumanActivityRecognitionConfig
2347
- default_config = HumanActivityRecognitionConfig()
2346
+ from ..usecases.human_activity import HumanActivityConfig
2347
+ default_config = HumanActivityConfig()
2348
2348
  return default_config.to_dict()
2349
2349
  elif usecase == "gas_leak_detection":
2350
2350
  # Import here to avoid circular import
@@ -61,7 +61,7 @@ from .usecases import (
61
61
  LaneDetectionUseCase,
62
62
  LitterDetectionUseCase,
63
63
  LeakDetectionUseCase,
64
- HumanActivityRecognitionUseCase,
64
+ HumanActivityUseCase,
65
65
  GasLeakUseCase,
66
66
 
67
67
 
@@ -224,7 +224,7 @@ class PostProcessor:
224
224
  registry.register_use_case("agriculture", "waterbody_segmentation", WaterBodyUseCase)
225
225
  registry.register_use_case("litter_detection", "litter_detection", LitterDetectionUseCase)
226
226
  registry.register_use_case("oil_gas", "leak_detection", LeakDetectionUseCase)
227
- registry.register_use_case("general", "human_activity", HumanActivityRecognitionUseCase)
227
+ registry.register_use_case("general", "human_activity", HumanActivityUseCase)
228
228
  registry.register_use_case("oil_gas", "gas_leak_detection", GasLeakUseCase)
229
229
 
230
230
  #Put all IMAGE based usecases here
@@ -400,7 +400,7 @@ class PostProcessor:
400
400
  result = use_case.process(data, parsed_config, context, stream_info)
401
401
  elif isinstance(use_case, LeakDetectionUseCase):
402
402
  result = use_case.process(data, parsed_config, context, stream_info)
403
- elif isinstance(use_case, HumanActivityRecognitionUseCase):
403
+ elif isinstance(use_case, HumanActivityUseCase):
404
404
  result = use_case.process(data, parsed_config, context, stream_info)
405
405
  elif isinstance(use_case, GasLeakUseCase):
406
406
  result = use_case.process(data, parsed_config, context, stream_info)
@@ -69,7 +69,7 @@ from .drowsy_driver_detection import DrowsyDriverUseCase, DrowsyDriverUseCase
69
69
  from .waterbody_segmentation import WaterBodyConfig, WaterBodyUseCase
70
70
  from .litter_monitoring import LitterDetectionConfig,LitterDetectionUseCase
71
71
  from .leak_detection import LeakDetectionConfig, LeakDetectionUseCase
72
- from .human_activity import HumanActivityRecognitionConfig, HumanActivityRecognitionUseCase
72
+ from .human_activity import HumanActivityConfig, HumanActivityUseCase
73
73
  from .gas_leak_detection import GasLeakConfig, GasLeakUseCase
74
74
 
75
75
  #Put all IMAGE based usecases here
@@ -137,7 +137,7 @@ __all__ = [
137
137
  'WaterBodyUseCase',
138
138
  'LitterDetectionUseCase',
139
139
  'LeakDetectionUseCase',
140
- 'HumanActivityRecognitionUseCase',
140
+ 'HumanActivityUseCase',
141
141
  'GasLeakUseCase',
142
142
 
143
143
  #Put all IMAGE based usecases here
@@ -205,7 +205,7 @@ __all__ = [
205
205
  'WaterBodyConfig',
206
206
  'LitterDetectionConfig',
207
207
  'LeakDetectionConfig',
208
- 'HumanActivityRecognitionConfig',
208
+ 'HumanActivityConfig',
209
209
  'GasLeakConfig',
210
210
 
211
211
 
@@ -21,7 +21,7 @@ from ..core.config import BaseConfig, AlertConfig, ZoneConfig
21
21
 
22
22
 
23
23
  @dataclass
24
- class HumanActivityRecognitionConfig(BaseConfig):
24
+ class HumanActivityConfig(BaseConfig):
25
25
  """Configuration for human activity detection use case."""
26
26
  # Smoothing configuration
27
27
  enable_smoothing: bool = True
@@ -64,7 +64,7 @@ class HumanActivityRecognitionConfig(BaseConfig):
64
64
  )
65
65
 
66
66
 
67
- class HumanActivityRecognitionUseCase(BaseProcessor):
67
+ class HumanActivityUseCase(BaseProcessor):
68
68
 
69
69
 
70
70
  def __init__(self):
@@ -108,7 +108,7 @@ class HumanActivityRecognitionUseCase(BaseProcessor):
108
108
  """
109
109
  start_time = time.time()
110
110
  # Ensure config is correct type
111
- if not isinstance(config, HumanActivityRecognitionConfig):
111
+ if not isinstance(config, HumanActivityConfig):
112
112
  return self.create_error_result("Invalid config type", usecase=self.name, category=self.category,
113
113
  context=context)
114
114
  if context is None:
@@ -244,7 +244,7 @@ class HumanActivityRecognitionUseCase(BaseProcessor):
244
244
 
245
245
  return result
246
246
 
247
- def _check_alerts(self, summary: dict, frame_number:Any, config: HumanActivityRecognitionConfig) -> List[Dict]:
247
+ def _check_alerts(self, summary: dict, frame_number:Any, config: HumanActivityConfig) -> List[Dict]:
248
248
  """
249
249
  Check if any alert thresholds are exceeded and return alert dicts.
250
250
  """
@@ -312,7 +312,7 @@ class HumanActivityRecognitionUseCase(BaseProcessor):
312
312
  pass
313
313
  return alerts
314
314
 
315
- def _generate_incidents(self, counting_summary: Dict, alerts: List, config: HumanActivityRecognitionConfig,
315
+ def _generate_incidents(self, counting_summary: Dict, alerts: List, config: HumanActivityConfig,
316
316
  frame_number: Optional[int] = None, stream_info: Optional[Dict[str, Any]] = None) -> List[
317
317
  Dict]:
318
318
  """Generate structured incidents for the output format with frame-based keys."""
@@ -403,7 +403,7 @@ class HumanActivityRecognitionUseCase(BaseProcessor):
403
403
  self,
404
404
  counting_summary: Dict,
405
405
  alerts: List,
406
- config: HumanActivityRecognitionConfig,
406
+ config: HumanActivityConfig,
407
407
  frame_number: Optional[int] = None,
408
408
  stream_info: Optional[Dict[str, Any]] = None
409
409
  ) -> List[Dict]:
@@ -515,7 +515,7 @@ class HumanActivityRecognitionUseCase(BaseProcessor):
515
515
  tracking_stats.append(tracking_stat)
516
516
  return tracking_stats
517
517
 
518
- def _generate_business_analytics(self, counting_summary: Dict, alerts:Any, config: HumanActivityRecognitionConfig, stream_info: Optional[Dict[str, Any]] = None, is_empty=False) -> List[Dict]:
518
+ def _generate_business_analytics(self, counting_summary: Dict, alerts:Any, config: HumanActivityConfig, stream_info: Optional[Dict[str, Any]] = None, is_empty=False) -> List[Dict]:
519
519
  """Generate standardized business analytics for the agg_summary structure."""
520
520
  if is_empty:
521
521
  return []
@@ -688,7 +688,7 @@ class HumanActivityRecognitionUseCase(BaseProcessor):
688
688
  return dt.strftime('%Y:%m:%d %H:%M:%S')
689
689
 
690
690
 
691
- def _count_categories(self, detections: list, config: HumanActivityRecognitionConfig) -> dict:
691
+ def _count_categories(self, detections: list, config: HumanActivityConfig) -> dict:
692
692
  """
693
693
  Count the number of detections per category and return a summary dict.
694
694
  The detections list is expected to have 'track_id' (from tracker), 'category', 'bounding_box', etc.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: matrice
3
- Version: 1.0.99219
3
+ Version: 1.0.99221
4
4
  Summary: SDK for connecting to matrice.ai services
5
5
  Home-page: https://github.com/matrice-ai/python-sdk
6
6
  Author: Matrice.ai
@@ -128,9 +128,9 @@ matrice/deploy/utils/boundary_drawing_internal/__init__.py,sha256=4mUOm5_T-vf-XA
128
128
  matrice/deploy/utils/boundary_drawing_internal/boundary_drawing_internal.py,sha256=5SPGXS9EIhJJtvC5qTBBmOTQqSKU2byxHIFgo6Bmt-U,43944
129
129
  matrice/deploy/utils/boundary_drawing_internal/boundary_drawing_tool.py,sha256=eY0VQGZ8BfTmR4_ThIAXaumBjh8_c7w69w-d3kta8p0,15421
130
130
  matrice/deploy/utils/boundary_drawing_internal/example_usage.py,sha256=cUBhxxsVdTQWIPvIOjCUGrhqon7ZBr5N6qNewjrTIuk,6434
131
- matrice/deploy/utils/post_processing/__init__.py,sha256=Z4Hr-GVsk55UEo2J7zmYAXPS-a9lAh1PlVrUdnRkiZE,24591
131
+ matrice/deploy/utils/post_processing/__init__.py,sha256=1swcT34M4w5f5simPeh5wYu3YXR20pHnEZd4Gmlw9jw,24897
132
132
  matrice/deploy/utils/post_processing/config.py,sha256=6PbQus8YDwag859incWR8nXupE9C63tp9TY0lnO7Y6Y,5021
133
- matrice/deploy/utils/post_processing/processor.py,sha256=3ZFGnD-KdMiPkczYwe7gIkjiBQUF9iZDBrgOaSznapw,34253
133
+ matrice/deploy/utils/post_processing/processor.py,sha256=BeiaWLUyOT_eq92KPV5nAIohct7o7-fByE4dDSZu6dM,34220
134
134
  matrice/deploy/utils/post_processing/advanced_tracker/__init__.py,sha256=tAPFzI_Yep5TLX60FDwKqBqppc-EbxSr0wNsQ9DGI1o,423
135
135
  matrice/deploy/utils/post_processing/advanced_tracker/base.py,sha256=VqWy4dd5th5LK-JfueTt2_GSEoOi5QQfQxjTNhmQoLc,3580
136
136
  matrice/deploy/utils/post_processing/advanced_tracker/config.py,sha256=hEVJVbh4uUrbIynmoq4OhuxF2IZA5AMCBLpixScp5FI,2865
@@ -140,7 +140,7 @@ matrice/deploy/utils/post_processing/advanced_tracker/strack.py,sha256=rVH2xOysZ
140
140
  matrice/deploy/utils/post_processing/advanced_tracker/tracker.py,sha256=D-PKZ2Pxutmlu--icyxuxjvnWBrzrmZcEChYS0nx00M,14328
141
141
  matrice/deploy/utils/post_processing/core/__init__.py,sha256=sCdnjfgypTh3TsnyAYJtN0Z8EQne96Nk4j7ICQVXjWE,1312
142
142
  matrice/deploy/utils/post_processing/core/base.py,sha256=V_DmaMLtrIunrN8Aq9iLeMIQPlkbCE-9d7n0Yz-nKQg,28228
143
- matrice/deploy/utils/post_processing/core/config.py,sha256=Of6faAlZveEsL5LPrEUIIvt-HNUyChffWWWNKMQ_qr4,96653
143
+ matrice/deploy/utils/post_processing/core/config.py,sha256=fJBgNDiBc2TBMA-lzphVxBK8lvJz2bFYY0EAJ3eSmfQ,96587
144
144
  matrice/deploy/utils/post_processing/core/config_utils.py,sha256=fVZbYRWJr7dq7mz3FMYBVbYUwWDB-5t7oBuhJix9ghE,23102
145
145
  matrice/deploy/utils/post_processing/test_cases/__init__.py,sha256=zUU2kKrIcCl8WeyjjQViwp7PWTZlKPuF8M2pZkxoNNQ,42
146
146
  matrice/deploy/utils/post_processing/test_cases/run_tests.py,sha256=RBFGvxFR-gozxnQFzkWLrs90vLlp8Bsn-Z7MLQrNw4o,4731
@@ -155,7 +155,7 @@ matrice/deploy/utils/post_processing/test_cases/test_processor.py,sha256=nwF2EIA
155
155
  matrice/deploy/utils/post_processing/test_cases/test_utilities.py,sha256=lmT5bp5_T5yYy1HQ4X01myfScAqnMgf4pd7hHBCjr6A,13414
156
156
  matrice/deploy/utils/post_processing/test_cases/test_utils.py,sha256=bfmOT1rr9asv3jpr-p_UrjnnSZ1qEWM2LEqNKkyvJZ8,29370
157
157
  matrice/deploy/utils/post_processing/usecases/Histopathological_Cancer_Detection_img.py,sha256=bHDXxxG3QgWMFZbDuBaJWpkIvxTXsFMTqCPBCFm3SDs,30247
158
- matrice/deploy/utils/post_processing/usecases/__init__.py,sha256=SyNmtBljBx0ScthK053MFzizYm1B_9SBQaluOb7bcZ4,9098
158
+ matrice/deploy/utils/post_processing/usecases/__init__.py,sha256=l9dduq1GbZohDLA_dqlz696TyvuXXWfbXwWNuHCnKsM,9054
159
159
  matrice/deploy/utils/post_processing/usecases/advanced_customer_service.py,sha256=ELt5euxr6P4X2s8-YGngmj27QscOHefjOsx3774sNFk,75914
160
160
  matrice/deploy/utils/post_processing/usecases/age_detection.py,sha256=yn1LXOgbnOWSMDnsCds6-uN6W-I1Hy4_-AMrjbT5PtY,41318
161
161
  matrice/deploy/utils/post_processing/usecases/anti_spoofing_detection.py,sha256=XdtDdXGzZMLQdWcoOoiE5t4LPYHhgOtJ7tZCNlq1A2E,31329
@@ -186,7 +186,7 @@ matrice/deploy/utils/post_processing/usecases/flare_analysis.py,sha256=-egmS3Hs_
186
186
  matrice/deploy/utils/post_processing/usecases/flower_segmentation.py,sha256=4I7qMx9Ztxg_hy9KTVX-3qBhAN-QwDt_Yigf9fFjLus,52017
187
187
  matrice/deploy/utils/post_processing/usecases/gas_leak_detection.py,sha256=SRWa3TgflQNiTWKeLsX78MIGLtvbp2AYFCGf6hifjfk,40440
188
188
  matrice/deploy/utils/post_processing/usecases/gender_detection.py,sha256=DEnCTRew6B7DtPcBQVCTtpd_IQMvMusBcu6nadUg2oM,40107
189
- matrice/deploy/utils/post_processing/usecases/human_activity.py,sha256=xf0-ntsgF6H2shlFMZ5WAiboh031cxd7DRc0u1dblLo,41150
189
+ matrice/deploy/utils/post_processing/usecases/human_activity.py,sha256=mECcQjEkVLF2n8Xp4SXq8p1F7GZ_sciY1n20Vi6O8WI,41062
190
190
  matrice/deploy/utils/post_processing/usecases/leaf.py,sha256=cwgB1ZNxkQFtkk-thSJrkXOGou1ghJr1kqtopb3sLD4,37036
191
191
  matrice/deploy/utils/post_processing/usecases/leaf_disease.py,sha256=bkiLccTdf4KUq3he4eCpBlKXb5exr-WBhQ_oWQ7os68,36225
192
192
  matrice/deploy/utils/post_processing/usecases/leak_detection.py,sha256=oOCLLVMuXVeXPHyN8FUrD3U9JYJJwIz-5fcEMgvLdls,40531
@@ -240,8 +240,8 @@ matrice/deployment/camera_manager.py,sha256=MEluadz_I3k10GqwFb_w5w_HhuHcEu2vA7oh
240
240
  matrice/deployment/deployment.py,sha256=HFt151eWq6iqIAMsQvurpV2WNxW6Cx_gIUVfnVy5SWE,48093
241
241
  matrice/deployment/inference_pipeline.py,sha256=6b4Mm3-qt-Zy0BeiJfFQdImOn3FzdNCY-7ET7Rp8PMk,37911
242
242
  matrice/deployment/streaming_gateway_manager.py,sha256=90O_SvR4RtBJxR6dy43uHNRTRdgxQE09KzhzHzVqq3E,20939
243
- matrice-1.0.99219.dist-info/licenses/LICENSE.txt,sha256=2bm9uFabQZ3Ykb_SaSU_uUbAj2-htc6WJQmS_65qD00,1073
244
- matrice-1.0.99219.dist-info/METADATA,sha256=TvK7LUkNtl_eD_S9Q67wFm8z47oHXTHWkSgNiYaW56E,14624
245
- matrice-1.0.99219.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
246
- matrice-1.0.99219.dist-info/top_level.txt,sha256=P97js8ur6o5ClRqMH3Cjoab_NqbJ6sOQ3rJmVzKBvMc,8
247
- matrice-1.0.99219.dist-info/RECORD,,
243
+ matrice-1.0.99221.dist-info/licenses/LICENSE.txt,sha256=2bm9uFabQZ3Ykb_SaSU_uUbAj2-htc6WJQmS_65qD00,1073
244
+ matrice-1.0.99221.dist-info/METADATA,sha256=x498r9Uh5pzXeuaQBIKPxVNItZJPkEnk0Z1LoVBgxsA,14624
245
+ matrice-1.0.99221.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
246
+ matrice-1.0.99221.dist-info/top_level.txt,sha256=P97js8ur6o5ClRqMH3Cjoab_NqbJ6sOQ3rJmVzKBvMc,8
247
+ matrice-1.0.99221.dist-info/RECORD,,