edgefirst-validator 4.2.1__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.
- deepview/modelpack/utils/argmax.py +16 -0
- edgefirst/validator/__init__.py +1 -0
- edgefirst/validator/__main__.py +375 -0
- edgefirst/validator/datasets/__init__.py +118 -0
- edgefirst/validator/datasets/cache.py +296 -0
- edgefirst/validator/datasets/core.py +250 -0
- edgefirst/validator/datasets/darknet.py +446 -0
- edgefirst/validator/datasets/database.py +1067 -0
- edgefirst/validator/datasets/instance/__init__.py +4 -0
- edgefirst/validator/datasets/instance/core.py +222 -0
- edgefirst/validator/datasets/instance/detection.py +145 -0
- edgefirst/validator/datasets/instance/multitask.py +80 -0
- edgefirst/validator/datasets/instance/segmentation.py +120 -0
- edgefirst/validator/datasets/utils/fetch.py +682 -0
- edgefirst/validator/datasets/utils/readers.py +425 -0
- edgefirst/validator/datasets/utils/transformations.py +1695 -0
- edgefirst/validator/evaluators/__init__.py +17 -0
- edgefirst/validator/evaluators/callbacks/__init__.py +3 -0
- edgefirst/validator/evaluators/callbacks/core.py +192 -0
- edgefirst/validator/evaluators/callbacks/plots.py +900 -0
- edgefirst/validator/evaluators/callbacks/studio.py +234 -0
- edgefirst/validator/evaluators/core.py +257 -0
- edgefirst/validator/evaluators/detection.py +749 -0
- edgefirst/validator/evaluators/multitask.py +270 -0
- edgefirst/validator/evaluators/parameters/__init__.py +53 -0
- edgefirst/validator/evaluators/parameters/core.py +554 -0
- edgefirst/validator/evaluators/parameters/dataset.py +239 -0
- edgefirst/validator/evaluators/parameters/model.py +338 -0
- edgefirst/validator/evaluators/parameters/validation.py +528 -0
- edgefirst/validator/evaluators/segmentation.py +729 -0
- edgefirst/validator/evaluators/utils/__init__.py +3 -0
- edgefirst/validator/evaluators/utils/classify.py +292 -0
- edgefirst/validator/evaluators/utils/match.py +262 -0
- edgefirst/validator/evaluators/utils/timer.py +132 -0
- edgefirst/validator/metrics/__init__.py +9 -0
- edgefirst/validator/metrics/data/__init__.py +7 -0
- edgefirst/validator/metrics/data/label.py +668 -0
- edgefirst/validator/metrics/data/metrics.py +759 -0
- edgefirst/validator/metrics/data/plots.py +476 -0
- edgefirst/validator/metrics/data/stats.py +507 -0
- edgefirst/validator/metrics/detection.py +595 -0
- edgefirst/validator/metrics/segmentation.py +173 -0
- edgefirst/validator/metrics/utils/math.py +717 -0
- edgefirst/validator/publishers/__init__.py +3 -0
- edgefirst/validator/publishers/console.py +147 -0
- edgefirst/validator/publishers/studio.py +128 -0
- edgefirst/validator/publishers/tensorboard.py +119 -0
- edgefirst/validator/publishers/utils/logger.py +111 -0
- edgefirst/validator/publishers/utils/table.py +403 -0
- edgefirst/validator/runners/__init__.py +8 -0
- edgefirst/validator/runners/core.py +727 -0
- edgefirst/validator/runners/deepviewrt.py +177 -0
- edgefirst/validator/runners/hailo.py +263 -0
- edgefirst/validator/runners/keras.py +150 -0
- edgefirst/validator/runners/kinara.py +265 -0
- edgefirst/validator/runners/offline.py +228 -0
- edgefirst/validator/runners/onnx.py +241 -0
- edgefirst/validator/runners/processing/decode.py +320 -0
- edgefirst/validator/runners/processing/dvapi.py +4192 -0
- edgefirst/validator/runners/processing/nms.py +637 -0
- edgefirst/validator/runners/processing/outputs.py +507 -0
- edgefirst/validator/runners/tensorrt.py +321 -0
- edgefirst/validator/runners/tflite.py +221 -0
- edgefirst/validator/validate.py +843 -0
- edgefirst/validator/visualize/__init__.py +3 -0
- edgefirst/validator/visualize/detection.py +623 -0
- edgefirst/validator/visualize/segmentation.py +281 -0
- edgefirst/validator/visualize/utils/plots.py +635 -0
- edgefirst_validator-4.2.1.dist-info/METADATA +111 -0
- edgefirst_validator-4.2.1.dist-info/RECORD +73 -0
- edgefirst_validator-4.2.1.dist-info/WHEEL +5 -0
- edgefirst_validator-4.2.1.dist-info/entry_points.txt +2 -0
- edgefirst_validator-4.2.1.dist-info/top_level.txt +2 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: edgefirst-validator
|
|
3
|
+
Version: 4.2.1
|
|
4
|
+
Summary: EdgeFirst Validator
|
|
5
|
+
Requires-Python: >=3.8
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: tqdm
|
|
8
|
+
Requires-Dist: Pillow
|
|
9
|
+
Requires-Dist: PyYAML
|
|
10
|
+
Requires-Dist: matplotlib
|
|
11
|
+
Requires-Dist: seaborn
|
|
12
|
+
Requires-Dist: requests
|
|
13
|
+
Requires-Dist: numpy<2
|
|
14
|
+
Requires-Dist: lmdb
|
|
15
|
+
Requires-Dist: polars
|
|
16
|
+
Requires-Dist: edgefirst-client
|
|
17
|
+
Provides-Extra: keras
|
|
18
|
+
Requires-Dist: tensorflow[and-cuda]; extra == "keras"
|
|
19
|
+
Provides-Extra: onnx
|
|
20
|
+
Requires-Dist: onnxruntime-gpu; extra == "onnx"
|
|
21
|
+
Provides-Extra: tensorrt
|
|
22
|
+
Requires-Dist: tensorrt; extra == "tensorrt"
|
|
23
|
+
Requires-Dist: pycuda; extra == "tensorrt"
|
|
24
|
+
Provides-Extra: tflite
|
|
25
|
+
Requires-Dist: tflite_runtime; extra == "tflite"
|
|
26
|
+
Provides-Extra: studio
|
|
27
|
+
Requires-Dist: tensorflow[and-cuda]; extra == "studio"
|
|
28
|
+
Requires-Dist: onnxruntime-gpu; extra == "studio"
|
|
29
|
+
Requires-Dist: torch; extra == "studio"
|
|
30
|
+
Requires-Dist: torchvision; extra == "studio"
|
|
31
|
+
Requires-Dist: opencv-python-headless; extra == "studio"
|
|
32
|
+
|
|
33
|
+
# EdgeFirst Validator
|
|
34
|
+
|
|
35
|
+
This repository contains the Packer configuration, entrypoint script, and the validation implementation used by EdgeFirst Studio to perform validation of Vision (detection, segmentation, multitask) models with support for Keras, ONNX, TensorRT, and TFLite either on the cloud or on target validation.
|
|
36
|
+
|
|
37
|
+
## Overview
|
|
38
|
+
- [Changelog](#changelog)
|
|
39
|
+
- [Installation](#installation)
|
|
40
|
+
- [Usage](#usage)
|
|
41
|
+
- [Documentation](#documentation)
|
|
42
|
+
|
|
43
|
+
## Changelog
|
|
44
|
+
- Aug 24, 2025 [v4.1.0]: Added ModelPack external decoding. Added Keras support. Added TP vs FP scores chart. Removed +1 padding to the NumPy NMS.
|
|
45
|
+
- June 16, 2025 [v4.0.0]: EdgeFirst Validator (formerly Deep View Validator) - Ultralytics metrics and EdgeFirst Studio integrations.
|
|
46
|
+
|
|
47
|
+
## Installation
|
|
48
|
+
|
|
49
|
+
For on target validation, the system may already contain the dependencies needed to run the model such as `tflite_runtime` for TensorFlow Lite. In such cases, it is recommended to first [create a python virtual environment](https://docs.python.org/3/library/venv.html#creating-virtual-environments) with the `--system-site-packages` option enabled.
|
|
50
|
+
|
|
51
|
+
EdgeFirst-Validator is available in PyPI and can be installed via pip.
|
|
52
|
+
|
|
53
|
+
```shell
|
|
54
|
+
pip install edgefirst-validator
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Validation of specific models requires these installations which includes the packages needed to run the models, in case the system at present does not contain these packages.
|
|
58
|
+
|
|
59
|
+
* Keras `pip install edgefirst-validator[keras]`
|
|
60
|
+
* ONNX: `pip install edgefirst-validator[onnx]`
|
|
61
|
+
* TensorRT: `pip install edgefirst-validator[tensorrt]`
|
|
62
|
+
* TFLite: `pip install edgefirst-validator[tflite]`
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
## Usage
|
|
66
|
+
|
|
67
|
+
1. As a quickstart, deploy default validation of a YOLOv5 model with COCO128 dataset.
|
|
68
|
+
|
|
69
|
+
```shell
|
|
70
|
+
edgefirst-validator
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
2. Deploy validation as a user-managed session in EdgeFirst Studio. First login with EdgeFirst Client.
|
|
74
|
+
|
|
75
|
+
```shell
|
|
76
|
+
edgefirst-client login
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
```shell
|
|
80
|
+
edgefirst-validator --session-id <validator session ID>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Otherwise, you can specify the credentials directly.
|
|
84
|
+
|
|
85
|
+
```shell
|
|
86
|
+
edgefirst-validator --token <token> --session-id <validator session ID>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
```shell
|
|
90
|
+
edgefirst-validator --username <username> --password <password> --session-id <Validator Session ID>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
3. Deploy standalone validation.
|
|
94
|
+
|
|
95
|
+
```shell
|
|
96
|
+
edgefirst-validator <model path> <dataset path>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Documentation
|
|
100
|
+
|
|
101
|
+
Run the following commands to generate the documentation.
|
|
102
|
+
|
|
103
|
+
```shell
|
|
104
|
+
cd doc
|
|
105
|
+
pip install -r requirements.txt
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
```shell
|
|
109
|
+
make clean
|
|
110
|
+
make html
|
|
111
|
+
```
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
deepview/modelpack/utils/argmax.py,sha256=_Oxk8CnxeO1Cgzqz5pEKJLGd0RPIuSI8nH3valZDOPE,410
|
|
2
|
+
edgefirst/validator/__init__.py,sha256=VOZQXJJgKJWk3sL90fY4DfBIyLB4nT1vLtvU5G_1lSo,22
|
|
3
|
+
edgefirst/validator/__main__.py,sha256=9CmxKhR9Z5-fqvansglhvI-fr6iht0TL8oG0RWCUREA,12535
|
|
4
|
+
edgefirst/validator/validate.py,sha256=qM6P3QA5JEg3GRBUm8yrrIBvUiXyuP6S6xmV0qgyR68,29745
|
|
5
|
+
edgefirst/validator/datasets/__init__.py,sha256=ik_X7g5izeX81T4R597HpuJaAhysmyMwzS5EHPL_YVo,4046
|
|
6
|
+
edgefirst/validator/datasets/cache.py,sha256=Y7BJvIXeulhm9eGOTvJjmdIsNRZEGUFH2iNbXeaba44,10185
|
|
7
|
+
edgefirst/validator/datasets/core.py,sha256=sgMeQ4005rZS6fJoghXIwJ8fEpGc-cvXqEy_Va7vo1A,8053
|
|
8
|
+
edgefirst/validator/datasets/darknet.py,sha256=fG4O3nN0Qif4Ut-XeR6awjpP-J8GdkXHWew8tdTJdp8,16662
|
|
9
|
+
edgefirst/validator/datasets/database.py,sha256=1R8rAoVP6ZyAecCLOFzoO24RglKq9FiuYf5ALdiY7pc,37812
|
|
10
|
+
edgefirst/validator/datasets/instance/__init__.py,sha256=u28K3u91yo8fxa1Ma8CM5nU5hfQlUmwbr3qZ4-GXokc,304
|
|
11
|
+
edgefirst/validator/datasets/instance/core.py,sha256=mtZSDLlGqQ_RpY7TUhzQws-p2TSWPfUvx4wsjFvBvGk,5437
|
|
12
|
+
edgefirst/validator/datasets/instance/detection.py,sha256=lG2tAzCP1UMTVS_x9WJjFTgJUIzFTeAsVARC-CAmsAM,4120
|
|
13
|
+
edgefirst/validator/datasets/instance/multitask.py,sha256=gF2sgROVlLq_zXODRMH0sb6jiSSxtQvMA4HDakNt04M,2303
|
|
14
|
+
edgefirst/validator/datasets/instance/segmentation.py,sha256=f7I9cE8Zl0d4ns0yuGVXT9GzmE-1rfT_Up7W4RBNS5o,3395
|
|
15
|
+
edgefirst/validator/datasets/utils/fetch.py,sha256=qbIxIBKKpQ7WqFXDHnqHQQuPd13Bgdpo34eTqfAdVxA,20756
|
|
16
|
+
edgefirst/validator/datasets/utils/readers.py,sha256=cZxabK9peOc-1GG80G2gQtw2g0LbJ9vfT6L4W-yka2U,12559
|
|
17
|
+
edgefirst/validator/datasets/utils/transformations.py,sha256=CCYIO-t7ddcWS9XzSstPNnaHQkr19ePR7nUcgplAQ9M,52871
|
|
18
|
+
edgefirst/validator/evaluators/__init__.py,sha256=wMSLIPqkxqXWN90ujVI6ksjWdhi1_U6RTp_esKrZ_CY,1237
|
|
19
|
+
edgefirst/validator/evaluators/core.py,sha256=de4a78th6zbWQzXOYzkuaLiTw4-LmhbaTv2kH7Phi0I,9495
|
|
20
|
+
edgefirst/validator/evaluators/detection.py,sha256=pA1GUNmzVkvu7CxzwX8GdpLtUVJULEbWEi5iZ1kTqnA,29009
|
|
21
|
+
edgefirst/validator/evaluators/multitask.py,sha256=semBAe2-blogniUryL1P5spZgIfClRTZl3xtKso6BXs,9600
|
|
22
|
+
edgefirst/validator/evaluators/segmentation.py,sha256=R6mnkVZ2Xp9lNiYBEv5ayrMSKgkvtW9jdjjHIkjlCYQ,28024
|
|
23
|
+
edgefirst/validator/evaluators/callbacks/__init__.py,sha256=QUsHamggz3rMSrocCCoh2FzhWnY4GwQTqYFxm5TX5to,230
|
|
24
|
+
edgefirst/validator/evaluators/callbacks/core.py,sha256=0SUU8DXuVPx2PxgPVCBMTDSkpcvbSapTUnOXwPb5KH8,5502
|
|
25
|
+
edgefirst/validator/evaluators/callbacks/plots.py,sha256=hh-qif0kEWHPWk5AWLjOQtSBuSto7_StcTJOuVgB8ls,30307
|
|
26
|
+
edgefirst/validator/evaluators/callbacks/studio.py,sha256=3uvaflexzDGde2IWi3kHFkWWd-P5Ofwb0SPcjjsBtNQ,8542
|
|
27
|
+
edgefirst/validator/evaluators/parameters/__init__.py,sha256=EAmhY0GFw9EVuroNwqxT9qovineEQUZGvLQD9NAX7V0,2018
|
|
28
|
+
edgefirst/validator/evaluators/parameters/core.py,sha256=3Caj4KH0GKV5tNhI_Ep22HwU1LwvVFTcpIMnmKOJLEg,15862
|
|
29
|
+
edgefirst/validator/evaluators/parameters/dataset.py,sha256=XzCyTYQ5pAynYPTicaYIm6ywZNJwi4lJcuPrx7Tx_AM,7193
|
|
30
|
+
edgefirst/validator/evaluators/parameters/model.py,sha256=plkTc-d6E6cLga7CPd6CDEc7npemz_I7C9aZyULcmbo,10147
|
|
31
|
+
edgefirst/validator/evaluators/parameters/validation.py,sha256=6Z3RmBsfBlCe7P0uBz69PbMydXhp15-tqyEKgvQDD2s,16065
|
|
32
|
+
edgefirst/validator/evaluators/utils/__init__.py,sha256=lLb9I9g9xQDwvJuljZRwEebfSL0Ofh8k2P3V0j5Gmt0,209
|
|
33
|
+
edgefirst/validator/evaluators/utils/classify.py,sha256=yk5hcn6wpv8nzrENt53FdLxgN_2u7HxG9VM9xiLMzMA,11079
|
|
34
|
+
edgefirst/validator/evaluators/utils/match.py,sha256=OeqX5zkcKrtmSmyLAYeRmQNHQuhfuohLHQSke26Wve8,9894
|
|
35
|
+
edgefirst/validator/evaluators/utils/timer.py,sha256=ccYX2-8rYHMUInkCC204oNYzHKdG3gwHXsbLPnGg-A8,3933
|
|
36
|
+
edgefirst/validator/metrics/__init__.py,sha256=vZqkpBTdlZb67GyUORF18eznKJIZJ5nOIPTg16epqiY,641
|
|
37
|
+
edgefirst/validator/metrics/detection.py,sha256=NmybFjlDbV8da8e20v2Kpew01ajYyHCkGi8-0qbd3go,21152
|
|
38
|
+
edgefirst/validator/metrics/segmentation.py,sha256=24frEvRiZeIGQjQ70hGdeghoKmNRkXfra_0piW4aGO8,6308
|
|
39
|
+
edgefirst/validator/metrics/data/__init__.py,sha256=ORuEMGbjNX25y1YcrTBWASn7rnehWULk9eMgKHxF20c,501
|
|
40
|
+
edgefirst/validator/metrics/data/label.py,sha256=ZSo5l8DAx_sjagHfGN56_lVT2sHhFlopfxhoHlGJjEk,19797
|
|
41
|
+
edgefirst/validator/metrics/data/metrics.py,sha256=JKPThCstxvmSwK0JudMP4100FpJVTb8tXgmaLInnznA,19405
|
|
42
|
+
edgefirst/validator/metrics/data/plots.py,sha256=R0AqMrOk0hjhBgSRXWACWB819OlpUGzfgHHSMQ8Ab5s,12592
|
|
43
|
+
edgefirst/validator/metrics/data/stats.py,sha256=0YynFm-EAdLHfTIgSMmP7nUVQ3uYd1051RRMIO9RR5M,14679
|
|
44
|
+
edgefirst/validator/metrics/utils/math.py,sha256=HRgnK9HlsrulRKuru3kHktv_jj3UyzoLfqlKRwiNCco,20741
|
|
45
|
+
edgefirst/validator/publishers/__init__.py,sha256=-EtPvbGaTIFi72dMHoJGn9rJUYIIQD-F2Eiuk5mctNc,210
|
|
46
|
+
edgefirst/validator/publishers/console.py,sha256=00lbVq6GyiOvRGXlqwpOmijO0-ku_KYIxa6dwNXmL7c,5452
|
|
47
|
+
edgefirst/validator/publishers/studio.py,sha256=Egg2BVPcUpueE5bC1aDzo4jEdlZoimqpE15HEoAylko,3829
|
|
48
|
+
edgefirst/validator/publishers/tensorboard.py,sha256=quJFbc6g1WoOmDx2Kj1Sa1C2d1tf0e1o0h2jbS_lL9o,3735
|
|
49
|
+
edgefirst/validator/publishers/utils/logger.py,sha256=pRbUFevBHf1Nh9U4jDcx4oMItc9b5QqoSahPmVxtNY4,2567
|
|
50
|
+
edgefirst/validator/publishers/utils/table.py,sha256=A-Cp3jNxPr8Z4zFHo14KK0DynWelY7WWEUnjx6T6lQA,22117
|
|
51
|
+
edgefirst/validator/runners/__init__.py,sha256=L904l6x3c8_dYpq9XIQWGeTN1zf4AX4mkMyenHErEXM,480
|
|
52
|
+
edgefirst/validator/runners/core.py,sha256=bb1Ieo7Zi7SoiIzhxG8qZ-vacSucESbH1zpplMKGTBI,29582
|
|
53
|
+
edgefirst/validator/runners/deepviewrt.py,sha256=0sGUpj8eJgRyySSMZmh4n-095f2TDcjpQhjIgPhscZ0,5832
|
|
54
|
+
edgefirst/validator/runners/hailo.py,sha256=CXQ-eTiyZ41jbLpOHrjep6XTBgLSvLWdtFLgIyt-DoM,9285
|
|
55
|
+
edgefirst/validator/runners/keras.py,sha256=qiAlt1C5UctnkbdVp3oyBETamAlFd8pwxhg6HqrmPP4,4814
|
|
56
|
+
edgefirst/validator/runners/kinara.py,sha256=577Kjdx-aZYMUDX5OoVy-aKsQunONuDIGRM2-PTFJ2k,8294
|
|
57
|
+
edgefirst/validator/runners/offline.py,sha256=8rZgwBsQq8sl4y3v6zsykWhpMMeNrgDcNRFW5zoQ3mc,9523
|
|
58
|
+
edgefirst/validator/runners/onnx.py,sha256=6m01axn0C26gfgDcdvz1otPQjGrY_EeAOuMrJaJnIIQ,8939
|
|
59
|
+
edgefirst/validator/runners/tensorrt.py,sha256=QLzT-bjOWm9lTVQ-PFa6ExPsovTVZjd-zBZpzp-mR5U,10865
|
|
60
|
+
edgefirst/validator/runners/tflite.py,sha256=_CUPKVFgvvS4dn68jFm0L4BM4gKOlLr4Vpa38mp_25s,8004
|
|
61
|
+
edgefirst/validator/runners/processing/decode.py,sha256=kUqMq87eFjWT_3wemhLC2ZjhtUyChvTyJvxn1Kar90w,9380
|
|
62
|
+
edgefirst/validator/runners/processing/dvapi.py,sha256=gRQKTI7Wd_0OL3EORDVNBXEyHdsh7aWejqg2XONC3Fw,144938
|
|
63
|
+
edgefirst/validator/runners/processing/nms.py,sha256=mcfhYEQ9hhpy6VbGQDm_9VOGonuBDzwRhZI2MSjV3kU,20994
|
|
64
|
+
edgefirst/validator/runners/processing/outputs.py,sha256=-dAxgCywxR2c7FLPJUnL1lrSMqVPFvQ1kI55DOWpw64,20112
|
|
65
|
+
edgefirst/validator/visualize/__init__.py,sha256=wwOcq-gQgN10U0FvDFZ7wjtOedWZCCYqZglRpJLV0QE,204
|
|
66
|
+
edgefirst/validator/visualize/detection.py,sha256=dgiziKGaUiljRO2Dg-r7LmXGPW0k73kKvuTSyHEhkdc,21774
|
|
67
|
+
edgefirst/validator/visualize/segmentation.py,sha256=JpFJGNO8VwwJiGG8cecPu0cx3XxzKRhYNOtSvPYb2XM,9233
|
|
68
|
+
edgefirst/validator/visualize/utils/plots.py,sha256=dSR3GEHWDo7l4vFVzHNKr3QRHSljCoH6eFMqOSifJb8,21356
|
|
69
|
+
edgefirst_validator-4.2.1.dist-info/METADATA,sha256=Wlow_nuE-jxvqNytcR4KlYcS-8aDgkWWuEUbWz_8mhM,3537
|
|
70
|
+
edgefirst_validator-4.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
71
|
+
edgefirst_validator-4.2.1.dist-info/entry_points.txt,sha256=CeUaweeNVLWy2JbzipvRmSpD1LZa1OcBLGTboTSbuI0,74
|
|
72
|
+
edgefirst_validator-4.2.1.dist-info/top_level.txt,sha256=ds-zTHD47a9Oa_hsw-iiZiHFAgVeoHzqT0FI52Dp67M,19
|
|
73
|
+
edgefirst_validator-4.2.1.dist-info/RECORD,,
|