modssc 0.2.4__tar.gz → 0.3__tar.gz
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.
- {modssc-0.2.4 → modssc-0.3}/.gitignore +3 -0
- {modssc-0.2.4 → modssc-0.3}/CHANGELOG.md +6 -0
- {modssc-0.2.4 → modssc-0.3}/PKG-INFO +3 -1
- {modssc-0.2.4 → modssc-0.3}/README.md +2 -0
- {modssc-0.2.4 → modssc-0.3}/docs/getting-started/quickstart.md +14 -0
- {modssc-0.2.4 → modssc-0.3}/docs/how-to/datasets.md +1 -1
- {modssc-0.2.4 → modssc-0.3}/docs/how-to/views.md +1 -1
- {modssc-0.2.4 → modssc-0.3}/docs/index.md +1 -1
- {modssc-0.2.4 → modssc-0.3}/docs/reference/benchmarks.md +79 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/configuration.md +25 -2
- {modssc-0.2.4 → modssc-0.3}/src/modssc/__about__.py +1 -1
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/ops/audio.py +7 -16
- modssc-0.3/src/modssc/data_augmentation/ops/common.py +30 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/ops/tabular.py +7 -16
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/ops/text.py +12 -12
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/utils.py +2 -13
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/cache.py +7 -10
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/errors.py +3 -8
- modssc-0.3/src/modssc/data_loader/json_utils.py +39 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/manifest.py +1 -30
- modssc-0.3/src/modssc/data_loader/providers/common.py +75 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/providers/hf.py +20 -49
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/providers/openml.py +9 -34
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/providers/pyg.py +1 -8
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/providers/torchaudio.py +21 -47
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/providers/torchvision.py +21 -47
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/storage/files.py +6 -32
- modssc-0.3/src/modssc/dependency_errors.py +23 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/evaluation/metrics.py +1 -11
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/cache.py +37 -25
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/schemes/anchor.py +2 -12
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/featurization/views/struct.py +2 -10
- modssc-0.3/src/modssc/import_utils.py +16 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/adapters/torch.py +2 -4
- modssc-0.3/src/modssc/inductive/backends/torch_backend.py +21 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/deep/bundles.py +2 -4
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/errors.py +3 -5
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/__init__.py +0 -2
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/adamatch.py +9 -73
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/adsh.py +2 -5
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/co_training.py +4 -6
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/comatch.py +4 -61
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/daso.py +2 -56
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/deep_co_training.py +2 -5
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/deep_utils.py +105 -4
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/defixmatch.py +4 -66
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/fixmatch.py +4 -66
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/flexmatch.py +4 -66
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/free_match.py +4 -66
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/mean_teacher.py +2 -56
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/meta_pseudo_labels.py +2 -5
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/mixmatch.py +4 -66
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/noisy_student.py +2 -56
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/pi_model.py +2 -56
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/setred.py +5 -6
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/simclr_v2.py +2 -5
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/softmatch.py +9 -73
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/temporal_ensembling.py +2 -56
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/trinet.py +4 -10
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/uda.py +2 -56
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/utils.py +8 -3
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/vat.py +2 -56
- modssc-0.3/src/modssc/inductive/optional.py +13 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/registry.py +29 -54
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/validation.py +2 -13
- modssc-0.3/src/modssc/io_utils.py +17 -0
- modssc-0.3/src/modssc/numpy_utils.py +17 -0
- modssc-0.3/src/modssc/optional_import_utils.py +16 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/api.py +3 -17
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/cache.py +8 -1
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/errors.py +3 -8
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/models.py +1 -13
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/registry.py +1 -13
- modssc-0.3/src/modssc/preprocess/steps/audio/wav2vec2.py +19 -0
- modssc-0.3/src/modssc/preprocess/steps/embeddings/common.py +60 -0
- modssc-0.3/src/modssc/preprocess/steps/text/sentence_transformer.py +22 -0
- modssc-0.3/src/modssc/preprocess/steps/vision/openclip.py +19 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/store.py +1 -1
- modssc-0.3/src/modssc/registry_utils.py +126 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/sampling/api.py +5 -0
- modssc-0.3/src/modssc/sampling/common.py +18 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/sampling/labeling.py +1 -15
- {modssc-0.2.4 → modssc-0.3}/src/modssc/sampling/splitters.py +1 -14
- {modssc-0.2.4 → modssc-0.3}/src/modssc/sampling/stats.py +1 -14
- {modssc-0.2.4 → modssc-0.3}/src/modssc/sampling/storage.py +1 -14
- modssc-0.3/src/modssc/seed_utils.py +12 -0
- modssc-0.3/src/modssc/shape_utils.py +13 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/api.py +1 -10
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/numpy/knn.py +8 -5
- modssc-0.3/src/modssc/supervised/backends/sklearn/common.py +70 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/sklearn/extra_trees.py +3 -25
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/sklearn/gradient_boosting.py +3 -25
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/sklearn/knn.py +3 -25
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/sklearn/linear_svm.py +3 -25
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/sklearn/logreg.py +11 -31
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/sklearn/naive_bayes.py +5 -69
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/sklearn/random_forest.py +3 -25
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/sklearn/ridge.py +3 -25
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/sklearn/svm_rbf.py +13 -19
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/torch/audio_cnn.py +7 -27
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/torch/audio_cnn_scratch.py +5 -13
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/torch/audio_pretrained.py +3 -19
- modssc-0.3/src/modssc/supervised/backends/torch/common.py +138 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/torch/graphsage_inductive.py +3 -6
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/torch/image_cnn.py +9 -38
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/torch/image_pretrained.py +7 -30
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/torch/knn.py +3 -6
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/torch/logreg.py +3 -19
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/torch/lstm_scratch.py +7 -13
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/torch/mlp.py +7 -27
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/torch/text_cnn.py +7 -27
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/base.py +11 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/errors.py +1 -2
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/utils.py +1 -13
- modssc-0.3/src/modssc/torch_backend_common.py +56 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/backends/torch_backend.py +10 -38
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/errors.py +3 -5
- modssc-0.3/src/modssc/transductive/methods/classic/common.py +21 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/classic/dynamic_label_propagation.py +4 -18
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/classic/laplace_learning.py +1 -6
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/classic/lazy_random_walk.py +3 -12
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/appnp.py +10 -18
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/chebnet.py +9 -7
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/common.py +26 -13
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/grand.py +1 -17
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/graphsage.py +9 -7
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/utils.py +3 -10
- modssc-0.3/src/modssc/transductive/optional.py +7 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/registry.py +29 -55
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/validation.py +2 -13
- {modssc-0.2.4 → modssc-0.3}/src/modssc/views/api.py +2 -24
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/ops/test_text.py +7 -0
- modssc-0.3/tests/data_loader/providers/test_common.py +62 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_cache.py +17 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/test_cache.py +30 -0
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/adapters}/test_validation_adapters.py +1 -1
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/backends}/test_backends_deep_utils.py +96 -1
- modssc-0.3/tests/inductive/methods/test_adsh_guards.py +49 -0
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_comatch.py +1 -1
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_daso.py +1 -1
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_deep_co_training.py +1 -1
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_graph_dict_helpers.py +0 -2
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_meta_pseudo_labels.py +1 -1
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_methods_classic.py +2 -242
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_methods_deep.py +1 -1
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_self_training.py +1 -1
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_setred.py +1 -1
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_simclr_v2.py +1 -1
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_trinet.py +1 -1
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/test_cache.py +19 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_api.py +15 -0
- modssc-0.3/tests/supervised/backends/numpy/__init__.py +0 -0
- modssc-0.3/tests/supervised/backends/sklearn/__init__.py +0 -0
- modssc-0.3/tests/supervised/backends/torch/__init__.py +0 -0
- modssc-0.3/tests/supervised/backends/torch/test_common.py +83 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/test_base.py +21 -1
- modssc-0.3/tests/transductive/__init__.py +0 -0
- modssc-0.3/tests/transductive/adapters/__init__.py +0 -0
- modssc-0.3/tests/transductive/backends/__init__.py +0 -0
- modssc-0.3/tests/transductive/methods/__init__.py +0 -0
- modssc-0.3/tests/transductive/methods/classic/__init__.py +0 -0
- modssc-0.3/tests/transductive/methods/gnn/__init__.py +0 -0
- modssc-0.3/tests/transductive/methods/pde/__init__.py +0 -0
- modssc-0.3/tests/transductive/operators/__init__.py +0 -0
- modssc-0.3/tests/transductive/solvers/__init__.py +0 -0
- modssc-0.3/tests/views/__init__.py +0 -0
- modssc-0.2.4/src/modssc/inductive/backends/torch_backend.py +0 -47
- modssc-0.2.4/src/modssc/inductive/methods/tsvm.py +0 -372
- modssc-0.2.4/src/modssc/inductive/optional.py +0 -15
- modssc-0.2.4/src/modssc/preprocess/steps/audio/wav2vec2.py +0 -35
- modssc-0.2.4/src/modssc/preprocess/steps/text/sentence_transformer.py +0 -36
- modssc-0.2.4/src/modssc/preprocess/steps/vision/openclip.py +0 -35
- modssc-0.2.4/src/modssc/transductive/optional.py +0 -15
- modssc-0.2.4/tests/transductive/methods/advanced/__init__.py +0 -1
- {modssc-0.2.4 → modssc-0.3}/.editorconfig +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/CODEOWNERS +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/CODE_OF_CONDUCT.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/CONTRIBUTING.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/GOVERNANCE.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/ISSUE_TEMPLATE/new_method.yml +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/SECURITY.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/dependabot.yml +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/pull_request_template.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/workflows/ci.yml +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/workflows/docs.yml +0 -0
- {modssc-0.2.4 → modssc-0.3}/.github/workflows/release.yml +0 -0
- {modssc-0.2.4 → modssc-0.3}/.pre-commit-config.yaml +0 -0
- {modssc-0.2.4 → modssc-0.3}/CITATION.bib +0 -0
- {modssc-0.2.4 → modssc-0.3}/CITATION.cff +0 -0
- {modssc-0.2.4 → modssc-0.3}/LICENSE +0 -0
- {modssc-0.2.4 → modssc-0.3}/Makefile +0 -0
- {modssc-0.2.4 → modssc-0.3}/codecov.yml +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/assets/logo.jpeg +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/development/contributing.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/development/release-process.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/getting-started/concepts.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/getting-started/installation.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/how-to/augmentation.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/how-to/evaluation.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/how-to/graph.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/how-to/hpo.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/how-to/preprocess.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/how-to/sampling.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/javascripts/sidebar-toggle.js +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/data-augmentation.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/data-loader.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/device.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/evaluation.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/graph.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/hpo.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/index.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/inductive.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/logging.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/preprocess.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/sampling.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/supervised.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/transductive.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/api/views.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/catalogs.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/reference/cli.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/stylesheets/extra.css +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/tutorials/inductive-toy.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/docs/tutorials/transductive-toy.md +0 -0
- {modssc-0.2.4 → modssc-0.3}/examples/00_inductive_toy_pseudo_label.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/examples/01_evaluation_quickstart.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/examples/01_transductive_toy_label_propagation.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/examples/02_hpo_primitives_quickstart.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/examples/02_sampling_toy_holdout.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/examples/03_cli_smoke.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/examples/04_inductive_cotraining_two_views.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/mkdocs.yml +0 -0
- {modssc-0.2.4 → modssc-0.3}/notebooks/00_cli_tour.ipynb +0 -0
- {modssc-0.2.4 → modssc-0.3}/notebooks/01_data_loader_end_to_end.ipynb +0 -0
- {modssc-0.2.4 → modssc-0.3}/notebooks/02_sampling_quickstart.ipynb +0 -0
- {modssc-0.2.4 → modssc-0.3}/notebooks/03_preprocess_quickstart.ipynb +0 -0
- {modssc-0.2.4 → modssc-0.3}/notebooks/04_data_augmentation_quickstart.ipynb +0 -0
- {modssc-0.2.4 → modssc-0.3}/notebooks/05_views_quickstart.ipynb +0 -0
- {modssc-0.2.4 → modssc-0.3}/notebooks/06_graph_quickstart.ipynb +0 -0
- {modssc-0.2.4 → modssc-0.3}/notebooks/07_supervised_quickstart.ipynb +0 -0
- {modssc-0.2.4 → modssc-0.3}/notebooks/08_inductive_quickstart.ipynb +0 -0
- {modssc-0.2.4 → modssc-0.3}/notebooks/09_transductive_quickstart.ipynb +0 -0
- {modssc-0.2.4 → modssc-0.3}/notebooks/10_hpo_bench_smoke.ipynb +0 -0
- {modssc-0.2.4 → modssc-0.3}/pyproject.toml +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/__main__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/_utils.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/app.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/augmentation.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/datasets.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/evaluation.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/graph.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/inductive.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/logging.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/preprocess.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/sampling.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/supervised.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/cli/transductive.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/api.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/errors.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/ops/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/ops/base.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/ops/core.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/ops/graph.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/ops/vision.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/optional.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/plan.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/registry.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_augmentation/types.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/api.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/catalog/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/catalog/audio.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/catalog/graph.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/catalog/tabular.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/catalog/text.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/catalog/toy.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/catalog/vision.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/formats.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/numpy_adapter.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/optional.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/providers/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/providers/base.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/providers/tfds.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/providers/toy.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/storage/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/types.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/data_loader/uri.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/device.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/evaluation/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/adapters/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/adapters/pyg.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/artifacts.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/api.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/backends/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/backends/faiss_backend.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/backends/numpy_backend.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/backends/sklearn_backend.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/builder.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/ops/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/ops/normalize.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/ops/self_loops.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/ops/symmetrize.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/ops/weights.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/construction/schemes/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/errors.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/featurization/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/featurization/api.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/featurization/node2vec.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/featurization/ops/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/featurization/ops/adjacency.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/featurization/views/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/featurization/views/attr.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/featurization/views/diffusion.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/fingerprint.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/masks.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/optional.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/specs.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/graph/validation.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/hpo/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/hpo/patching.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/hpo/samplers.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/hpo/space.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/hpo/types.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/adapters/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/adapters/numpy.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/backends/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/base.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/deep/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/deep/types.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/deep/validation.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/democratic_co_learning.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/pseudo_label.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/s4vm.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/self_training.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/methods/tri_training.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/seed.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/inductive/types.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/logging.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/catalog.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/fingerprint.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/models_backends/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/models_backends/base.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/models_backends/open_clip.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/models_backends/sentence_transformers.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/models_backends/stub.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/models_backends/torchaudio_wav2vec2.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/numpy_adapter.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/optional.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/plan.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/audio/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/audio/load_waveform.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/audio/spectrogram.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/base.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/core/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/core/cast_dtype.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/core/cast_fp16.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/core/copy_raw.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/core/ensure_2d.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/core/pca.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/core/random_projection.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/core/to_numpy.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/core/to_torch.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/embeddings/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/embeddings/auto.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/graph/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/graph/attach_edge_weight.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/graph/dgi.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/graph/edge_sparsify.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/graph/node2vec.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/graph/sparse_adjacency.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/labels/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/labels/encode.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/labels/ensure_onehot.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/labels/to_numpy.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/labels/to_torch.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/tabular/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/tabular/impute.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/tabular/one_hot.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/tabular/standard_scaler.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/text/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/text/ensure_strings.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/text/hash_tokenizer.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/text/tfidf.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/text/vocab_tokenizer.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/vision/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/vision/channels_order.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/vision/ensure_num_channels.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/vision/layout.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/vision/normalize.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/vision/resize.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/vision/squeeze.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/steps/vision/zca_whitening.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/preprocess/types.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/sampling/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/sampling/errors.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/sampling/fingerprint.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/sampling/imbalance.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/sampling/plan.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/sampling/result.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/numpy/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/sklearn/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/backends/torch/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/optional.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/registry.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/supervised/types.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/adapters/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/adapters/pyg.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/backends/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/backends/numpy_backend.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/base.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/classic/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/classic/graph_mincuts.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/classic/label_propagation.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/classic/label_spreading.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/classic/tsvm.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/gat.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/gcn.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/gcnii.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/grafn.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/graphhop.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/h_gcn.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/n_gcn.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/planetoid.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/gnn/sgc.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/pde/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/pde/p_laplace_learning.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/pde/poisson_learning.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/methods/pde/poisson_mbo.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/operators/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/operators/clamp.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/operators/laplacian.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/operators/normalize.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/operators/spmm.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/solvers/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/solvers/cg.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/solvers/fixed_point.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/transductive/types.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/views/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/views/errors.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/views/plan.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/src/modssc/views/types.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_app.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_augmentation.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_augmentation_module.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_cache_commands.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_datasets.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_datasets_app.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_evaluation.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_graph.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_inductive_cli.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_log_level_option.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_main.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_main_datasets.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_preprocess.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_sampling.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_supervised.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_utils.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/cli/test_version.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/ops/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/ops/test_audio.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/ops/test_core.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/ops/test_graph.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/ops/test_tabular.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/ops/test_torch_mock.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/ops/test_vision.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/ops/test_vision_numpy.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/test_api_registry.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/test_optional.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/test_pipeline.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/test_registry.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/test_types.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_augmentation/test_utils.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/catalog/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/catalog/test_catalog.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/providers/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/providers/test_hf.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/providers/test_openml.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/providers/test_pyg.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/providers/test_registry.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/providers/test_stubs.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/providers/test_tfds.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/providers/test_torchaudio.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/providers/test_torchvision.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/storage/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/storage/test_edges_masks.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/storage/test_files.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/storage/test_roundtrip.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_api.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_api_end_to_end.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_api_meta.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_errors.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_fingerprint.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_formats.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_import_light.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_manifest.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_numpy_adapter.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_optional.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_types.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/data_loader/test_uri.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/evaluation/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/evaluation/test_metrics.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/adapters/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/adapters/test_pyg.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/backends/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/backends/test_backends.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/backends/test_faiss_backend.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/backends/test_numpy_backend.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/ops/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/ops/test_ops.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/schemes/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/schemes/test_anchor.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/test_api.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/test_build_graph.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/test_builder.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/construction/test_construction.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/featurization/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/featurization/ops/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/featurization/ops/test_adjacency.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/featurization/test_featurization.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/featurization/test_node2vec.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/featurization/test_views.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/featurization/views/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/featurization/views/test_struct.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/test_artifacts.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/test_masks.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/test_optional.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/graph/test_specs.py +0 -0
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/hpo}/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/hpo/test_patching.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/hpo/test_random.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/hpo/test_space.py +0 -0
- {modssc-0.2.4/tests/preprocess → modssc-0.3/tests/inductive}/__init__.py +0 -0
- {modssc-0.2.4/tests/preprocess/models_backends → modssc-0.3/tests/inductive/adapters}/__init__.py +0 -0
- {modssc-0.2.4/tests/preprocess/steps → modssc-0.3/tests/inductive/backends}/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/inductive/conftest.py +0 -0
- {modssc-0.2.4/tests/preprocess/steps/labels → modssc-0.3/tests/inductive/deep}/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/inductive/deep/test_bundles.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/inductive/dummy_registry_module.py +0 -0
- {modssc-0.2.4/tests/sampling → modssc-0.3/tests/inductive/methods}/__init__.py +0 -0
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_adsh_predict_proba.py +0 -0
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_co_training_device_validation.py +0 -0
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_co_training_helpers.py +0 -0
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_methods_utils.py +0 -0
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_s4vm.py +0 -0
- {modssc-0.2.4/tests/inductive → modssc-0.3/tests/inductive/methods}/test_tri_training.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/inductive/test_errors_registry_seed.py +0 -0
- {modssc-0.2.4/tests/supervised → modssc-0.3/tests/preprocess}/__init__.py +0 -0
- {modssc-0.2.4/tests/supervised/backends → modssc-0.3/tests/preprocess/models_backends}/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/models_backends/test_backends.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/models_backends/test_stub.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/models_backends/test_torchaudio_wav2vec2.py +0 -0
- {modssc-0.2.4/tests/supervised/backends/numpy → modssc-0.3/tests/preprocess/steps}/__init__.py +0 -0
- {modssc-0.2.4/tests/supervised/backends/sklearn → modssc-0.3/tests/preprocess/steps/audio}/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/audio/test_load_waveform_fallback.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/audio/test_load_waveform_transform.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/audio/test_spectrogram.py +0 -0
- {modssc-0.2.4/tests/transductive → modssc-0.3/tests/preprocess/steps/core}/__init__.py +0 -0
- {modssc-0.2.4/tests/transductive/adapters → modssc-0.3/tests/preprocess/steps/embeddings}/__init__.py +0 -0
- {modssc-0.2.4/tests/transductive/backends → modssc-0.3/tests/preprocess/steps/graph}/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/graph/test_sparse_adjacency.py +0 -0
- {modssc-0.2.4/tests/transductive/methods → modssc-0.3/tests/preprocess/steps/labels}/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/labels/test_encode.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/labels/test_ensure_onehot.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/labels/test_to_numpy_torch.py +0 -0
- {modssc-0.2.4/tests/transductive/methods/classic → modssc-0.3/tests/preprocess/steps/tabular}/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/tabular/test_impute.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/tabular/test_standard_scaler.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/test_audio_core.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/test_base_core.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/test_embeddings_graph.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/test_layout.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/test_tabular_one_hot.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/test_text_steps.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/test_to_numpy_torch.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/test_vision_steps.py +0 -0
- {modssc-0.2.4/tests/transductive/methods/gnn → modssc-0.3/tests/preprocess/steps/text}/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/text/test_vocab_tokenizer.py +0 -0
- {modssc-0.2.4/tests/transductive/methods/pde → modssc-0.3/tests/preprocess/steps/vision}/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/steps/vision/test_squeeze.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/test_api.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/test_errors.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/test_fingerprint.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/test_models.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/test_plan.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/test_plan_and_pipeline.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/test_registry.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/test_store.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/preprocess/test_utils.py +0 -0
- {modssc-0.2.4/tests/transductive/operators → modssc-0.3/tests/sampling}/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/_stubs.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_api_cache_heuristic.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_api_complex.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_api_graph.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_api_inductive.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_fingerprint.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_imbalance.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_labeling.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_plan.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_result.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_result_properties.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_splitters.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_splitters_holdout.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_splitters_kfold.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_stats.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_storage.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/sampling/test_storage_roundtrip.py +0 -0
- {modssc-0.2.4/tests/transductive/solvers → modssc-0.3/tests/supervised}/__init__.py +0 -0
- {modssc-0.2.4/tests/views → modssc-0.3/tests/supervised/backends}/__init__.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/numpy/test_knn.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/sklearn/test_wrappers.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/torch/test_audio_cnn.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/torch/test_audio_cnn_scratch.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/torch/test_audio_pretrained.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/torch/test_graphsage_inductive.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/torch/test_image_cnn.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/torch/test_image_pretrained.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/torch/test_knn.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/torch/test_logreg.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/torch/test_lstm_scratch.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/torch/test_mlp.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/backends/torch/test_text_cnn.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/test_optional.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/test_registry_api.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/supervised/test_utils.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/test_device.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/test_imports.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/test_logging_config.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/adapters/test_pyg.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/backends/test_numpy_backend.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/backends/test_torch_backend.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/methods/classic/test_graph_mincuts.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/methods/classic/test_label_methods.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/methods/gnn/test_common.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/methods/gnn/test_gnn_components.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/methods/gnn/test_methods.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/methods/pde/test_p_laplace_learning.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/methods/pde/test_poisson_learning.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/methods/pde/test_poisson_mbo.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/methods/test_tsvm.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/methods/test_utils.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/operators/test_clamp.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/operators/test_laplacian.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/operators/test_torch_wrappers.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/solvers/test_cg.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/solvers/test_fixed_point.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/test_cli_transductive.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/test_errors.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/test_registry.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/transductive/test_validation.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/views/test_api.py +0 -0
- {modssc-0.2.4 → modssc-0.3}/tests/views/test_plan.py +0 -0
|
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on "Keep a Changelog", and this project adheres to Semantic Versioning.
|
|
6
6
|
|
|
7
|
+
## 0.3
|
|
8
|
+
- Refactored modules to reduce redundancy, centralize shared functions, and improve maintainability and test coverage.
|
|
9
|
+
|
|
10
|
+
## 0.2.5
|
|
11
|
+
- Added env var passthrough for dataset, preprocess, and runs cache directories in benchmarks.
|
|
12
|
+
|
|
7
13
|
## 0.2.4
|
|
8
14
|
- Improved torch container and device handling in inductive benchmarks.
|
|
9
15
|
- Added LSTM embedding support and hidden_size alias in inductive bundles.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: modssc
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3
|
|
4
4
|
Summary: ModSSC: a modular framework for semi-supervised classification on heterogeneous data
|
|
5
5
|
Project-URL: Homepage, https://github.com/ModSSC/ModSSC
|
|
6
6
|
Project-URL: Repository, https://github.com/ModSSC/ModSSC
|
|
@@ -188,6 +188,8 @@ Pick the path that fits your goal: learn the concepts, run examples, or dive int
|
|
|
188
188
|
- **Getting started**: [install and first run](https://modssc.github.io/ModSSC/getting-started/installation).
|
|
189
189
|
- **CLI and API reference**: [full command and API list](https://modssc.github.io/ModSSC/reference/cli).
|
|
190
190
|
|
|
191
|
+
If you use benchmark configs with environment placeholders, set `MODSSC_OUTPUT_DIR`, `MODSSC_DATASET_CACHE_DIR`, and `MODSSC_PREPROCESS_CACHE_DIR` before running. See the [Configuration reference](https://modssc.github.io/ModSSC/reference/configuration) for examples.
|
|
192
|
+
|
|
191
193
|
### Examples
|
|
192
194
|
|
|
193
195
|
- **Examples**: small scripts in [examples/](examples/).
|
|
@@ -22,6 +22,8 @@ Pick the path that fits your goal: learn the concepts, run examples, or dive int
|
|
|
22
22
|
- **Getting started**: [install and first run](https://modssc.github.io/ModSSC/getting-started/installation).
|
|
23
23
|
- **CLI and API reference**: [full command and API list](https://modssc.github.io/ModSSC/reference/cli).
|
|
24
24
|
|
|
25
|
+
If you use benchmark configs with environment placeholders, set `MODSSC_OUTPUT_DIR`, `MODSSC_DATASET_CACHE_DIR`, and `MODSSC_PREPROCESS_CACHE_DIR` before running. See the [Configuration reference](https://modssc.github.io/ModSSC/reference/configuration) for examples.
|
|
26
|
+
|
|
25
27
|
### Examples
|
|
26
28
|
|
|
27
29
|
- **Examples**: small scripts in [examples/](examples/).
|
|
@@ -12,6 +12,20 @@ Run the benchmark runner with the toy inductive config:
|
|
|
12
12
|
python -m bench.main --config bench/configs/experiments/toy_inductive.yaml
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+
If your config uses environment placeholders (like `${MODSSC_OUTPUT_DIR}`), export them first:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
export MODSSC_OUTPUT_DIR=/tmp/modssc_runs
|
|
19
|
+
export MODSSC_DATASET_CACHE_DIR=/tmp/modssc_cache/datasets
|
|
20
|
+
export MODSSC_PREPROCESS_CACHE_DIR=/tmp/modssc_cache/preprocess
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Or set one global cache root for all runtime caches:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
export MODSSC_CACHE_ROOT=/tmp/modssc_cache
|
|
27
|
+
```
|
|
28
|
+
|
|
15
29
|
Run a quick Python API pass with the dataset loader and sampling plan:
|
|
16
30
|
|
|
17
31
|
```python
|
|
@@ -54,7 +54,7 @@ _ = download_dataset("toy")
|
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
!!! tip
|
|
57
|
-
|
|
57
|
+
Override the dataset cache directory with `MODSSC_CACHE_DIR` if you want to store datasets outside the repo or default user cache. For a single root across caches, you can set `MODSSC_CACHE_ROOT`. For bench YAML configs, you can also set `MODSSC_DATASET_CACHE_DIR` and reference it in `dataset.cache_dir`. <sup class="cite"><a href="#source-3">[3]</a></sup>
|
|
58
58
|
|
|
59
59
|
|
|
60
60
|
## Related links
|
|
@@ -78,7 +78,7 @@ The view plan schema is defined in [`src/modssc/views/plan.py`](https://github.c
|
|
|
78
78
|
<li id="source-3"><a href="https://github.com/ModSSC/ModSSC/blob/main/src/modssc/inductive/methods/co_training.py"><code>src/modssc/inductive/methods/co_training.py</code></a></li>
|
|
79
79
|
<li id="source-4"><a href="https://github.com/ModSSC/ModSSC/blob/main/src/modssc/inductive/types.py"><code>src/modssc/inductive/types.py</code></a></li>
|
|
80
80
|
<li id="source-5"><a href="https://github.com/ModSSC/ModSSC/blob/main/src/modssc/preprocess/plan.py"><code>src/modssc/preprocess/plan.py</code></a></li>
|
|
81
|
-
<li id="source-6"><a href="https://github.com/ModSSC/ModSSC/blob/main/bench/configs/experiments/
|
|
81
|
+
<li id="source-6"><a href="https://github.com/ModSSC/ModSSC/blob/main/bench/configs/experiments/minimal/inductive/co_training/text/imdb.yaml"><code>bench/configs/experiments/minimal/inductive/co_training/text/imdb.yaml</code></a></li>
|
|
82
82
|
<li id="source-7"><a href="https://github.com/ModSSC/ModSSC/blob/main/bench/schema.py"><code>bench/schema.py</code></a></li>
|
|
83
83
|
</ol>
|
|
84
84
|
</details>
|
|
@@ -33,7 +33,7 @@ ModSSC is a modular framework for semi-supervised classification across heteroge
|
|
|
33
33
|
- [Transductive tutorial](tutorials/transductive-toy.md)
|
|
34
34
|
|
|
35
35
|
## Version
|
|
36
|
-
Current version is `0.
|
|
36
|
+
Current version is `0.3`, sourced from [`src/modssc/__about__.py`](https://github.com/ModSSC/ModSSC/blob/main/src/modssc/__about__.py) and referenced by the Hatch version config in [`pyproject.toml`](https://github.com/ModSSC/ModSSC/blob/main/pyproject.toml). <sup class="cite"><a href="#source-18">[18]</a><a href="#source-2">[2]</a></sup>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
## Project status and support
|
|
@@ -13,18 +13,97 @@ python -m bench.main --config bench/configs/experiments/toy_inductive.yaml
|
|
|
13
13
|
python -m bench.main --config bench/configs/experiments/toy_transductive.yaml
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
+
If you are using environment variable placeholders in configs (like `${MODSSC_OUTPUT_DIR}`), set them once before running:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
export MODSSC_OUTPUT_DIR=/tmp/modssc_runs
|
|
20
|
+
export MODSSC_DATASET_CACHE_DIR=/tmp/modssc_cache/datasets
|
|
21
|
+
export MODSSC_PREPROCESS_CACHE_DIR=/tmp/modssc_cache/preprocess
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
If one of these placeholders is missing at runtime, config loading fails fast with an explicit error.
|
|
25
|
+
|
|
26
|
+
You can also set one global cache root for runtime caches (dataset, preprocess, split, graph):
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
export MODSSC_CACHE_ROOT=/tmp/modssc_cache
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Optional graph-specific overrides:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
export MODSSC_GRAPH_CACHE_DIR=/tmp/modssc_cache/graphs
|
|
36
|
+
export MODSSC_GRAPH_VIEWS_CACHE_DIR=/tmp/modssc_cache/graph_views
|
|
37
|
+
```
|
|
38
|
+
|
|
16
39
|
Enable verbose logging for a run:
|
|
17
40
|
|
|
18
41
|
```bash
|
|
19
42
|
python -m bench.main --config bench/configs/experiments/toy_inductive.yaml --log-level detailed
|
|
20
43
|
```
|
|
21
44
|
|
|
45
|
+
Run the same config on multiple seeds:
|
|
46
|
+
|
|
47
|
+
```yaml
|
|
48
|
+
run:
|
|
49
|
+
name: toy_pseudo_label
|
|
50
|
+
seed: 0
|
|
51
|
+
seeds: [1, 2, 3, 4, 5]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
In sweep mode, the runner executes one run per seed and auto-suffixes `run.name` with `-seed<N>`. For each run, `run.seed` and section seeds (`sampling`, `preprocess`, `views`, `graph`, `augmentation`, `search`) are aligned to that seed.
|
|
55
|
+
|
|
56
|
+
Or sweep by run count from the CLI:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Uses run.seed as base and runs seeds [seed, seed+1, ..., seed+N-1]
|
|
60
|
+
python -m bench.main --config bench/configs/experiments/toy_inductive.yaml --num-runs 5
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`--num-runs` follows the same seed-sweep logic and overrides `run.seeds` when both are present.
|
|
64
|
+
|
|
22
65
|
The `--log-level` flag is defined on the bench CLI entry point. <sup class="cite"><a href="#source-1">[1]</a></sup>
|
|
23
66
|
|
|
24
67
|
|
|
25
68
|
The bench entry point and example configs are in [`bench/main.py`](https://github.com/ModSSC/ModSSC/blob/main/bench/main.py) and [`bench/configs/experiments/`](https://github.com/ModSSC/ModSSC/tree/main/bench/configs/experiments). <sup class="cite"><a href="#source-1">[1]</a><a href="#source-2">[2]</a></sup>
|
|
26
69
|
|
|
27
70
|
|
|
71
|
+
## Cache behavior in multi-seed runs
|
|
72
|
+
For multi-seed sweeps, keep one shared cache root and let fingerprints isolate seed-dependent artifacts:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
export MODSSC_CACHE_ROOT=/tmp/modssc_cache
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Use separate `MODSSC_CACHE_ROOT` values only when you explicitly need hard isolation (for example strict clean-room comparisons across branches/commits).
|
|
79
|
+
|
|
80
|
+
When you run 5 seeds, you should expect 5 distinct split/preprocess/graph fingerprints (one per seed), while dataset artifacts are shared.
|
|
81
|
+
|
|
82
|
+
- Dataset cache (`datasets/`):
|
|
83
|
+
Reused across seeds when dataset identity is unchanged (provider, dataset id, version, resolved options). Usually do not recompute.
|
|
84
|
+
|
|
85
|
+
- Sampling split cache (`splits/`):
|
|
86
|
+
Conceptually seed-dependent (different split fingerprint per seed), so each seed maps to a different split entry.
|
|
87
|
+
Current bench orchestration computes sampling in-memory (`save=False`) and does not persist split cache entries.
|
|
88
|
+
|
|
89
|
+
- Preprocess cache (`preprocess/`):
|
|
90
|
+
Seed-dependent. Fingerprint includes dataset fingerprint, resolved plan fingerprint, fit fingerprint, and seed.
|
|
91
|
+
In a 5-seed sweep, expect 5 preprocess entries. Reuse only happens when rerunning the same seed + same plan + same fit inputs.
|
|
92
|
+
|
|
93
|
+
- Graph cache (`graphs/`):
|
|
94
|
+
Seed-dependent. Fingerprint includes dataset fingerprint, preprocess fingerprint, graph spec, and seed.
|
|
95
|
+
In a 5-seed sweep, expect 5 graph entries (unless graph is dataset-provided and not rebuilt).
|
|
96
|
+
|
|
97
|
+
- Method training/inference:
|
|
98
|
+
Not cached by the benchmark runner. Model fit/eval is recomputed every run.
|
|
99
|
+
|
|
100
|
+
Practical rules:
|
|
101
|
+
- Keep the same cache root for speed when rerunning identical experiments.
|
|
102
|
+
- Do not reuse cache for "strict from-scratch" comparisons; use a new cache root.
|
|
103
|
+
- If you change dataset options, preprocessing steps/params, `fit_on`, graph spec, or seeds, expect recomputation for impacted stages.
|
|
104
|
+
- If preprocessing or graph implementation changes in code while config stays the same, clear impacted cache folders to avoid stale artifacts.
|
|
105
|
+
|
|
106
|
+
|
|
28
107
|
## How outputs are stored
|
|
29
108
|
Each run writes a timestamped directory under [`runs/`](https://github.com/ModSSC/ModSSC/tree/main/runs) with:
|
|
30
109
|
- `config.yaml` (copied config)
|
|
@@ -14,6 +14,12 @@ Start with where files live, then how they are loaded, then the schema blocks yo
|
|
|
14
14
|
## How configs are loaded
|
|
15
15
|
- Bench configs are read from YAML with `bench.utils.io.load_yaml` and validated via `ExperimentConfig.from_dict`. <sup class="cite"><a href="#source-3">[3]</a><a href="#source-2">[2]</a></sup>
|
|
16
16
|
|
|
17
|
+
- Bench configs support environment variable expansion in string values (for example `${MODSSC_OUTPUT_DIR}` or `$MODSSC_OUTPUT_DIR`). This is useful for `run.output_dir`, `dataset.cache_dir`, and `preprocess.cache_dir` placeholders in YAML. <sup class="cite"><a href="#source-3">[3]</a></sup>
|
|
18
|
+
|
|
19
|
+
- Unresolved placeholders now fail fast with an explicit error (key path + missing variable names) instead of being kept as literal strings.
|
|
20
|
+
|
|
21
|
+
- Runtime cache env vars (outside YAML placeholders): `MODSSC_CACHE_ROOT` (global root), `MODSSC_CACHE_DIR` (dataset cache), `MODSSC_PREPROCESS_CACHE_DIR` (preprocess cache), `MODSSC_SPLIT_CACHE_DIR` (sampling split cache), `MODSSC_GRAPH_CACHE_DIR` (graph cache), `MODSSC_GRAPH_VIEWS_CACHE_DIR` (graph views cache).
|
|
22
|
+
|
|
17
23
|
- CLI plan/spec files use `load_yaml_or_json` and are validated with their respective `from_dict` methods. <sup class="cite"><a href="#source-4">[4]</a><a href="#source-5">[5]</a><a href="#source-6">[6]</a></sup>
|
|
18
24
|
|
|
19
25
|
- Preprocess plans are loaded from YAML with `modssc.preprocess.plan.load_plan`. <sup class="cite"><a href="#source-7">[7]</a></sup>
|
|
@@ -28,6 +34,23 @@ Run a bench config:
|
|
|
28
34
|
python -m bench.main --config bench/configs/experiments/toy_inductive.yaml
|
|
29
35
|
```
|
|
30
36
|
|
|
37
|
+
Run a bench config with environment variable placeholders:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
MODSSC_OUTPUT_DIR=/tmp/modssc_runs \
|
|
41
|
+
MODSSC_DATASET_CACHE_DIR=/tmp/modssc_cache/datasets \
|
|
42
|
+
MODSSC_PREPROCESS_CACHE_DIR=/tmp/modssc_cache/preprocess \
|
|
43
|
+
python -m bench.main --config bench/configs/experiments/toy_inductive.yaml
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Or export them once per shell session:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
export MODSSC_OUTPUT_DIR=/tmp/modssc_runs
|
|
50
|
+
export MODSSC_DATASET_CACHE_DIR=/tmp/modssc_cache/datasets
|
|
51
|
+
export MODSSC_PREPROCESS_CACHE_DIR=/tmp/modssc_cache/preprocess
|
|
52
|
+
```
|
|
53
|
+
|
|
31
54
|
Load and inspect a config in Python:
|
|
32
55
|
|
|
33
56
|
```python
|
|
@@ -44,7 +67,7 @@ The bench entry point, schema, and YAML loader are in [`bench/main.py`](https://
|
|
|
44
67
|
## Experiment config schema (bench)
|
|
45
68
|
Top-level keys and their required fields are defined in [`bench/schema.py`](https://github.com/ModSSC/ModSSC/blob/main/bench/schema.py):
|
|
46
69
|
|
|
47
|
-
- `run`: `name`, `seed`, `output_dir`, `fail_fast`, optional `log_level
|
|
70
|
+
- `run`: `name`, `seed`, `output_dir`, `fail_fast`, optional `log_level`, optional `seeds` (list of run seeds for a sweep). <sup class="cite"><a href="#source-2">[2]</a></sup>
|
|
48
71
|
|
|
49
72
|
- `dataset`: `id`, optional `options`, `download`, `cache_dir`. <sup class="cite"><a href="#source-2">[2]</a></sup>
|
|
50
73
|
|
|
@@ -398,6 +421,6 @@ evaluation:
|
|
|
398
421
|
<li id="source-23"><a href="https://github.com/ModSSC/ModSSC/blob/main/src/modssc/hpo/samplers.py"><code>src/modssc/hpo/samplers.py</code></a></li>
|
|
399
422
|
<li id="source-24"><a href="https://github.com/ModSSC/ModSSC/blob/main/bench/configs/experiments/toy_inductive.yaml"><code>bench/configs/experiments/toy_inductive.yaml</code></a></li>
|
|
400
423
|
<li id="source-25"><a href="https://github.com/ModSSC/ModSSC/blob/main/bench/configs/experiments/toy_transductive.yaml"><code>bench/configs/experiments/toy_transductive.yaml</code></a></li>
|
|
401
|
-
<li id="source-26"><a href="https://github.com/ModSSC/ModSSC/blob/main/bench/configs/experiments/
|
|
424
|
+
<li id="source-26"><a href="https://github.com/ModSSC/ModSSC/blob/main/bench/configs/experiments/minimal/inductive/pseudo_label/text/imdb.yaml"><code>bench/configs/experiments/minimal/inductive/pseudo_label/text/imdb.yaml</code></a></li>
|
|
402
425
|
</ol>
|
|
403
426
|
</details>
|
|
@@ -9,6 +9,7 @@ from ..registry import register_op
|
|
|
9
9
|
from ..types import AugmentationContext, Modality
|
|
10
10
|
from ..utils import is_torch_tensor
|
|
11
11
|
from .base import AugmentationOp
|
|
12
|
+
from .common import apply_gaussian_noise
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
@register_op("audio.add_noise")
|
|
@@ -21,22 +22,12 @@ class AddNoise(AugmentationOp):
|
|
|
21
22
|
std: float = 0.005
|
|
22
23
|
|
|
23
24
|
def apply(self, x: Any, *, rng: np.random.Generator, ctx: AugmentationContext) -> Any: # noqa: ARG002
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
import importlib
|
|
31
|
-
|
|
32
|
-
torch = importlib.import_module("torch")
|
|
33
|
-
seed = int(rng.integers(0, 1 << 31))
|
|
34
|
-
gen = torch.Generator(device=x.device).manual_seed(seed)
|
|
35
|
-
noise = torch.randn(x.shape, generator=gen, device=x.device, dtype=x.dtype) * std
|
|
36
|
-
return x + noise
|
|
37
|
-
arr = np.asarray(x)
|
|
38
|
-
noise = rng.normal(0.0, std, size=arr.shape).astype(arr.dtype, copy=False)
|
|
39
|
-
return arr + noise
|
|
25
|
+
return apply_gaussian_noise(
|
|
26
|
+
x,
|
|
27
|
+
std=float(self.std),
|
|
28
|
+
rng=rng,
|
|
29
|
+
is_torch_tensor_fn=is_torch_tensor,
|
|
30
|
+
)
|
|
40
31
|
|
|
41
32
|
|
|
42
33
|
@register_op("audio.time_shift")
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any
|
|
4
|
+
|
|
5
|
+
import numpy as np
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def apply_gaussian_noise(
|
|
9
|
+
x: Any,
|
|
10
|
+
*,
|
|
11
|
+
std: float,
|
|
12
|
+
rng: np.random.Generator,
|
|
13
|
+
is_torch_tensor_fn: Any,
|
|
14
|
+
) -> Any:
|
|
15
|
+
std = float(std)
|
|
16
|
+
if std < 0:
|
|
17
|
+
raise ValueError("std must be >= 0")
|
|
18
|
+
if std == 0:
|
|
19
|
+
return x
|
|
20
|
+
if is_torch_tensor_fn(x):
|
|
21
|
+
import importlib
|
|
22
|
+
|
|
23
|
+
torch = importlib.import_module("torch")
|
|
24
|
+
seed = int(rng.integers(0, 1 << 31))
|
|
25
|
+
gen = torch.Generator(device=x.device).manual_seed(seed)
|
|
26
|
+
noise = torch.randn(x.shape, generator=gen, device=x.device, dtype=x.dtype) * std
|
|
27
|
+
return x + noise
|
|
28
|
+
arr = np.asarray(x)
|
|
29
|
+
noise = rng.normal(0.0, std, size=arr.shape).astype(arr.dtype, copy=False)
|
|
30
|
+
return arr + noise
|
|
@@ -9,6 +9,7 @@ from ..registry import register_op
|
|
|
9
9
|
from ..types import AugmentationContext, Modality
|
|
10
10
|
from ..utils import is_torch_tensor
|
|
11
11
|
from .base import AugmentationOp
|
|
12
|
+
from .common import apply_gaussian_noise
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
@register_op("tabular.gaussian_noise")
|
|
@@ -21,22 +22,12 @@ class GaussianNoise(AugmentationOp):
|
|
|
21
22
|
std: float = 0.1
|
|
22
23
|
|
|
23
24
|
def apply(self, x: Any, *, rng: np.random.Generator, ctx: AugmentationContext) -> Any: # noqa: ARG002
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
import importlib
|
|
31
|
-
|
|
32
|
-
torch = importlib.import_module("torch")
|
|
33
|
-
seed = int(rng.integers(0, 1 << 31))
|
|
34
|
-
gen = torch.Generator(device=x.device).manual_seed(seed)
|
|
35
|
-
noise = torch.randn(x.shape, generator=gen, device=x.device, dtype=x.dtype) * std
|
|
36
|
-
return x + noise
|
|
37
|
-
arr = np.asarray(x)
|
|
38
|
-
noise = rng.normal(0.0, std, size=arr.shape).astype(arr.dtype, copy=False)
|
|
39
|
-
return arr + noise
|
|
25
|
+
return apply_gaussian_noise(
|
|
26
|
+
x,
|
|
27
|
+
std=self.std,
|
|
28
|
+
rng=rng,
|
|
29
|
+
is_torch_tensor_fn=is_torch_tensor,
|
|
30
|
+
)
|
|
40
31
|
|
|
41
32
|
|
|
42
33
|
@register_op("tabular.feature_dropout")
|
|
@@ -32,9 +32,19 @@ class Lowercase(AugmentationOp):
|
|
|
32
32
|
return out if many else out[0]
|
|
33
33
|
|
|
34
34
|
|
|
35
|
+
class _PerItemTextOp(AugmentationOp):
|
|
36
|
+
def _apply_one(self, s: str, *, rng: np.random.Generator) -> str:
|
|
37
|
+
raise NotImplementedError
|
|
38
|
+
|
|
39
|
+
def apply(self, x: Any, *, rng: np.random.Generator, ctx: AugmentationContext) -> Any: # noqa: ARG002
|
|
40
|
+
items, many = _as_list(x)
|
|
41
|
+
out = [self._apply_one(s, rng=rng) for s in items]
|
|
42
|
+
return out if many else out[0]
|
|
43
|
+
|
|
44
|
+
|
|
35
45
|
@register_op("text.word_dropout")
|
|
36
46
|
@dataclass
|
|
37
|
-
class WordDropout(
|
|
47
|
+
class WordDropout(_PerItemTextOp):
|
|
38
48
|
"""Randomly drop words from whitespace-tokenized text."""
|
|
39
49
|
|
|
40
50
|
op_id: str = "text.word_dropout"
|
|
@@ -53,15 +63,10 @@ class WordDropout(AugmentationOp):
|
|
|
53
63
|
keep = [tokens[int(rng.integers(0, len(tokens)))]]
|
|
54
64
|
return " ".join(keep)
|
|
55
65
|
|
|
56
|
-
def apply(self, x: Any, *, rng: np.random.Generator, ctx: AugmentationContext) -> Any: # noqa: ARG002
|
|
57
|
-
items, many = _as_list(x)
|
|
58
|
-
out = [self._apply_one(s, rng=rng) for s in items]
|
|
59
|
-
return out if many else out[0]
|
|
60
|
-
|
|
61
66
|
|
|
62
67
|
@register_op("text.random_swap")
|
|
63
68
|
@dataclass
|
|
64
|
-
class RandomSwap(
|
|
69
|
+
class RandomSwap(_PerItemTextOp):
|
|
65
70
|
"""Randomly swap two words N times."""
|
|
66
71
|
|
|
67
72
|
op_id: str = "text.random_swap"
|
|
@@ -79,8 +84,3 @@ class RandomSwap(AugmentationOp):
|
|
|
79
84
|
j = int(j)
|
|
80
85
|
tokens[i], tokens[j] = tokens[j], tokens[i]
|
|
81
86
|
return " ".join(tokens)
|
|
82
|
-
|
|
83
|
-
def apply(self, x: Any, *, rng: np.random.Generator, ctx: AugmentationContext) -> Any: # noqa: ARG002
|
|
84
|
-
items, many = _as_list(x)
|
|
85
|
-
out = [self._apply_one(s, rng=rng) for s in items]
|
|
86
|
-
return out if many else out[0]
|
|
@@ -5,6 +5,8 @@ from typing import Any
|
|
|
5
5
|
|
|
6
6
|
import numpy as np
|
|
7
7
|
|
|
8
|
+
from modssc.numpy_utils import to_numpy
|
|
9
|
+
|
|
8
10
|
from .types import Backend
|
|
9
11
|
|
|
10
12
|
|
|
@@ -20,19 +22,6 @@ def is_torch_tensor(x: Any) -> bool:
|
|
|
20
22
|
return hasattr(x, "shape") and hasattr(x, "dtype") and hasattr(x, "device")
|
|
21
23
|
|
|
22
24
|
|
|
23
|
-
def to_numpy(x: Any) -> np.ndarray:
|
|
24
|
-
"""Best-effort conversion to numpy (detaches torch tensors)."""
|
|
25
|
-
if isinstance(x, np.ndarray):
|
|
26
|
-
return x
|
|
27
|
-
if hasattr(x, "detach"):
|
|
28
|
-
x = x.detach()
|
|
29
|
-
if hasattr(x, "cpu"):
|
|
30
|
-
x = x.cpu()
|
|
31
|
-
if hasattr(x, "numpy"):
|
|
32
|
-
return x.numpy()
|
|
33
|
-
return np.asarray(x)
|
|
34
|
-
|
|
35
|
-
|
|
36
25
|
def _u64_from_bytes(b: bytes) -> int:
|
|
37
26
|
return int.from_bytes(b[:8], "little", signed=False)
|
|
38
27
|
|
|
@@ -4,7 +4,6 @@ import contextlib
|
|
|
4
4
|
import os
|
|
5
5
|
import shutil
|
|
6
6
|
import sqlite3
|
|
7
|
-
import tempfile
|
|
8
7
|
from collections.abc import Iterable, Iterator
|
|
9
8
|
from contextlib import contextmanager
|
|
10
9
|
from dataclasses import dataclass
|
|
@@ -15,8 +14,10 @@ from platformdirs import user_cache_dir
|
|
|
15
14
|
|
|
16
15
|
from modssc.data_loader.errors import ManifestError
|
|
17
16
|
from modssc.data_loader.manifest import Manifest, read_manifest
|
|
17
|
+
from modssc.io_utils import atomic_write_text as _atomic_write_text
|
|
18
18
|
|
|
19
19
|
CACHE_ENV = "MODSSC_CACHE_DIR"
|
|
20
|
+
CACHE_ROOT_ENV = "MODSSC_CACHE_ROOT"
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
def default_cache_dir() -> Path:
|
|
@@ -24,6 +25,10 @@ def default_cache_dir() -> Path:
|
|
|
24
25
|
if override:
|
|
25
26
|
return Path(override).expanduser().resolve()
|
|
26
27
|
|
|
28
|
+
root_override = os.environ.get(CACHE_ROOT_ENV)
|
|
29
|
+
if root_override:
|
|
30
|
+
return Path(root_override).expanduser().resolve() / "datasets"
|
|
31
|
+
|
|
27
32
|
# Heuristic: if running in a dev repo (pyproject.toml exists in parents),
|
|
28
33
|
# default to a local "cache" folder at the repo root.
|
|
29
34
|
current = Path.cwd()
|
|
@@ -118,15 +123,7 @@ def read_cached_manifest(layout: CacheLayout, fingerprint: str) -> Manifest:
|
|
|
118
123
|
|
|
119
124
|
|
|
120
125
|
def atomic_write_text(path: Path, text: str) -> None:
|
|
121
|
-
path
|
|
122
|
-
with tempfile.NamedTemporaryFile(
|
|
123
|
-
"w", delete=False, dir=str(path.parent), encoding="utf-8"
|
|
124
|
-
) as tmp:
|
|
125
|
-
tmp.write(text)
|
|
126
|
-
tmp.flush()
|
|
127
|
-
os.fsync(tmp.fileno())
|
|
128
|
-
tmp_path = Path(tmp.name)
|
|
129
|
-
tmp_path.replace(path)
|
|
126
|
+
_atomic_write_text(path, text)
|
|
130
127
|
|
|
131
128
|
|
|
132
129
|
def dir_size_bytes(path: Path) -> int:
|
|
@@ -2,6 +2,8 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
|
|
5
|
+
from modssc.dependency_errors import MissingExtraErrorMessageMixin
|
|
6
|
+
|
|
5
7
|
|
|
6
8
|
class DataLoaderError(RuntimeError):
|
|
7
9
|
"""Base error for modssc.data_loader."""
|
|
@@ -23,19 +25,12 @@ class ProviderNotFoundError(DataLoaderError):
|
|
|
23
25
|
|
|
24
26
|
|
|
25
27
|
@dataclass(frozen=True)
|
|
26
|
-
class OptionalDependencyError(DataLoaderError):
|
|
28
|
+
class OptionalDependencyError(MissingExtraErrorMessageMixin, DataLoaderError):
|
|
27
29
|
"""Raised when an optional dependency (extra) required by a provider is missing."""
|
|
28
30
|
|
|
29
31
|
extra: str
|
|
30
32
|
purpose: str | None = None
|
|
31
33
|
|
|
32
|
-
def __str__(self) -> str:
|
|
33
|
-
msg = f"Missing optional dependency extra: {self.extra!r}."
|
|
34
|
-
if self.purpose:
|
|
35
|
-
msg += f" Required for: {self.purpose}."
|
|
36
|
-
msg += f' Install with: pip install "modssc[{self.extra}]"'
|
|
37
|
-
return msg
|
|
38
|
-
|
|
39
34
|
|
|
40
35
|
class DatasetNotCachedError(DataLoaderError):
|
|
41
36
|
def __init__(self, dataset_id: str) -> None:
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
import numpy as np
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def to_jsonable(obj: Any) -> Any:
|
|
11
|
+
if obj is None:
|
|
12
|
+
return None
|
|
13
|
+
if isinstance(obj, (bool, int, float, str)):
|
|
14
|
+
return obj
|
|
15
|
+
if isinstance(obj, Path):
|
|
16
|
+
return str(obj)
|
|
17
|
+
if isinstance(obj, np.ndarray):
|
|
18
|
+
return {"__type__": "ndarray", "shape": list(obj.shape), "dtype": str(obj.dtype)}
|
|
19
|
+
if hasattr(obj, "shape") and hasattr(obj, "dtype"):
|
|
20
|
+
try:
|
|
21
|
+
shape = list(obj.shape)
|
|
22
|
+
except Exception:
|
|
23
|
+
shape = None
|
|
24
|
+
return {
|
|
25
|
+
"__type__": type(obj).__name__,
|
|
26
|
+
"shape": shape,
|
|
27
|
+
"dtype": str(getattr(obj, "dtype", "")),
|
|
28
|
+
}
|
|
29
|
+
if isinstance(obj, Mapping):
|
|
30
|
+
return {str(k): to_jsonable(v) for k, v in obj.items()}
|
|
31
|
+
if isinstance(obj, (list, tuple)):
|
|
32
|
+
if len(obj) > 50:
|
|
33
|
+
return {"__type__": type(obj).__name__, "len": len(obj)}
|
|
34
|
+
return [to_jsonable(v) for v in obj]
|
|
35
|
+
return {"__type__": type(obj).__name__}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def mapping_to_jsonable(meta: Mapping[str, Any]) -> dict[str, Any]:
|
|
39
|
+
return {str(k): to_jsonable(v) for k, v in meta.items()}
|
|
@@ -9,8 +9,7 @@ from datetime import datetime, timezone
|
|
|
9
9
|
from pathlib import Path
|
|
10
10
|
from typing import Any
|
|
11
11
|
|
|
12
|
-
import
|
|
13
|
-
|
|
12
|
+
from modssc.data_loader.json_utils import to_jsonable as _jsonable
|
|
14
13
|
from modssc.data_loader.types import DatasetIdentity, LoadedDataset
|
|
15
14
|
|
|
16
15
|
|
|
@@ -22,34 +21,6 @@ def python_version() -> str:
|
|
|
22
21
|
return sys.version.split()[0]
|
|
23
22
|
|
|
24
23
|
|
|
25
|
-
def _jsonable(obj: Any) -> Any:
|
|
26
|
-
if obj is None:
|
|
27
|
-
return None
|
|
28
|
-
if isinstance(obj, (bool, int, float, str)):
|
|
29
|
-
return obj
|
|
30
|
-
if isinstance(obj, Path):
|
|
31
|
-
return str(obj)
|
|
32
|
-
if isinstance(obj, np.ndarray):
|
|
33
|
-
return {"__type__": "ndarray", "shape": list(obj.shape), "dtype": str(obj.dtype)}
|
|
34
|
-
if hasattr(obj, "shape") and hasattr(obj, "dtype"):
|
|
35
|
-
try:
|
|
36
|
-
shape = list(obj.shape)
|
|
37
|
-
except Exception:
|
|
38
|
-
shape = None
|
|
39
|
-
return {
|
|
40
|
-
"__type__": type(obj).__name__,
|
|
41
|
-
"shape": shape,
|
|
42
|
-
"dtype": str(getattr(obj, "dtype", "")),
|
|
43
|
-
}
|
|
44
|
-
if isinstance(obj, Mapping):
|
|
45
|
-
return {str(k): _jsonable(v) for k, v in obj.items()}
|
|
46
|
-
if isinstance(obj, (list, tuple)):
|
|
47
|
-
if len(obj) > 50:
|
|
48
|
-
return {"__type__": type(obj).__name__, "len": len(obj)}
|
|
49
|
-
return [_jsonable(v) for v in obj]
|
|
50
|
-
return {"__type__": type(obj).__name__}
|
|
51
|
-
|
|
52
|
-
|
|
53
24
|
def dataset_summary(ds: LoadedDataset) -> dict[str, Any]:
|
|
54
25
|
def shape_dtype(x: Any) -> dict[str, Any]:
|
|
55
26
|
if x is None:
|