modssc 1.2.1__tar.gz → 1.2.2__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-1.2.1 → modssc-1.2.2}/.github/workflows/ci.yml +3 -3
- {modssc-1.2.1 → modssc-1.2.2}/.github/workflows/docs.yml +1 -1
- {modssc-1.2.1 → modssc-1.2.2}/.github/workflows/release.yml +2 -2
- {modssc-1.2.1 → modssc-1.2.2}/CHANGELOG.md +5 -0
- {modssc-1.2.1 → modssc-1.2.2}/PKG-INFO +1 -1
- {modssc-1.2.1 → modssc-1.2.2}/docs/index.md +1 -1
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/__about__.py +1 -1
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/graph/dgi.py +5 -3
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/classic/dynamic_label_propagation.py +36 -4
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/common.py +9 -5
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/classic/test___init__.py +40 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/_methods.py +13 -0
- {modssc-1.2.1 → modssc-1.2.2}/.editorconfig +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.github/CODEOWNERS +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.github/CODE_OF_CONDUCT.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.github/CONTRIBUTING.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.github/GOVERNANCE.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.github/ISSUE_TEMPLATE/new_method.yml +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.github/SECURITY.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.github/dependabot.yml +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.github/pull_request_template.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.gitignore +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/.pre-commit-config.yaml +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/CITATION.bib +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/CITATION.cff +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/LICENSE +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/README.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/codecov.yml +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/assets/logo.jpeg +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/development/architecture.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/development/contributing.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/development/release-process.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/examples/index.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/getting-started/choose-your-path.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/getting-started/concepts.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/getting-started/extras-and-platforms.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/getting-started/glossary.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/getting-started/installation.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/getting-started/quickstart.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/how-to/augmentation.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/how-to/bench-cookbook.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/how-to/common-errors.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/how-to/datasets.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/how-to/evaluation.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/how-to/graph.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/how-to/hpo.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/how-to/preprocess.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/how-to/reproducibility.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/how-to/sampling.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/how-to/troubleshooting.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/how-to/views.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/javascripts/sidebar-toggle.js +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/notebooks/index.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/data-augmentation.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/data-loader.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/device.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/evaluation.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/graph.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/hpo.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/index.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/inductive.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/logging.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/preprocess.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/sampling.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/supervised.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/transductive.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/api/views.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/benchmarks.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/catalogs.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/cli.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/configuration.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/reference/paper-methods.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/stylesheets/extra.css +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/tutorials/inductive-toy.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/docs/tutorials/transductive-toy.md +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/examples/00_inductive_toy_pseudo_label.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/examples/01_evaluation_quickstart.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/examples/01_transductive_toy_label_propagation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/examples/02_hpo_primitives_quickstart.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/examples/02_sampling_toy_holdout.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/examples/03_cli_smoke.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/examples/04_inductive_cotraining_two_views.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/mkdocs.yml +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/modssc_cache/.gitkeep +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/modssc_cache/datasets/.gitkeep +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/modssc_cache/splits/.gitkeep +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/00_cli_tour.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/01_data_loader_end_to_end.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/02_sampling_quickstart.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/03_preprocess_quickstart.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/04_data_augmentation_quickstart.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/05_views_quickstart.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/06_graph_quickstart.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/07_supervised_quickstart.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/08_inductive_quickstart.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/09_transductive_quickstart.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/10_hpo_bench_smoke.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/11_bench_run_anatomy.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/12_optional_extras_and_modalities.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/notebooks/13_official_vs_custom_splits.ipynb +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/pyproject.toml +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/__main__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/backends/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/backends/torch_common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cache/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cache/model.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/_utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/app.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/augmentation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/datasets.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/evaluation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/graph.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/inductive.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/logging.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/preprocess.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/sampling.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/supervised.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/cli/transductive.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/ops/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/ops/audio.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/ops/base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/ops/common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/ops/core.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/ops/graph.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/ops/tabular.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/ops/text.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/ops/vision.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/plan.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/registry.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_augmentation/utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/cache.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/catalog/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/catalog/audio.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/catalog/graph.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/catalog/tabular.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/catalog/text.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/catalog/toy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/catalog/vision.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/formats.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/manifest.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/numpy_adapter.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/providers/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/providers/base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/providers/common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/providers/hf.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/providers/openml.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/providers/pyg.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/providers/tfds.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/providers/torchaudio.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/providers/torchvision.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/providers/toy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/services/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/services/service.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/storage/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/storage/files.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/storage/json.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/data_loader/uri.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/dependencies/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/dependencies/errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/dependencies/optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/evaluation/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/evaluation/metrics.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/adapters/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/adapters/pyg.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/artifacts.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/cache.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/backends/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/backends/faiss_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/backends/numpy_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/backends/sklearn_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/backends/torch_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/builder.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/ops/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/ops/normalize.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/ops/self_loops.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/ops/symmetrize.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/ops/weights.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/schemes/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/schemes/anchor.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/services/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/construction/services/service.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/featurization/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/featurization/api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/featurization/node2vec.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/featurization/ops/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/featurization/ops/adjacency.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/featurization/views/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/featurization/views/attr.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/featurization/views/diffusion.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/featurization/views/struct.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/fingerprint.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/masks.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/specs.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/graph/validation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/hpo/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/hpo/patching.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/hpo/samplers.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/hpo/space.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/hpo/types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/adapters/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/adapters/numpy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/adapters/torch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/backends/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/backends/torch_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/deep/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/deep/bundle_factories/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/deep/bundle_factories/factory.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/deep/bundles.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/deep/types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/deep/validation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/adamatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/adsh.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/co_training.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/comatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/daso.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/deep_co_training.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/deep_utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/defixmatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/democratic_co_learning.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/fixmatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/flexmatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/free_match.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/helpers/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/helpers/classifier_bridge.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/helpers/torch_support.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/mean_teacher.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/meta_pseudo_labels.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/mixmatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/noisy_student.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/pi_model.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/pseudo_label.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/s4vm.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/self_training.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/setred.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/simclr_v2.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/softmatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/supervised.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/temporal_ensembling.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/tri_training.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/trinet.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/uda.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/methods/vat.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/registry.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/seed.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/inductive/validation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/cache.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/catalog.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/fingerprint.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/models.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/models_backends/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/models_backends/base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/models_backends/open_clip.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/models_backends/sentence_transformers.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/models_backends/stub.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/models_backends/torchaudio_wav2vec2.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/models_backends/torchvision_image.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/numpy_adapter.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/plan.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/registry.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/services/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/services/pipeline.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/audio/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/audio/load_waveform.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/audio/spectrogram.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/audio/wav2vec2.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/core/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/core/cast_dtype.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/core/cast_fp16.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/core/copy_raw.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/core/ensure_2d.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/core/pca.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/core/random_projection.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/core/row_normalize.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/core/to_numpy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/core/to_torch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/core/vae.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/embeddings/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/embeddings/auto.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/embeddings/common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/graph/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/graph/attach_edge_weight.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/graph/edge_sparsify.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/graph/node2vec.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/graph/sparse_adjacency.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/labels/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/labels/encode.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/labels/ensure_onehot.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/labels/to_numpy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/labels/to_torch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/tabular/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/tabular/impute.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/tabular/one_hot.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/tabular/standard_scaler.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/text/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/text/ensure_strings.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/text/hash_tokenizer.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/text/sentence_transformer.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/text/tfidf.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/text/vocab_tokenizer.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/vision/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/vision/aet.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/vision/channels_order.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/vision/ensure_num_channels.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/vision/layout.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/vision/normalize.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/vision/openclip.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/vision/resize.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/vision/squeeze.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/steps/vision/zca_whitening.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/store.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/preprocess/types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/runtime/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/runtime/device.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/runtime/logging.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/runtime/paths.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/fingerprint.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/imbalance.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/labeling.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/plan.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/result.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/services/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/services/service.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/splitters.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/stats.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/sampling/storage.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/numpy/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/numpy/knn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/sklearn/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/sklearn/common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/sklearn/extra_trees.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/sklearn/gradient_boosting.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/sklearn/knn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/sklearn/linear_svm.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/sklearn/logreg.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/sklearn/naive_bayes.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/sklearn/random_forest.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/sklearn/ridge.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/sklearn/svm_rbf.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/audio_cnn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/audio_cnn_scratch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/audio_pretrained.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/graphsage_inductive.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/image_cnn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/image_pretrained.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/knn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/logreg.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/lstm_scratch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/mlp.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/backends/torch/text_cnn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/registry.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/registry_data.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/supervised/utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/adapters/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/adapters/pyg.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/backends/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/backends/numpy_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/backends/torch_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/classic/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/classic/common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/classic/graph_mincuts.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/classic/label_propagation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/classic/label_spreading.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/classic/laplace_learning.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/classic/lazy_random_walk.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/classic/tsvm.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/appnp.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/chebnet.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/gat.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/gcn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/gcnii.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/grafn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/grand.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/graphhop.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/graphsage.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/h_gcn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/n_gcn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/planetoid.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/gnn/sgc.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/pde/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/pde/p_laplace_learning.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/pde/poisson_learning.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/pde/poisson_mbo.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/operators/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/operators/clamp.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/operators/laplacian.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/operators/normalize.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/operators/spmm.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/registry.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/solvers/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/solvers/cg.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/solvers/fixed_point.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/validation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/utils/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/utils/imports.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/utils/io.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/utils/numpy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/utils/registry.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/utils/seed.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/utils/shape.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/views/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/views/api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/views/errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/views/plan.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/views/services/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/views/services/service.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/src/modssc/views/types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/_main_datasets.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/backends/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/backends/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/backends/test_torch_common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/bench/test_graph_summary.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/bench/test_import_tools.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/bench/test_reporting_info.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/bench/test_seed_sweep.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cache/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cache/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cache/test_model.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/_augmentation_module.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/_cache_commands.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/_datasets_app.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test__utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test_app.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test_augmentation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test_datasets.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test_evaluation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test_graph.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test_inductive.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test_logging.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test_preprocess.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test_sampling.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test_supervised.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/cli/test_transductive.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/_pipeline.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/ops/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/ops/_vision_numpy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/ops/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/ops/test_audio.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/ops/test_base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/ops/test_common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/ops/test_core.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/ops/test_graph.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/ops/test_tabular.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/ops/test_text.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/ops/test_vision.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/test_api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/test_errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/test_optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/test_plan.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/test_registry.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/test_types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_augmentation/test_utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/_api_end_to_end.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/_api_meta.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/_fingerprint.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/catalog/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/catalog/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/catalog/test_audio.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/catalog/test_graph.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/catalog/test_tabular.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/catalog/test_text.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/catalog/test_toy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/catalog/test_vision.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/providers/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/providers/_stubs.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/providers/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/providers/test_base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/providers/test_common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/providers/test_hf.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/providers/test_openml.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/providers/test_pyg.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/providers/test_tfds.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/providers/test_torchaudio.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/providers/test_torchvision.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/providers/test_toy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/services/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/services/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/services/test_service.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/storage/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/storage/_edges_masks.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/storage/_roundtrip.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/storage/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/storage/test_files.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/storage/test_json.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/test_api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/test_cache.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/test_errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/test_formats.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/test_manifest.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/test_numpy_adapter.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/test_optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/test_types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/data_loader/test_uri.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/dependencies/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/dependencies/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/dependencies/test_errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/dependencies/test_optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/evaluation/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/evaluation/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/evaluation/test_metrics.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/adapters/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/adapters/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/adapters/test_pyg.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/_build_graph.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/backends/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/backends/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/backends/test_faiss_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/backends/test_numpy_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/backends/test_sklearn_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/backends/test_torch_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/ops/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/ops/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/ops/test_normalize.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/ops/test_self_loops.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/ops/test_symmetrize.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/ops/test_weights.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/schemes/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/schemes/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/schemes/test_anchor.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/services/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/services/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/services/test_service.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/test_api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/construction/test_builder.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/_views.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/ops/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/ops/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/ops/test_adjacency.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/test_api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/test_node2vec.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/views/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/views/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/views/test_attr.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/views/test_diffusion.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/featurization/views/test_struct.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/test_artifacts.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/test_cache.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/test_errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/test_fingerprint.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/test_masks.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/test_optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/test_specs.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/graph/test_validation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/hpo/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/hpo/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/hpo/test_patching.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/hpo/test_samplers.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/hpo/test_space.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/hpo/test_types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/adapters/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/adapters/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/adapters/test_numpy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/adapters/test_torch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/backends/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/backends/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/backends/test_torch_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/conftest.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/deep/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/deep/bundle_factories/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/deep/bundle_factories/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/deep/bundle_factories/test_factory.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/deep/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/deep/test_bundles.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/deep/test_types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/deep/test_validation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/dummy_registry_module.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/_adsh_predict_proba.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/_co_training_helpers.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/_methods_classic.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/_methods_deep.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/_supervised_method.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/_tri_training_coverage.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/helpers/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/helpers/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/helpers/test_classifier_bridge.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/helpers/test_torch_support.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_adamatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_adsh.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_co_training.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_comatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_daso.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_deep_co_training.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_deep_utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_defixmatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_democratic_co_learning.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_fixmatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_flexmatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_free_match.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_mean_teacher.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_meta_pseudo_labels.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_mixmatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_noisy_student.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_pi_model.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_pseudo_label.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_s4vm.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_self_training.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_setred.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_simclr_v2.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_softmatch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_supervised.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_temporal_ensembling.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_tri_training.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_trinet.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_uda.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/methods/test_vat.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/test_base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/test_errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/test_optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/test_registry.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/test_seed.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/test_types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/inductive/test_validation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/_utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/models_backends/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/models_backends/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/models_backends/test_base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/models_backends/test_open_clip.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/models_backends/test_sentence_transformers.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/models_backends/test_stub.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/models_backends/test_torchaudio_wav2vec2.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/models_backends/test_torchvision_image.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/services/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/services/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/services/test_pipeline.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/_embeddings_graph.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/audio/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/audio/_load_waveform_transform.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/audio/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/audio/test_load_waveform.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/audio/test_spectrogram.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/audio/test_wav2vec2.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/core/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/core/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/core/test_cast_dtype.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/core/test_cast_fp16.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/core/test_copy_raw.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/core/test_ensure_2d.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/core/test_pca.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/core/test_random_projection.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/core/test_row_normalize.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/core/test_to_numpy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/core/test_to_torch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/core/test_vae.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/embeddings/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/embeddings/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/embeddings/test_auto.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/embeddings/test_common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/graph/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/graph/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/graph/test_attach_edge_weight.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/graph/test_dgi.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/graph/test_edge_sparsify.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/graph/test_node2vec.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/graph/test_sparse_adjacency.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/labels/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/labels/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/labels/test_encode.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/labels/test_ensure_onehot.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/labels/test_to_numpy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/labels/test_to_torch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/tabular/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/tabular/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/tabular/test_impute.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/tabular/test_one_hot.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/tabular/test_standard_scaler.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/test_base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/text/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/text/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/text/test_ensure_strings.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/text/test_hash_tokenizer.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/text/test_sentence_transformer.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/text/test_tfidf.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/text/test_vocab_tokenizer.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/vision/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/vision/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/vision/test_aet.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/vision/test_channels_order.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/vision/test_ensure_num_channels.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/vision/test_layout.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/vision/test_normalize.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/vision/test_openclip.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/vision/test_resize.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/vision/test_squeeze.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/steps/vision/test_zca_whitening.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test_api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test_cache.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test_catalog.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test_errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test_fingerprint.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test_models.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test_numpy_adapter.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test_optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test_plan.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test_registry.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test_store.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/preprocess/test_types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/runtime/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/runtime/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/runtime/test_device.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/runtime/test_logging.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/runtime/test_paths.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/_api_cache_heuristic.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/_api_complex.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/_api_graph.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/_api_inductive.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/_result_properties.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/_splitters_holdout.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/_splitters_kfold.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/_storage_roundtrip.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/_stubs.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/services/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/services/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/services/test_service.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/test_api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/test_common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/test_errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/test_fingerprint.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/test_imbalance.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/test_labeling.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/test_plan.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/test_result.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/test_splitters.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/test_stats.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/sampling/test_storage.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/numpy/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/numpy/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/numpy/test_knn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/sklearn/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/sklearn/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/sklearn/test_common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/sklearn/test_extra_trees.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/sklearn/test_gradient_boosting.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/sklearn/test_knn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/sklearn/test_linear_svm.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/sklearn/test_logreg.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/sklearn/test_naive_bayes.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/sklearn/test_random_forest.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/sklearn/test_ridge.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/sklearn/test_svm_rbf.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test_audio_cnn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test_audio_cnn_scratch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test_audio_pretrained.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test_common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test_graphsage_inductive.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test_image_cnn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test_image_pretrained.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test_knn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test_logreg.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test_lstm_scratch.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test_mlp.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/backends/torch/test_text_cnn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/test_api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/test_base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/test_errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/test_optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/test_registry.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/test_registry_data.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/test_types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/supervised/test_utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/test___about__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/test___main__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/adapters/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/adapters/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/adapters/test_pyg.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/backends/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/backends/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/backends/test_numpy_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/backends/test_torch_backend.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/classic/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/classic/test_common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/classic/test_dynamic_label_propagation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/classic/test_graph_mincuts.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/classic/test_label_propagation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/classic/test_label_spreading.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/classic/test_laplace_learning.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/classic/test_lazy_random_walk.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/classic/test_tsvm.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_appnp.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_chebnet.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_common.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_gat.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_gcn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_gcnii.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_grafn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_grand.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_graphhop.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_graphsage.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_h_gcn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_n_gcn.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_planetoid.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/gnn/test_sgc.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/pde/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/pde/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/pde/test_p_laplace_learning.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/pde/test_poisson_learning.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/pde/test_poisson_mbo.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/methods/test_utils.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/operators/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/operators/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/operators/test_clamp.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/operators/test_laplacian.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/operators/test_normalize.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/operators/test_spmm.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/solvers/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/solvers/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/solvers/test_cg.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/solvers/test_fixed_point.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/test_base.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/test_errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/test_optional.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/test_registry.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/test_types.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/transductive/test_validation.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/utils/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/utils/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/utils/test_imports.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/utils/test_io.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/utils/test_numpy.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/utils/test_registry.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/utils/test_seed.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/utils/test_shape.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/views/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/views/services/__init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/views/services/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/views/services/test_service.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/views/test___init__.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/views/test_api.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/views/test_errors.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/views/test_plan.py +0 -0
- {modssc-1.2.1 → modssc-1.2.2}/tests/views/test_types.py +0 -0
|
@@ -16,7 +16,7 @@ jobs:
|
|
|
16
16
|
lint:
|
|
17
17
|
runs-on: ubuntu-latest
|
|
18
18
|
steps:
|
|
19
|
-
- uses: actions/checkout@
|
|
19
|
+
- uses: actions/checkout@v7
|
|
20
20
|
|
|
21
21
|
- uses: actions/setup-python@v6
|
|
22
22
|
with:
|
|
@@ -41,7 +41,7 @@ jobs:
|
|
|
41
41
|
matrix:
|
|
42
42
|
python-version: ["3.11", "3.12"]
|
|
43
43
|
steps:
|
|
44
|
-
- uses: actions/checkout@
|
|
44
|
+
- uses: actions/checkout@v7
|
|
45
45
|
|
|
46
46
|
- name: Free up disk space
|
|
47
47
|
run: |
|
|
@@ -92,7 +92,7 @@ jobs:
|
|
|
92
92
|
build:
|
|
93
93
|
runs-on: ubuntu-latest
|
|
94
94
|
steps:
|
|
95
|
-
- uses: actions/checkout@
|
|
95
|
+
- uses: actions/checkout@v7
|
|
96
96
|
|
|
97
97
|
- uses: actions/setup-python@v6
|
|
98
98
|
with:
|
|
@@ -16,7 +16,7 @@ jobs:
|
|
|
16
16
|
build:
|
|
17
17
|
runs-on: ubuntu-latest
|
|
18
18
|
steps:
|
|
19
|
-
- uses: actions/checkout@
|
|
19
|
+
- uses: actions/checkout@v7
|
|
20
20
|
|
|
21
21
|
- uses: actions/setup-python@v6
|
|
22
22
|
with:
|
|
@@ -63,7 +63,7 @@ jobs:
|
|
|
63
63
|
permissions:
|
|
64
64
|
contents: write
|
|
65
65
|
steps:
|
|
66
|
-
- uses: actions/checkout@
|
|
66
|
+
- uses: actions/checkout@v7
|
|
67
67
|
|
|
68
68
|
- name: Download dist artifacts
|
|
69
69
|
uses: actions/download-artifact@v8
|
|
@@ -4,6 +4,11 @@ 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
|
+
## 1.2.2
|
|
8
|
+
### Fixed
|
|
9
|
+
- Stabilized Dynamic Label Propagation by renormalizing dynamic transition matrices after each update and failing explicitly on invalid transition weights instead of returning non-finite scores.
|
|
10
|
+
- Replaced torch sparse tensor coalescing in DGI and GNN graph helpers with deterministic duplicate-edge aggregation to avoid PyTorch sparse invariant warnings without disabling checks.
|
|
11
|
+
|
|
7
12
|
## 1.2.1
|
|
8
13
|
### Changed
|
|
9
14
|
- Added benchmark seed-section control for reproducible ISO-style sweeps.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: modssc
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.2
|
|
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
|
|
@@ -44,7 +44,7 @@ ModSSC is a modular framework for semi-supervised classification across heteroge
|
|
|
44
44
|
- [Troubleshooting](how-to/troubleshooting.md)
|
|
45
45
|
|
|
46
46
|
## Version
|
|
47
|
-
Current version is `1.2.
|
|
47
|
+
Current version is `1.2.2`, 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>
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
## Project status and support
|
|
@@ -65,9 +65,11 @@ def _train_dgi(
|
|
|
65
65
|
def _coalesce_edges(edge_index_t, edge_weight_t, *, n_nodes: int):
|
|
66
66
|
src, dst = edge_index_t[0], edge_index_t[1]
|
|
67
67
|
idx = torch.stack([dst, src], dim=0)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
idx2, inverse = torch.unique(idx, dim=1, sorted=True, return_inverse=True)
|
|
69
|
+
w2 = torch.zeros(
|
|
70
|
+
(int(idx2.shape[1]),), device=edge_weight_t.device, dtype=edge_weight_t.dtype
|
|
71
|
+
)
|
|
72
|
+
w2.scatter_add_(0, inverse, edge_weight_t)
|
|
71
73
|
dst2, src2 = idx2[0], idx2[1]
|
|
72
74
|
return torch.stack([src2, dst2], dim=0), w2
|
|
73
75
|
|
{modssc-1.2.1 → modssc-1.2.2}/src/modssc/transductive/methods/classic/dynamic_label_propagation.py
RENAMED
|
@@ -53,6 +53,19 @@ def _knn_matrix_numpy(P0: np.ndarray, k: int) -> np.ndarray:
|
|
|
53
53
|
return P
|
|
54
54
|
|
|
55
55
|
|
|
56
|
+
def _normalize_transition_numpy(P: np.ndarray, eps: float = 1e-12) -> np.ndarray:
|
|
57
|
+
row_sum = P.sum(axis=1, keepdims=True)
|
|
58
|
+
invalid = (
|
|
59
|
+
(not bool(np.isfinite(P).all()))
|
|
60
|
+
or bool((P < 0.0).any())
|
|
61
|
+
or (not bool(np.isfinite(row_sum).all()))
|
|
62
|
+
or bool((row_sum <= eps).any())
|
|
63
|
+
)
|
|
64
|
+
if invalid:
|
|
65
|
+
raise ValueError("DynamicLabelPropagation produced invalid transition weights.")
|
|
66
|
+
return P / row_sum
|
|
67
|
+
|
|
68
|
+
|
|
56
69
|
def dynamic_label_propagation_numpy(
|
|
57
70
|
*,
|
|
58
71
|
n_nodes: int,
|
|
@@ -68,6 +81,8 @@ def dynamic_label_propagation_numpy(
|
|
|
68
81
|
raise ValueError("k_neighbors must be positive")
|
|
69
82
|
if not (float(spec.alpha) >= 0.0):
|
|
70
83
|
raise ValueError("alpha must be non-negative")
|
|
84
|
+
if not (float(spec.lambda_value) >= 0.0):
|
|
85
|
+
raise ValueError("lambda_value must be non-negative")
|
|
71
86
|
|
|
72
87
|
edge_index, w = _validate_graph_inputs(
|
|
73
88
|
n_nodes=n_nodes, edge_index=edge_index, edge_weight=edge_weight
|
|
@@ -90,8 +105,8 @@ def dynamic_label_propagation_numpy(
|
|
|
90
105
|
if np.any(deg <= 0):
|
|
91
106
|
raise ValueError("DynamicLabelPropagation requires a graph without isolated nodes.")
|
|
92
107
|
|
|
93
|
-
P0 = W / deg[:, None]
|
|
94
|
-
P = _knn_matrix_numpy(P0, int(spec.k_neighbors))
|
|
108
|
+
P0 = _normalize_transition_numpy(W / deg[:, None])
|
|
109
|
+
P = _normalize_transition_numpy(_knn_matrix_numpy(P0, int(spec.k_neighbors)))
|
|
95
110
|
|
|
96
111
|
P_t = P0.copy()
|
|
97
112
|
Y_t = Y0.copy()
|
|
@@ -105,6 +120,7 @@ def dynamic_label_propagation_numpy(
|
|
|
105
120
|
P_t = P @ (P_t + float(spec.alpha) * (Y_t @ Y_t.T)) @ P.T
|
|
106
121
|
if float(spec.lambda_value) != 0.0:
|
|
107
122
|
P_t = P_t + float(spec.lambda_value) * identity
|
|
123
|
+
P_t = _normalize_transition_numpy(P_t)
|
|
108
124
|
|
|
109
125
|
residual = float(np.max(np.abs(Y_next - Y_t)))
|
|
110
126
|
Y_t = Y_next
|
|
@@ -130,6 +146,19 @@ def _knn_matrix_torch(P0: torch.Tensor, k: int) -> torch.Tensor:
|
|
|
130
146
|
return P
|
|
131
147
|
|
|
132
148
|
|
|
149
|
+
def _normalize_transition_torch(P: torch.Tensor, eps: float = 1e-12) -> torch.Tensor:
|
|
150
|
+
row_sum = P.sum(dim=1, keepdim=True)
|
|
151
|
+
invalid = (
|
|
152
|
+
(not bool(torch.isfinite(P).all().item()))
|
|
153
|
+
or bool((P < 0.0).any().item())
|
|
154
|
+
or (not bool(torch.isfinite(row_sum).all().item()))
|
|
155
|
+
or bool((row_sum <= float(eps)).any().item())
|
|
156
|
+
)
|
|
157
|
+
if invalid:
|
|
158
|
+
raise ValueError("DynamicLabelPropagation produced invalid transition weights.")
|
|
159
|
+
return P / row_sum
|
|
160
|
+
|
|
161
|
+
|
|
133
162
|
def dynamic_label_propagation_torch(
|
|
134
163
|
*,
|
|
135
164
|
n_nodes: int,
|
|
@@ -147,6 +176,8 @@ def dynamic_label_propagation_torch(
|
|
|
147
176
|
raise ValueError("k_neighbors must be positive")
|
|
148
177
|
if not (float(spec.alpha) >= 0.0):
|
|
149
178
|
raise ValueError("alpha must be non-negative")
|
|
179
|
+
if not (float(spec.lambda_value) >= 0.0):
|
|
180
|
+
raise ValueError("lambda_value must be non-negative")
|
|
150
181
|
|
|
151
182
|
if edge_index.ndim != 2 or int(edge_index.shape[0]) != 2:
|
|
152
183
|
raise ValueError("edge_index must have shape (2, E)")
|
|
@@ -180,8 +211,8 @@ def dynamic_label_propagation_torch(
|
|
|
180
211
|
if bool((deg <= 0).any().item()):
|
|
181
212
|
raise ValueError("DynamicLabelPropagation requires a graph without isolated nodes.")
|
|
182
213
|
|
|
183
|
-
P0 = W / deg.view(-1, 1)
|
|
184
|
-
P = _knn_matrix_torch(P0, int(spec.k_neighbors))
|
|
214
|
+
P0 = _normalize_transition_torch(W / deg.view(-1, 1))
|
|
215
|
+
P = _normalize_transition_torch(_knn_matrix_torch(P0, int(spec.k_neighbors)))
|
|
185
216
|
|
|
186
217
|
P_t = P0.clone()
|
|
187
218
|
Y_t = Y0.clone()
|
|
@@ -195,6 +226,7 @@ def dynamic_label_propagation_torch(
|
|
|
195
226
|
P_t = P @ (P_t + float(spec.alpha) * (Y_t @ Y_t.T)) @ P.T
|
|
196
227
|
if float(spec.lambda_value) != 0.0:
|
|
197
228
|
P_t = P_t + float(spec.lambda_value) * identity
|
|
229
|
+
P_t = _normalize_transition_torch(P_t)
|
|
198
230
|
|
|
199
231
|
residual = float(torch.max(torch.abs(Y_next - Y_t)).item())
|
|
200
232
|
Y_t = Y_next
|
|
@@ -88,14 +88,18 @@ def coalesce_edges(edge_index: Any, edge_weight: Any, *, n_nodes: int) -> tuple[
|
|
|
88
88
|
"""Coalesce duplicate edges by summing weights.
|
|
89
89
|
|
|
90
90
|
The internal adjacency convention in ModSSC is PyG-like: edge_index is
|
|
91
|
-
(src, dst) and corresponds to adjacency A[dst, src].
|
|
92
|
-
|
|
91
|
+
(src, dst) and corresponds to adjacency A[dst, src]. Duplicate edges are
|
|
92
|
+
aggregated deterministically by their (dst, src) key.
|
|
93
93
|
"""
|
|
94
|
+
if edge_index.numel() and (
|
|
95
|
+
bool((edge_index < 0).any().item()) or bool((edge_index >= int(n_nodes)).any().item())
|
|
96
|
+
):
|
|
97
|
+
raise ValueError("edge_index contains node id outside [0, n_nodes)")
|
|
94
98
|
src, dst = edge_index[0], edge_index[1]
|
|
95
99
|
idx = torch.stack([dst, src], dim=0)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
w2
|
|
100
|
+
idx2, inverse = torch.unique(idx, dim=1, sorted=True, return_inverse=True)
|
|
101
|
+
w2 = torch.zeros((int(idx2.shape[1]),), device=edge_weight.device, dtype=edge_weight.dtype)
|
|
102
|
+
w2.scatter_add_(0, inverse, edge_weight)
|
|
99
103
|
dst2, src2 = idx2[0], idx2[1]
|
|
100
104
|
return torch.stack([src2, dst2], dim=0), w2
|
|
101
105
|
|
|
@@ -25,6 +25,9 @@ from modssc.transductive.methods.classic.dynamic_label_propagation import (
|
|
|
25
25
|
from modssc.transductive.methods.classic.dynamic_label_propagation import (
|
|
26
26
|
_knn_matrix_numpy as _dlp_knn_numpy,
|
|
27
27
|
)
|
|
28
|
+
from modssc.transductive.methods.classic.dynamic_label_propagation import (
|
|
29
|
+
_normalize_transition_numpy as _dlp_normalize_transition_numpy,
|
|
30
|
+
)
|
|
28
31
|
from modssc.transductive.methods.classic.label_propagation import (
|
|
29
32
|
LabelPropagationMethod,
|
|
30
33
|
LabelPropagationSpec,
|
|
@@ -62,6 +65,9 @@ if torch is not None:
|
|
|
62
65
|
from modssc.transductive.methods.classic.dynamic_label_propagation import (
|
|
63
66
|
_knn_matrix_torch as _dlp_knn_torch,
|
|
64
67
|
)
|
|
68
|
+
from modssc.transductive.methods.classic.dynamic_label_propagation import (
|
|
69
|
+
_normalize_transition_torch as _dlp_normalize_transition_torch,
|
|
70
|
+
)
|
|
65
71
|
from modssc.transductive.methods.classic.dynamic_label_propagation import (
|
|
66
72
|
dynamic_label_propagation_torch,
|
|
67
73
|
)
|
|
@@ -1272,6 +1278,13 @@ def test_dynamic_label_propagation_knn_matrix_numpy_paths():
|
|
|
1272
1278
|
_dlp_knn_numpy(np.zeros((3, 3), dtype=np.float32), 1)
|
|
1273
1279
|
|
|
1274
1280
|
|
|
1281
|
+
def test_dynamic_label_propagation_normalize_transition_numpy_paths():
|
|
1282
|
+
P = np.array([[2.0, 0.0], [1.0, 1.0]], dtype=np.float32)
|
|
1283
|
+
assert np.allclose(_dlp_normalize_transition_numpy(P), [[1.0, 0.0], [0.5, 0.5]])
|
|
1284
|
+
with pytest.raises(ValueError, match="invalid transition weights"):
|
|
1285
|
+
_dlp_normalize_transition_numpy(np.array([[np.nan, 1.0]], dtype=np.float32))
|
|
1286
|
+
|
|
1287
|
+
|
|
1275
1288
|
@pytest.mark.parametrize(
|
|
1276
1289
|
("spec", "y", "labeled_mask", "edge_index", "edge_weight", "match"),
|
|
1277
1290
|
[
|
|
@@ -1289,6 +1302,13 @@ def test_dynamic_label_propagation_knn_matrix_numpy_paths():
|
|
|
1289
1302
|
*_simple_graph(),
|
|
1290
1303
|
"alpha must be non-negative",
|
|
1291
1304
|
),
|
|
1305
|
+
(
|
|
1306
|
+
DynamicLabelPropagationSpec(lambda_value=-0.1),
|
|
1307
|
+
np.array([0, 1, 0], dtype=np.int64),
|
|
1308
|
+
np.array([True, False, True]),
|
|
1309
|
+
*_simple_graph(),
|
|
1310
|
+
"lambda_value must be non-negative",
|
|
1311
|
+
),
|
|
1292
1312
|
(
|
|
1293
1313
|
DynamicLabelPropagationSpec(),
|
|
1294
1314
|
np.array([0, 1], dtype=np.int64),
|
|
@@ -1346,6 +1366,7 @@ def test_dynamic_label_propagation_numpy_lambda_zero():
|
|
|
1346
1366
|
spec=DynamicLabelPropagationSpec(k_neighbors=1, lambda_value=0.0, max_iter=1),
|
|
1347
1367
|
)
|
|
1348
1368
|
assert res.F.shape == (3, 2)
|
|
1369
|
+
assert np.isfinite(res.F).all()
|
|
1349
1370
|
|
|
1350
1371
|
|
|
1351
1372
|
def test_dynamic_label_propagation_numpy_default_spec():
|
|
@@ -1360,6 +1381,7 @@ def test_dynamic_label_propagation_numpy_default_spec():
|
|
|
1360
1381
|
labeled_mask=labeled_mask,
|
|
1361
1382
|
)
|
|
1362
1383
|
assert res.F.shape == (3, 2)
|
|
1384
|
+
assert np.isfinite(res.F).all()
|
|
1363
1385
|
|
|
1364
1386
|
|
|
1365
1387
|
def test_dynamic_label_propagation_dispatch_invalid_backend():
|
|
@@ -1393,6 +1415,7 @@ def test_dynamic_label_propagation_torch_paths():
|
|
|
1393
1415
|
device="cpu",
|
|
1394
1416
|
)
|
|
1395
1417
|
assert res.F.shape == (3, 2)
|
|
1418
|
+
assert np.isfinite(res.F).all()
|
|
1396
1419
|
|
|
1397
1420
|
|
|
1398
1421
|
@pytest.mark.skipif(torch is None, reason="torch not installed")
|
|
@@ -1419,6 +1442,15 @@ def test_dynamic_label_propagation_knn_matrix_torch_paths():
|
|
|
1419
1442
|
_dlp_knn_torch(torch.zeros((3, 3), dtype=torch.float32), 1)
|
|
1420
1443
|
|
|
1421
1444
|
|
|
1445
|
+
@pytest.mark.skipif(torch is None, reason="torch not installed")
|
|
1446
|
+
def test_dynamic_label_propagation_normalize_transition_torch_paths():
|
|
1447
|
+
P = torch.tensor([[2.0, 0.0], [1.0, 1.0]], dtype=torch.float32)
|
|
1448
|
+
expected = torch.tensor([[1.0, 0.0], [0.5, 0.5]], dtype=torch.float32)
|
|
1449
|
+
assert torch.allclose(_dlp_normalize_transition_torch(P), expected)
|
|
1450
|
+
with pytest.raises(ValueError, match="invalid transition weights"):
|
|
1451
|
+
_dlp_normalize_transition_torch(torch.tensor([[float("nan"), 1.0]]))
|
|
1452
|
+
|
|
1453
|
+
|
|
1422
1454
|
@pytest.mark.skipif(torch is None, reason="torch not installed")
|
|
1423
1455
|
@pytest.mark.parametrize(
|
|
1424
1456
|
("spec", "edge_index", "edge_weight", "y", "labeled_mask", "match"),
|
|
@@ -1439,6 +1471,14 @@ def test_dynamic_label_propagation_knn_matrix_torch_paths():
|
|
|
1439
1471
|
torch.tensor([True, False, True], dtype=torch.bool),
|
|
1440
1472
|
"alpha must be non-negative",
|
|
1441
1473
|
),
|
|
1474
|
+
(
|
|
1475
|
+
DynamicLabelPropagationSpec(lambda_value=-0.1),
|
|
1476
|
+
torch.tensor([[0, 1], [1, 2]], dtype=torch.long),
|
|
1477
|
+
torch.ones(2, dtype=torch.float32),
|
|
1478
|
+
torch.tensor([0, 1, 0], dtype=torch.long),
|
|
1479
|
+
torch.tensor([True, False, True], dtype=torch.bool),
|
|
1480
|
+
"lambda_value must be non-negative",
|
|
1481
|
+
),
|
|
1442
1482
|
(
|
|
1443
1483
|
DynamicLabelPropagationSpec(),
|
|
1444
1484
|
torch.tensor([[0, 1], [1, 2]], dtype=torch.long),
|
|
@@ -672,6 +672,19 @@ def test_common_utils():
|
|
|
672
672
|
assert ei_out[1, 0] == 1
|
|
673
673
|
assert ew_out[0] == 3.0
|
|
674
674
|
|
|
675
|
+
ei_empty = torch.empty((2, 0), dtype=torch.long)
|
|
676
|
+
ew_empty = torch.empty((0,), dtype=torch.float)
|
|
677
|
+
ei_empty_out, ew_empty_out = coalesce_edges(ei_empty, ew_empty, n_nodes=2)
|
|
678
|
+
assert ei_empty_out.shape == (2, 0)
|
|
679
|
+
assert ew_empty_out.shape == (0,)
|
|
680
|
+
|
|
681
|
+
with pytest.raises(ValueError, match="outside"):
|
|
682
|
+
coalesce_edges(
|
|
683
|
+
torch.tensor([[0, 2], [1, 0]], dtype=torch.long),
|
|
684
|
+
torch.ones(2, dtype=torch.float),
|
|
685
|
+
n_nodes=2,
|
|
686
|
+
)
|
|
687
|
+
|
|
675
688
|
with pytest.raises(ValueError, match="X must be 2D"):
|
|
676
689
|
_ensure_2d(np.zeros((2, 2, 2)))
|
|
677
690
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|