wavedl 1.6.2__py3-none-any.whl → 1.7.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.
- wavedl/__init__.py +1 -1
- wavedl/hpo.py +115 -9
- wavedl/models/__init__.py +22 -0
- wavedl/models/_pretrained_utils.py +72 -0
- wavedl/models/_template.py +7 -6
- wavedl/models/cnn.py +20 -0
- wavedl/models/convnext.py +3 -70
- wavedl/models/convnext_v2.py +1 -18
- wavedl/models/mamba.py +126 -38
- wavedl/models/resnet3d.py +23 -5
- wavedl/models/unireplknet.py +1 -18
- wavedl/models/vit.py +18 -8
- wavedl/test.py +13 -23
- wavedl/train.py +494 -28
- wavedl/utils/__init__.py +49 -9
- wavedl/utils/config.py +6 -8
- wavedl/utils/cross_validation.py +17 -4
- wavedl/utils/data.py +176 -180
- wavedl/utils/metrics.py +26 -5
- wavedl/utils/schedulers.py +2 -2
- {wavedl-1.6.2.dist-info → wavedl-1.7.0.dist-info}/METADATA +37 -18
- wavedl-1.7.0.dist-info/RECORD +46 -0
- wavedl-1.6.2.dist-info/RECORD +0 -46
- {wavedl-1.6.2.dist-info → wavedl-1.7.0.dist-info}/LICENSE +0 -0
- {wavedl-1.6.2.dist-info → wavedl-1.7.0.dist-info}/WHEEL +0 -0
- {wavedl-1.6.2.dist-info → wavedl-1.7.0.dist-info}/entry_points.txt +0 -0
- {wavedl-1.6.2.dist-info → wavedl-1.7.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: wavedl
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.7.0
|
|
4
4
|
Summary: A Scalable Deep Learning Framework for Wave-Based Inverse Problems
|
|
5
5
|
Author: Ductho Le
|
|
6
6
|
License: MIT
|
|
@@ -214,11 +214,11 @@ This installs everything you need: training, inference, HPO, ONNX export.
|
|
|
214
214
|
```bash
|
|
215
215
|
git clone https://github.com/ductho-le/WaveDL.git
|
|
216
216
|
cd WaveDL
|
|
217
|
-
pip install -e .
|
|
217
|
+
pip install -e ".[dev]"
|
|
218
218
|
```
|
|
219
219
|
|
|
220
220
|
> [!NOTE]
|
|
221
|
-
> Python 3.11+ required. For
|
|
221
|
+
> Python 3.11+ required. For contributor setup (pre-commit hooks), see [CONTRIBUTING.md](.github/CONTRIBUTING.md).
|
|
222
222
|
|
|
223
223
|
### Quick Start
|
|
224
224
|
|
|
@@ -273,8 +273,6 @@ accelerate launch --num_machines 2 --main_process_ip <ip> -m wavedl.train --mode
|
|
|
273
273
|
|
|
274
274
|
### Testing & Inference
|
|
275
275
|
|
|
276
|
-
After training, use `wavedl-test` to evaluate your model on test data:
|
|
277
|
-
|
|
278
276
|
```bash
|
|
279
277
|
# Basic inference
|
|
280
278
|
wavedl-test --checkpoint <checkpoint_folder> --data_path <test_data>
|
|
@@ -909,18 +907,24 @@ Automatically find the best training configuration using [Optuna](https://optuna
|
|
|
909
907
|
**Run HPO:**
|
|
910
908
|
|
|
911
909
|
```bash
|
|
912
|
-
# Basic HPO (auto-detects GPUs
|
|
913
|
-
wavedl-hpo --data_path train.npz --
|
|
910
|
+
# Basic HPO (50 trials, auto-detects GPUs)
|
|
911
|
+
wavedl-hpo --data_path train.npz --n_trials 50
|
|
912
|
+
|
|
913
|
+
# Quick search (minimal search space, fastest)
|
|
914
|
+
wavedl-hpo --data_path train.npz --n_trials 30 --quick
|
|
914
915
|
|
|
915
|
-
#
|
|
916
|
-
wavedl-hpo --data_path train.npz --
|
|
916
|
+
# Medium search (balanced between quick and full)
|
|
917
|
+
wavedl-hpo --data_path train.npz --n_trials 50 --medium
|
|
917
918
|
|
|
918
|
-
#
|
|
919
|
-
wavedl-hpo --data_path train.npz --models cnn
|
|
919
|
+
# Full search with specific models
|
|
920
|
+
wavedl-hpo --data_path train.npz --n_trials 100 --models cnn resnet18 efficientnet_b0
|
|
921
|
+
|
|
922
|
+
# In-process mode (enables pruning, faster, single-GPU)
|
|
923
|
+
wavedl-hpo --data_path train.npz --n_trials 50 --inprocess
|
|
920
924
|
```
|
|
921
925
|
|
|
922
926
|
> [!TIP]
|
|
923
|
-
> **
|
|
927
|
+
> **GPU Detection**: HPO auto-detects GPUs and runs one trial per GPU in parallel. Use `--inprocess` for single-GPU with pruning support (early stopping of bad trials).
|
|
924
928
|
|
|
925
929
|
**Train with best parameters**
|
|
926
930
|
|
|
@@ -942,10 +946,23 @@ wavedl-train --data_path train.npz --model cnn --lr 3.2e-4 --batch_size 128 ...
|
|
|
942
946
|
| Learning rate | 1e-5 → 1e-2 | (always searched) |
|
|
943
947
|
| Batch size | 16, 32, 64, 128 | (always searched) |
|
|
944
948
|
|
|
945
|
-
**
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
+
**Search Presets:**
|
|
950
|
+
|
|
951
|
+
| Mode | Models | Optimizers | Schedulers | Use Case |
|
|
952
|
+
|------|--------|------------|------------|----------|
|
|
953
|
+
| Full (default) | cnn, resnet18, resnet34 | all 6 | all 8 | Production search |
|
|
954
|
+
| `--medium` | cnn, resnet18 | adamw, adam, sgd | plateau, cosine, onecycle | Balanced exploration |
|
|
955
|
+
| `--quick` | cnn | adamw | plateau | Fast validation |
|
|
956
|
+
|
|
957
|
+
**Execution Modes:**
|
|
958
|
+
|
|
959
|
+
| Mode | Flag | Pruning | GPU Memory | Best For |
|
|
960
|
+
|------|------|---------|------------|----------|
|
|
961
|
+
| Subprocess (default) | — | ❌ No | Isolated | Multi-GPU parallel trials |
|
|
962
|
+
| In-process | `--inprocess` | ✅ Yes | Shared | Single-GPU with early stopping |
|
|
963
|
+
|
|
964
|
+
> [!TIP]
|
|
965
|
+
> Use `--inprocess` when running single-GPU trials. It enables MedianPruner to stop unpromising trials early, reducing total search time.
|
|
949
966
|
|
|
950
967
|
---
|
|
951
968
|
|
|
@@ -956,7 +973,9 @@ wavedl-train --data_path train.npz --model cnn --lr 3.2e-4 --batch_size 128 ...
|
|
|
956
973
|
| `--data_path` | (required) | Training data file |
|
|
957
974
|
| `--models` | 3 defaults | Models to search (specify any number) |
|
|
958
975
|
| `--n_trials` | `50` | Number of trials to run |
|
|
959
|
-
| `--quick` | `False` |
|
|
976
|
+
| `--quick` | `False` | Quick mode: minimal search space |
|
|
977
|
+
| `--medium` | `False` | Medium mode: balanced search space |
|
|
978
|
+
| `--inprocess` | `False` | Run trials in-process (enables pruning) |
|
|
960
979
|
| `--optimizers` | all 6 | Optimizers to search |
|
|
961
980
|
| `--schedulers` | all 8 | Schedulers to search |
|
|
962
981
|
| `--losses` | all 6 | Losses to search |
|
|
@@ -965,7 +984,7 @@ wavedl-train --data_path train.npz --model cnn --lr 3.2e-4 --batch_size 128 ...
|
|
|
965
984
|
| `--output` | `hpo_results.json` | Output file |
|
|
966
985
|
|
|
967
986
|
|
|
968
|
-
> See [Available Models](#available-models) for all
|
|
987
|
+
> See [Available Models](#available-models) for all 69 architectures you can search.
|
|
969
988
|
|
|
970
989
|
</details>
|
|
971
990
|
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
wavedl/__init__.py,sha256=Ol1M5mok2rnnUKDPBZLQDBDwKn7_LV9iTxds5obDeJk,1177
|
|
2
|
+
wavedl/hpo.py,sha256=TyEWubL-adQJyRmSv1M1SnJvH7_vTlXJATI1ElxXVUU,18991
|
|
3
|
+
wavedl/launcher.py,sha256=_CFlgpKgHrtZebl1yQbJZJEcob06Y9-fqnRYzwW7UJQ,11776
|
|
4
|
+
wavedl/test.py,sha256=_6i6F1KkO24cC0RtvxcwAGxDUbU6VV12efDWFGojkeE,38466
|
|
5
|
+
wavedl/train.py,sha256=U0-hHo4wba1dhZ2jjaCFURiS6aGHuPDGz0zPwPm2Kc0,72722
|
|
6
|
+
wavedl/models/__init__.py,sha256=hyR__h_D8PsUQCBSM5tj94yYK00uG8ABjEmj_RR8SGE,5719
|
|
7
|
+
wavedl/models/_pretrained_utils.py,sha256=br--ZrgqndYCO_iAeQOvUDg6ZxzGDyLZFeWu1Qj_DrI,14756
|
|
8
|
+
wavedl/models/_template.py,sha256=nEixVS8e82Tud08Uk8jkXtriGhk_WFbqSaGDq_Mj4ak,4684
|
|
9
|
+
wavedl/models/base.py,sha256=bDoHYFli-aR8amcFYXbF98QYaKSCEwZWpvOhN21ODro,9075
|
|
10
|
+
wavedl/models/caformer.py,sha256=ufPM-HzQ-qUZcXgnOulurY6jBUlMUzokC01whtPeVMg,7922
|
|
11
|
+
wavedl/models/cnn.py,sha256=dOmCrHGXd8Md8ixbJ_-An9t80tm36sVY84je2EDmnZA,8256
|
|
12
|
+
wavedl/models/convnext.py,sha256=GoLId2HClsOksuL3XLscEIytrmOBPGhO6UhGn04yDp4,13354
|
|
13
|
+
wavedl/models/convnext_v2.py,sha256=jPPXTZbQQ8zE9yGVWTNUaI5g1d0xIxBjrLuUHUKc5mM,14349
|
|
14
|
+
wavedl/models/densenet.py,sha256=V_caGd0wsG_Q3Q38I4MEgYmU0v4j8mDyvv7Rn3Bk7Ac,12667
|
|
15
|
+
wavedl/models/efficientnet.py,sha256=HWfhqSX57lC5Xug5TrQ3r-uFqkksoIKjmQ5Zr5njkEA,8264
|
|
16
|
+
wavedl/models/efficientnetv2.py,sha256=hVSnVId8T1rjqaKlckLqWFwvo2J-qASX7o9lMbXbP-s,10947
|
|
17
|
+
wavedl/models/efficientvit.py,sha256=KqFoZq9YHBMnTue6aMdPKgBOMczeBPryY_F6ip0hoEI,11630
|
|
18
|
+
wavedl/models/fastvit.py,sha256=S0SF0iC-9ZJrP-9YUTLPhMJMV-W9r2--V3hVAmSSVKI,7083
|
|
19
|
+
wavedl/models/mamba.py,sha256=2mqBxUKCLJNkRc87QzpsOj6hKzrEh5tchGSyYZCSUcQ,20031
|
|
20
|
+
wavedl/models/maxvit.py,sha256=I6TFGrLRcyMU-nU7u5VhOaXZWWdwmNJwHsMqbJh_g_o,7548
|
|
21
|
+
wavedl/models/mobilenetv3.py,sha256=LZxCg599kGP6-XI_l3PpT8jzh4oTAdWH3Y7GH097o28,10242
|
|
22
|
+
wavedl/models/registry.py,sha256=InYAXX2xbRvsFDFnYUPCptJh0F9lHlFPN77A9kqHRT0,2980
|
|
23
|
+
wavedl/models/regnet.py,sha256=6Yjo2wZzdjK8VpOMagbCrHqmsfRmGkuiURmc-MesYvA,13777
|
|
24
|
+
wavedl/models/resnet.py,sha256=3i4zfE15qF4cd0qbTKX-Wdy2Kd0f4mLcdd316FAcVCo,16720
|
|
25
|
+
wavedl/models/resnet3d.py,sha256=NS6UBmvITO3NbdBNfe39bxViFqrIgeSXBnDgYi8QsC8,9247
|
|
26
|
+
wavedl/models/swin.py,sha256=39Gwn5hNEw3-tndc8qFFzV-VZ7pJMMKey2oZONAZ8MU,14980
|
|
27
|
+
wavedl/models/tcn.py,sha256=XzojpuMFG4lu_0oQHbQnkLAb7AnW-D7_6KoBlQDPLnQ,12367
|
|
28
|
+
wavedl/models/unet.py,sha256=oi7eBONSe0ALpJKsYda3jRGwu-LuSiFgNdURebnGGt0,7712
|
|
29
|
+
wavedl/models/unireplknet.py,sha256=sbiYcc2NeB0-_VAmeoe9Vi5hQzhYz03knG7o2Qk0WYE,14634
|
|
30
|
+
wavedl/models/vit.py,sha256=o-zWT2GBCTs9vD3jUFwlcwxK53XqEn_x4iPaRuEQe10,15219
|
|
31
|
+
wavedl/utils/__init__.py,sha256=CYqD3Bcwcub2mSrW05x8wvd2n1Co_3N9ajyKPyBswjo,4887
|
|
32
|
+
wavedl/utils/config.py,sha256=yAKuuhM-oxvHFXomkkek4IGihsVO5yZxc4b2noQ1amE,10523
|
|
33
|
+
wavedl/utils/constraints.py,sha256=V9Gyi8-uIMbLUWb2cOaHZD0SliWLxVrHZHFyo4HWK7g,18031
|
|
34
|
+
wavedl/utils/cross_validation.py,sha256=evp8EsHGJcxMHpfRdFSParDltUTyMhKQxUkcn5-osI4,18556
|
|
35
|
+
wavedl/utils/data.py,sha256=f-LLIiiv74iiKrR8TQ9oeKODF29_jzeUUp4iMBuj_H4,60875
|
|
36
|
+
wavedl/utils/distributed.py,sha256=7wQ3mRjkp_xjPSxDWMnBf5dSkAGUaTzntxbz0BhC5v0,4145
|
|
37
|
+
wavedl/utils/losses.py,sha256=KWpU5S5noFzp3bLbcH9RNpkFPajy6fyTIh5cNjI-BYA,7038
|
|
38
|
+
wavedl/utils/metrics.py,sha256=tLzKG2zINyXit-KvYZSJg-1nG6rST54GH6k4ALonToU,40935
|
|
39
|
+
wavedl/utils/optimizers.py,sha256=ZoETDSOK1fWUT2dx69PyYebeM8Vcqf9zOIKUERWk5HY,6107
|
|
40
|
+
wavedl/utils/schedulers.py,sha256=_aFTQ8kuvdZIxOoXPHQRu_N9XBuTVSjU6dmBbzH430o,7425
|
|
41
|
+
wavedl-1.7.0.dist-info/LICENSE,sha256=cEUCvcvH-9BT9Y-CNGY__PwWONCKu9zsoIqWA-NeHJ4,1066
|
|
42
|
+
wavedl-1.7.0.dist-info/METADATA,sha256=f5UMARudJtBdt5Pu3E18Rfk2sD4h77A2mt8Mh8_cJk4,48527
|
|
43
|
+
wavedl-1.7.0.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
|
|
44
|
+
wavedl-1.7.0.dist-info/entry_points.txt,sha256=NuAvdiG93EYYpqv-_1wf6PN0WqBfABanDKalNKe2GOs,148
|
|
45
|
+
wavedl-1.7.0.dist-info/top_level.txt,sha256=ccneUt3D5Qzbh3bsBSSrq9bqrhGiogcWKY24ZC4Q6Xw,7
|
|
46
|
+
wavedl-1.7.0.dist-info/RECORD,,
|
wavedl-1.6.2.dist-info/RECORD
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
wavedl/__init__.py,sha256=hFGU_j86Beexkcrn_V3fotGQ4ncwLGvz2lCOejEJ-f0,1177
|
|
2
|
-
wavedl/hpo.py,sha256=nEiy-2O_5EhxF5hU8X5TviSAiXfVrTQx0-VE6baW7JQ,14633
|
|
3
|
-
wavedl/launcher.py,sha256=_CFlgpKgHrtZebl1yQbJZJEcob06Y9-fqnRYzwW7UJQ,11776
|
|
4
|
-
wavedl/test.py,sha256=1UUy9phCqrr3h_lN6mGJ7Sj73skDg4KyLk2Yuq9DiKU,38797
|
|
5
|
-
wavedl/train.py,sha256=vBufy6gHShawgj8O6dvVER9TPhORa1s7L6pQtTe-N5M,57824
|
|
6
|
-
wavedl/models/__init__.py,sha256=8OiT2seq1qBiUzKaSkmh_VOLJlLTT9Cn-mjhMHKGFpI,5203
|
|
7
|
-
wavedl/models/_pretrained_utils.py,sha256=VPdU1DwJB93ZBf_GFIgb8-6BbAt18Phs4yorwlhLw70,12404
|
|
8
|
-
wavedl/models/_template.py,sha256=J_D8taSPmV8lBaucN_vU-WiG98iFr7CJrZVNNX_Tdts,4600
|
|
9
|
-
wavedl/models/base.py,sha256=bDoHYFli-aR8amcFYXbF98QYaKSCEwZWpvOhN21ODro,9075
|
|
10
|
-
wavedl/models/caformer.py,sha256=ufPM-HzQ-qUZcXgnOulurY6jBUlMUzokC01whtPeVMg,7922
|
|
11
|
-
wavedl/models/cnn.py,sha256=1-sNBDZHc5DySbduf5tkV1Ha25R6irksjVqfOiFbI3M,7465
|
|
12
|
-
wavedl/models/convnext.py,sha256=fdXieXUuHyULjicw9Nno2SK2Tm5bDabUtdiGuEpuAF4,15711
|
|
13
|
-
wavedl/models/convnext_v2.py,sha256=1ELKBPWIlUm3uybLX1KN5cgwjBPEUzZDoXL8qUzF9YY,14920
|
|
14
|
-
wavedl/models/densenet.py,sha256=V_caGd0wsG_Q3Q38I4MEgYmU0v4j8mDyvv7Rn3Bk7Ac,12667
|
|
15
|
-
wavedl/models/efficientnet.py,sha256=HWfhqSX57lC5Xug5TrQ3r-uFqkksoIKjmQ5Zr5njkEA,8264
|
|
16
|
-
wavedl/models/efficientnetv2.py,sha256=hVSnVId8T1rjqaKlckLqWFwvo2J-qASX7o9lMbXbP-s,10947
|
|
17
|
-
wavedl/models/efficientvit.py,sha256=KqFoZq9YHBMnTue6aMdPKgBOMczeBPryY_F6ip0hoEI,11630
|
|
18
|
-
wavedl/models/fastvit.py,sha256=S0SF0iC-9ZJrP-9YUTLPhMJMV-W9r2--V3hVAmSSVKI,7083
|
|
19
|
-
wavedl/models/mamba.py,sha256=ENmOQjtoX8btS1tDvOYEG_M3GFn1P2vWsDWcsQPSPJ0,17189
|
|
20
|
-
wavedl/models/maxvit.py,sha256=I6TFGrLRcyMU-nU7u5VhOaXZWWdwmNJwHsMqbJh_g_o,7548
|
|
21
|
-
wavedl/models/mobilenetv3.py,sha256=LZxCg599kGP6-XI_l3PpT8jzh4oTAdWH3Y7GH097o28,10242
|
|
22
|
-
wavedl/models/registry.py,sha256=InYAXX2xbRvsFDFnYUPCptJh0F9lHlFPN77A9kqHRT0,2980
|
|
23
|
-
wavedl/models/regnet.py,sha256=6Yjo2wZzdjK8VpOMagbCrHqmsfRmGkuiURmc-MesYvA,13777
|
|
24
|
-
wavedl/models/resnet.py,sha256=3i4zfE15qF4cd0qbTKX-Wdy2Kd0f4mLcdd316FAcVCo,16720
|
|
25
|
-
wavedl/models/resnet3d.py,sha256=edxLW4P4OBpZ5z9kMnWYV6qJ1GTkiqpwnW3-IqrPyqE,8510
|
|
26
|
-
wavedl/models/swin.py,sha256=39Gwn5hNEw3-tndc8qFFzV-VZ7pJMMKey2oZONAZ8MU,14980
|
|
27
|
-
wavedl/models/tcn.py,sha256=XzojpuMFG4lu_0oQHbQnkLAb7AnW-D7_6KoBlQDPLnQ,12367
|
|
28
|
-
wavedl/models/unet.py,sha256=oi7eBONSe0ALpJKsYda3jRGwu-LuSiFgNdURebnGGt0,7712
|
|
29
|
-
wavedl/models/unireplknet.py,sha256=jCy22m6mkApkLf3EzimMIqXy4xFs5WPUkaoz_KVWpqc,15205
|
|
30
|
-
wavedl/models/vit.py,sha256=5DXshtBdN2jYlH8MxWGTlIxP5lgbmfsdLSNchOvTaYk,14911
|
|
31
|
-
wavedl/utils/__init__.py,sha256=s5R9bRmJ8GNcJrD3OSAOXzwZJIXZbdYrAkZnus11sVQ,3300
|
|
32
|
-
wavedl/utils/config.py,sha256=MXkaVc1_zo8sDro8mjtK1MV65t2z8b1Z6fviwSorNiY,10534
|
|
33
|
-
wavedl/utils/constraints.py,sha256=V9Gyi8-uIMbLUWb2cOaHZD0SliWLxVrHZHFyo4HWK7g,18031
|
|
34
|
-
wavedl/utils/cross_validation.py,sha256=HfInyZ8gUROc_AyihYKzzUE0vnoPt_mFvAI2OPK4P54,17945
|
|
35
|
-
wavedl/utils/data.py,sha256=5ph2Pi8PKvuaSoJaXbFIL9WsX8pTN0A6P8FdmxvXdv4,63469
|
|
36
|
-
wavedl/utils/distributed.py,sha256=7wQ3mRjkp_xjPSxDWMnBf5dSkAGUaTzntxbz0BhC5v0,4145
|
|
37
|
-
wavedl/utils/losses.py,sha256=KWpU5S5noFzp3bLbcH9RNpkFPajy6fyTIh5cNjI-BYA,7038
|
|
38
|
-
wavedl/utils/metrics.py,sha256=YoqiXWOsUB9Y4_alj8CmHcTgnV4MFcH5PH4XlIC13HY,40304
|
|
39
|
-
wavedl/utils/optimizers.py,sha256=ZoETDSOK1fWUT2dx69PyYebeM8Vcqf9zOIKUERWk5HY,6107
|
|
40
|
-
wavedl/utils/schedulers.py,sha256=K6YCiyiMM9rb0cCRXTp89noXeXcAyUEiePr27O5Cozs,7408
|
|
41
|
-
wavedl-1.6.2.dist-info/LICENSE,sha256=cEUCvcvH-9BT9Y-CNGY__PwWONCKu9zsoIqWA-NeHJ4,1066
|
|
42
|
-
wavedl-1.6.2.dist-info/METADATA,sha256=2mTyuip32AneUURV3K8oAjZQ2rA_13AB16R-VyRN5s8,47659
|
|
43
|
-
wavedl-1.6.2.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
|
|
44
|
-
wavedl-1.6.2.dist-info/entry_points.txt,sha256=NuAvdiG93EYYpqv-_1wf6PN0WqBfABanDKalNKe2GOs,148
|
|
45
|
-
wavedl-1.6.2.dist-info/top_level.txt,sha256=ccneUt3D5Qzbh3bsBSSrq9bqrhGiogcWKY24ZC4Q6Xw,7
|
|
46
|
-
wavedl-1.6.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|