OTVision 0.5.5__py3-none-any.whl → 0.6.0__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.
Files changed (42) hide show
  1. OTVision/abstraction/__init__.py +0 -0
  2. OTVision/abstraction/observer.py +43 -0
  3. OTVision/abstraction/pipes_and_filter.py +28 -0
  4. OTVision/application/buffer.py +34 -0
  5. OTVision/application/detect/current_object_detector.py +40 -0
  6. OTVision/application/detect/current_object_detector_metadata.py +27 -0
  7. OTVision/application/detect/detected_frame_factory.py +26 -0
  8. OTVision/application/detect/detected_frame_producer.py +25 -0
  9. OTVision/application/detect/detection_file_save_path_provider.py +59 -0
  10. OTVision/application/detect/factory.py +25 -0
  11. OTVision/application/detect/timestamper.py +25 -0
  12. OTVision/application/detect/update_detect_config_with_cli_args.py +5 -0
  13. OTVision/application/frame_count_provider.py +23 -0
  14. OTVision/application/get_current_config.py +10 -0
  15. OTVision/application/update_current_config.py +10 -0
  16. OTVision/config.py +70 -1
  17. OTVision/detect/builder.py +133 -1
  18. OTVision/detect/cli.py +16 -1
  19. OTVision/detect/detect.py +11 -280
  20. OTVision/detect/detected_frame_buffer.py +57 -0
  21. OTVision/detect/otdet.py +36 -15
  22. OTVision/detect/otdet_file_writer.py +106 -0
  23. OTVision/detect/pyav_frame_count_provider.py +15 -0
  24. OTVision/detect/timestamper.py +152 -0
  25. OTVision/detect/video_input_source.py +213 -0
  26. OTVision/detect/yolo.py +198 -205
  27. OTVision/domain/cli.py +2 -1
  28. OTVision/domain/current_config.py +12 -0
  29. OTVision/domain/detect_producer_consumer.py +30 -0
  30. OTVision/domain/detection.py +20 -0
  31. OTVision/domain/frame.py +29 -0
  32. OTVision/domain/input_source_detect.py +31 -0
  33. OTVision/domain/object_detection.py +47 -0
  34. OTVision/helpers/files.py +1 -1
  35. OTVision/helpers/video.py +6 -0
  36. OTVision/track/preprocess.py +4 -2
  37. OTVision/version.py +1 -1
  38. {otvision-0.5.5.dist-info → otvision-0.6.0.dist-info}/METADATA +1 -1
  39. otvision-0.6.0.dist-info/RECORD +75 -0
  40. otvision-0.5.5.dist-info/RECORD +0 -50
  41. {otvision-0.5.5.dist-info → otvision-0.6.0.dist-info}/WHEEL +0 -0
  42. {otvision-0.5.5.dist-info → otvision-0.6.0.dist-info}/licenses/LICENSE +0 -0
@@ -292,7 +292,7 @@ class FrameChunkParser:
292
292
  frame_offset: int = 0,
293
293
  ) -> FrameChunk:
294
294
  detection_parser = DetectionParser()
295
- frames = []
295
+ frames: list[Frame] = []
296
296
  for key, value in input.items():
297
297
  occurrence: datetime = parse_datetime(value[OCCURRENCE])
298
298
  data_detections = value[DETECTIONS]
@@ -405,7 +405,9 @@ class Preprocess:
405
405
  if match:
406
406
  return match.group(HOSTNAME)
407
407
 
408
- raise InproperFormattedFilename(f"Could not parse {video_name}.")
408
+ raise InproperFormattedFilename(
409
+ f"Could not parse {video_name} with pattern: {FULL_FILE_NAME_PATTERN}."
410
+ )
409
411
 
410
412
  def _merge_groups(self, all_groups: list[FrameGroup]) -> list[FrameGroup]:
411
413
  """Merge frame groups whose start and end times are close to each other. Close
OTVision/version.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "v0.5.5"
1
+ __version__ = "v0.6.0"
2
2
 
3
3
 
4
4
  def otdet_version() -> str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OTVision
3
- Version: 0.5.5
3
+ Version: 0.6.0
4
4
  Summary: OTVision is a core module of the OpenTrafficCam framework to perform object detection and tracking.
5
5
  Project-URL: Homepage, https://opentrafficcam.org/
6
6
  Project-URL: Documentation, https://opentrafficcam.org/overview/
@@ -0,0 +1,75 @@
1
+ OTVision/__init__.py,sha256=b2goS-TYrN9y8WHmjG22z1oVwCrjV0WtGJE32NJfvJM,1042
2
+ OTVision/config.py,sha256=x_Bh3mrfV434puVchuG0zLsTtjIl-_C0-ZbmRW3tyFM,24371
3
+ OTVision/dataformat.py,sha256=BHF7qHzyNb80hI1EKfwcdJ9bgG_X4bp_hCXzdg7_MSA,1941
4
+ OTVision/version.py,sha256=hg37ZIKD--k-ygX1n3HmsaIYwlaSQQT7L32Crd0BdTQ,175
5
+ OTVision/abstraction/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ OTVision/abstraction/observer.py,sha256=ZFGxUUjI3wUpf5ogXg2yDe-QjCcXre6SxH5zOogOx2U,1350
7
+ OTVision/abstraction/pipes_and_filter.py,sha256=rzYaWDalXnlMbfpkgI91a0FL0q1llUlCRuIQsidYDv8,940
8
+ OTVision/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ OTVision/application/buffer.py,sha256=L2x3S2UsMKu-OD6DXWwjSjwmClE44zh_8PI1RotOdmI,1137
10
+ OTVision/application/configure_logger.py,sha256=RmRgYkvSXWqpFX3N2n0h2LDna3uL8AY-yfVZU66t5q4,611
11
+ OTVision/application/frame_count_provider.py,sha256=zN_75IM-w9Xlc5rT8OArhiWhPHR8mUfFhdzhSmQQuaM,693
12
+ OTVision/application/get_config.py,sha256=fRJZUWJvlTed6qriw82-B-05CAqfBma6NQ23WrKqYdE,771
13
+ OTVision/application/get_current_config.py,sha256=RPVexRhJxY4ul8sU0W2OJaj98eTJxMlP-CiioQZCpEI,299
14
+ OTVision/application/update_current_config.py,sha256=1p-F00myUofn-S97NMMfJ9SbemJiLKc_FS3ob_27YjM,321
15
+ OTVision/application/detect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ OTVision/application/detect/current_object_detector.py,sha256=dmPbZGIXE49TbBZP-KAZWPgiMEeyZKdiaD2VlLM1SxI,1380
17
+ OTVision/application/detect/current_object_detector_metadata.py,sha256=xai0UBEzxr-rxXCc8mTmNDECds7mdsw2sem5HZxvQ4Q,1017
18
+ OTVision/application/detect/detected_frame_factory.py,sha256=x7FPckcqVVov912ysBiUVvn6eVn3-rqd2rjzXrZBNrY,932
19
+ OTVision/application/detect/detected_frame_producer.py,sha256=hUxmA2wx-OXRAjGZieDfsvRQUaJN7IT42R1Po4iUPhA,943
20
+ OTVision/application/detect/detection_file_save_path_provider.py,sha256=nUyzgR7imrH8PkUl_72kdUDiolPXq1_RQqbpFwLI5Cs,2165
21
+ OTVision/application/detect/factory.py,sha256=UWQHqpaT6FyhMTzTIBSGR06_Hxo8HKM2-IlSpP_djYA,926
22
+ OTVision/application/detect/get_detect_cli_args.py,sha256=gezr17im8SwbuXW1suCodWRrFs8lSljNKu76SbWBgkY,265
23
+ OTVision/application/detect/timestamper.py,sha256=us9l1GaPnSfMrUZQ5UEDBPX787ypeUiUtpOZm3JpgM0,653
24
+ OTVision/application/detect/update_detect_config_with_cli_args.py,sha256=NP4asZx792JivYnH-9jDj72yjITkyObiJcWObf13M4U,3723
25
+ OTVision/convert/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ OTVision/convert/convert.py,sha256=vRIFcrAUf9MUWAuvF_q7JQ9aN89B1ouBOCtXrCLuDp8,11013
27
+ OTVision/detect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ OTVision/detect/builder.py,sha256=fOhbspd4TuCJMDR2Vvbc4hOJqyfHTo2f6x7l_wf-IiA,6971
29
+ OTVision/detect/cli.py,sha256=U2kXxfHWuxcsWMFfnfj_2ieOOIWw8yosYicucnddn2c,6026
30
+ OTVision/detect/detect.py,sha256=YaVS-DJXdEmh-OzwE31UPNl2uk7mcFyO_CKKTgMeiuM,1328
31
+ OTVision/detect/detected_frame_buffer.py,sha256=SlnwWIqvJsSp-qt9u5Vk094JCnhfpr5luA6A2h5ZRVc,1336
32
+ OTVision/detect/otdet.py,sha256=VsprZPBH2hUna9wYQBAQVM9rM4X9L7cD5aNS9N5RFr0,4485
33
+ OTVision/detect/otdet_file_writer.py,sha256=9xeBD5I44Yp3DblZWpnOQuBVRWDQ2eObyevmBid2Wyw,4252
34
+ OTVision/detect/pyav_frame_count_provider.py,sha256=w7p9iM3F2fljV8SD7q491gQhIHANbVczqtalcUiKj-E,453
35
+ OTVision/detect/timestamper.py,sha256=4wsbkv-ex4zGhPCcYWqQQ2JbqVVPCmVzoT2U6efsy-o,5232
36
+ OTVision/detect/video_input_source.py,sha256=AoFn4OJvRYSZ63qEhZ_gk0ptPFBTZc37uaptFyPoZNc,8557
37
+ OTVision/detect/yolo.py,sha256=h4RTUP5RYTKe4QNy19D_8A6MeNv3lVTDRhShTnOX_as,9845
38
+ OTVision/detect/plugin_av/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
+ OTVision/detect/plugin_av/rotate_frame.py,sha256=4wJqTYI2HRlfa4p2Ffap33vLmKIzE_EwFvQraEkQ4R8,1055
40
+ OTVision/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
+ OTVision/domain/cli.py,sha256=XRIDSv4TJvXxwJw1UVznHSpaeUIRiikCabyGuiwh_2o,1049
42
+ OTVision/domain/current_config.py,sha256=TKb6Nuei8n2v6k873w0AkDNAnvSwqphdi5h6hlZ4Y5k,274
43
+ OTVision/domain/detect_producer_consumer.py,sha256=hWrK3Hh62Opm8t4uWASMw1MTSp1xtZYcE9cQiAfRzGs,859
44
+ OTVision/domain/detection.py,sha256=FGI1R8cgTfgL3WOnvsFNMIV2aU7Zu2W4q75T-86yxyg,343
45
+ OTVision/domain/frame.py,sha256=SKJlo_Gd9kRjD7JJR6GetBqiiJ7b1_Vn4KH4V6Q1iVA,751
46
+ OTVision/domain/input_source_detect.py,sha256=9DzkTg5dh7_KmxE9oxdmxrcTYhvZY8hHLZwhrh7Gz2o,1245
47
+ OTVision/domain/object_detection.py,sha256=gJ5Jd5uWGSjdIue-XKddb9krFynLZ59_XctMY4HE1ww,1288
48
+ OTVision/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ OTVision/helpers/date.py,sha256=XK0fmXMombQ2CJ2_RXjk-bc-R8qqXRK2rDmCMBi0_G0,854
50
+ OTVision/helpers/files.py,sha256=LMbXuLd7Nid565BtPJxv1SPqkvJhX4BF-yLJ8KMZavo,18118
51
+ OTVision/helpers/formats.py,sha256=YLo_QLA2nhVREyv5N-xNW20c4nIL7DIF40E1lrsAyLE,4365
52
+ OTVision/helpers/log.py,sha256=fOSMTXQRQ3_3zzYL8pDlx85IXPwyDsI2WGpK-V_R47Q,4985
53
+ OTVision/helpers/machine.py,sha256=8Bz_Eg7PS0IL4riOVeJcEIi5D9E8Ju8-JomTkW975p8,2166
54
+ OTVision/helpers/video.py,sha256=xyI35CiWXqoeGd3HeLhZUPxrLz8GccWyzHusxoweJr4,1480
55
+ OTVision/track/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
+ OTVision/track/iou.py,sha256=zpb4TbB34wZjUorhMLqMy6WspfsK-TkYvD75L-_ODM8,9491
57
+ OTVision/track/iou_util.py,sha256=mqylrarqiauSewinxOm9CSa6dgVSl8G9bpCv--2m02M,4465
58
+ OTVision/track/preprocess.py,sha256=QTKCdVWO8lj3mZ1nqDkKMLomHsiglCMYgqCe-zneick,14194
59
+ OTVision/track/track.py,sha256=fKDP6jQ2pDLwxJOiDUYqs9fD3W67fNgwO3l8zUTYOw4,15344
60
+ OTVision/transform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
+ OTVision/transform/get_homography.py,sha256=29waW61uzCCB7tlBAS2zck9sliAxZqnjjOa4jOOHHIc,5970
62
+ OTVision/transform/reference_points_picker.py,sha256=LOmwzCaqbJnXVhaTSaZtkCzTMDamYjbTpY8I99pN0rg,16578
63
+ OTVision/transform/transform.py,sha256=cv8HIX-uPYVQWLGHU-8OrkQjJ2cOh3GIZ13wqeI431w,12455
64
+ OTVision/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ OTVision/view/view.py,sha256=sBFGfr-lf8lG1BTaQ3Iu46GpZGhaVhSrqg8p5XUPJ4I,3302
66
+ OTVision/view/view_convert.py,sha256=NUtmrmAAFCYdQS1U2av_eYUScXugQYjhD3e3H0pro6Q,5157
67
+ OTVision/view/view_detect.py,sha256=E1JP9w5iv44hYkOr86In5d6V3sgn7Ld85KaRcY0oFZU,5951
68
+ OTVision/view/view_helpers.py,sha256=a5yV_6ZxO5bxsSymOmxdHqzOEv0VFq4wFBopVRGuVRo,16195
69
+ OTVision/view/view_track.py,sha256=ioHenonuTJQn8yDzlIDV8Jc1yzWA0GHbC9CotYGtxHQ,5389
70
+ OTVision/view/view_transform.py,sha256=HvRd8g8geKRy0OoiZUDn_oC3SJC5nuXhZf3uZelfGKg,5473
71
+ OTVision/view/helpers/OTC.ico,sha256=G9kwlDtgBXmXO3yxW6Z-xVFV2q4nUGuz9E1VPHSu_I8,21662
72
+ otvision-0.6.0.dist-info/METADATA,sha256=zVpew3Pg7uOrFOE7-a3RWmHQl56GNFWwpr2hAXNnOa0,2244
73
+ otvision-0.6.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
74
+ otvision-0.6.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
75
+ otvision-0.6.0.dist-info/RECORD,,
@@ -1,50 +0,0 @@
1
- OTVision/__init__.py,sha256=b2goS-TYrN9y8WHmjG22z1oVwCrjV0WtGJE32NJfvJM,1042
2
- OTVision/config.py,sha256=qCCg2MT_exTiTqEXq3pdqjhlfzQCg4yKKcGJSr7Wkp0,21951
3
- OTVision/dataformat.py,sha256=BHF7qHzyNb80hI1EKfwcdJ9bgG_X4bp_hCXzdg7_MSA,1941
4
- OTVision/version.py,sha256=Kp6XhppntIJbWnskYYUVoG5kd3sBxQU6_ayTXhl0Y-U,175
5
- OTVision/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- OTVision/application/configure_logger.py,sha256=RmRgYkvSXWqpFX3N2n0h2LDna3uL8AY-yfVZU66t5q4,611
7
- OTVision/application/get_config.py,sha256=fRJZUWJvlTed6qriw82-B-05CAqfBma6NQ23WrKqYdE,771
8
- OTVision/application/detect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- OTVision/application/detect/get_detect_cli_args.py,sha256=gezr17im8SwbuXW1suCodWRrFs8lSljNKu76SbWBgkY,265
10
- OTVision/application/detect/update_detect_config_with_cli_args.py,sha256=PxKosSR_4tlgJ-WpixrYHJJjUITpHGcD8ct9Fggpcys,3550
11
- OTVision/convert/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- OTVision/convert/convert.py,sha256=vRIFcrAUf9MUWAuvF_q7JQ9aN89B1ouBOCtXrCLuDp8,11013
13
- OTVision/detect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- OTVision/detect/builder.py,sha256=opd3RQ8ycm9Z75Z4OUiDXfP02bHvDslJcsfeKmLDwkw,1615
15
- OTVision/detect/cli.py,sha256=1t8TC9_R7PLeIA0hyE04rvJeFj1hAbPIEH6vqJF6cg8,5454
16
- OTVision/detect/detect.py,sha256=Hbr95vnUfsjQpUmbM8lCCjKdcTWMM1pZ-P0Kb2oRicU,11357
17
- OTVision/detect/otdet.py,sha256=BwRfbeDWGHwYAAgweDx2MY6IYwuHlZHfE-E059AVnOc,3634
18
- OTVision/detect/yolo.py,sha256=cxRUxIchy_KYxkYUHEYyBCM4PB7d6E_nUDk0fja6XJY,9181
19
- OTVision/detect/plugin_av/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- OTVision/detect/plugin_av/rotate_frame.py,sha256=4wJqTYI2HRlfa4p2Ffap33vLmKIzE_EwFvQraEkQ4R8,1055
21
- OTVision/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- OTVision/domain/cli.py,sha256=RbcgaqULJuzYGG36970EYAxKoiLdBbGn2rX-JHpaH40,1000
23
- OTVision/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- OTVision/helpers/date.py,sha256=XK0fmXMombQ2CJ2_RXjk-bc-R8qqXRK2rDmCMBi0_G0,854
25
- OTVision/helpers/files.py,sha256=JxO0ijcybBgIijIuA-9fnNhy-No0FAZCaE4RKMW0ie0,18116
26
- OTVision/helpers/formats.py,sha256=YLo_QLA2nhVREyv5N-xNW20c4nIL7DIF40E1lrsAyLE,4365
27
- OTVision/helpers/log.py,sha256=fOSMTXQRQ3_3zzYL8pDlx85IXPwyDsI2WGpK-V_R47Q,4985
28
- OTVision/helpers/machine.py,sha256=8Bz_Eg7PS0IL4riOVeJcEIi5D9E8Ju8-JomTkW975p8,2166
29
- OTVision/helpers/video.py,sha256=ZXG1rhD9OVk95mnfYVPbBwLKrRturgSRCsaOsGJVT2U,1324
30
- OTVision/track/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- OTVision/track/iou.py,sha256=zpb4TbB34wZjUorhMLqMy6WspfsK-TkYvD75L-_ODM8,9491
32
- OTVision/track/iou_util.py,sha256=mqylrarqiauSewinxOm9CSa6dgVSl8G9bpCv--2m02M,4465
33
- OTVision/track/preprocess.py,sha256=P7w6N5OwIzdoDNwP5QcHHxRXwy0_ITz5Nkpk_P34UVs,14120
34
- OTVision/track/track.py,sha256=fKDP6jQ2pDLwxJOiDUYqs9fD3W67fNgwO3l8zUTYOw4,15344
35
- OTVision/transform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
- OTVision/transform/get_homography.py,sha256=29waW61uzCCB7tlBAS2zck9sliAxZqnjjOa4jOOHHIc,5970
37
- OTVision/transform/reference_points_picker.py,sha256=LOmwzCaqbJnXVhaTSaZtkCzTMDamYjbTpY8I99pN0rg,16578
38
- OTVision/transform/transform.py,sha256=cv8HIX-uPYVQWLGHU-8OrkQjJ2cOh3GIZ13wqeI431w,12455
39
- OTVision/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- OTVision/view/view.py,sha256=sBFGfr-lf8lG1BTaQ3Iu46GpZGhaVhSrqg8p5XUPJ4I,3302
41
- OTVision/view/view_convert.py,sha256=NUtmrmAAFCYdQS1U2av_eYUScXugQYjhD3e3H0pro6Q,5157
42
- OTVision/view/view_detect.py,sha256=E1JP9w5iv44hYkOr86In5d6V3sgn7Ld85KaRcY0oFZU,5951
43
- OTVision/view/view_helpers.py,sha256=a5yV_6ZxO5bxsSymOmxdHqzOEv0VFq4wFBopVRGuVRo,16195
44
- OTVision/view/view_track.py,sha256=ioHenonuTJQn8yDzlIDV8Jc1yzWA0GHbC9CotYGtxHQ,5389
45
- OTVision/view/view_transform.py,sha256=HvRd8g8geKRy0OoiZUDn_oC3SJC5nuXhZf3uZelfGKg,5473
46
- OTVision/view/helpers/OTC.ico,sha256=G9kwlDtgBXmXO3yxW6Z-xVFV2q4nUGuz9E1VPHSu_I8,21662
47
- otvision-0.5.5.dist-info/METADATA,sha256=nV2WzHIOqSyo2CLe6tlzZuK8QcTbw1JEm2OIA2J8FIg,2244
48
- otvision-0.5.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
49
- otvision-0.5.5.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
50
- otvision-0.5.5.dist-info/RECORD,,