Metadata-Version: 2.4
Name: modssc
Version: 1.1.0
Summary: ModSSC: a modular framework for semi-supervised classification on heterogeneous data
Project-URL: Homepage, https://github.com/ModSSC/ModSSC
Project-URL: Repository, https://github.com/ModSSC/ModSSC
Project-URL: Documentation, https://github.com/ModSSC/ModSSC/tree/main/docs
Project-URL: Changelog, https://github.com/ModSSC/ModSSC/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/ModSSC/ModSSC/issues
Author: ModSSC contributors
License: MIT License
        
        Copyright (c) 2025 ModSSC
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: classification,semi-supervised
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.11
Requires-Dist: numpy<2.4,>=1.24
Requires-Dist: platformdirs>=4.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: typer>=0.12.0
Provides-Extra: audio
Requires-Dist: torch; extra == 'audio'
Requires-Dist: torchaudio; extra == 'audio'
Requires-Dist: torchcodec; extra == 'audio'
Provides-Extra: data
Requires-Dist: datasets; extra == 'data'
Requires-Dist: scikit-learn; extra == 'data'
Requires-Dist: tensorflow; extra == 'data'
Requires-Dist: tensorflow-datasets; extra == 'data'
Requires-Dist: tf-keras; extra == 'data'
Requires-Dist: torch; extra == 'data'
Requires-Dist: torch-geometric; extra == 'data'
Requires-Dist: torchaudio; extra == 'data'
Requires-Dist: torchvision; extra == 'data'
Provides-Extra: datasets
Requires-Dist: datasets; extra == 'datasets'
Requires-Dist: scikit-learn; extra == 'datasets'
Requires-Dist: tensorflow; extra == 'datasets'
Requires-Dist: tensorflow-datasets; extra == 'datasets'
Requires-Dist: tf-keras; extra == 'datasets'
Requires-Dist: torch; extra == 'datasets'
Requires-Dist: torch-geometric; extra == 'datasets'
Requires-Dist: torchaudio; extra == 'datasets'
Requires-Dist: torchvision; extra == 'datasets'
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == 'dev'
Requires-Dist: pre-commit>=3.7; extra == 'dev'
Requires-Dist: pytest-cov>=4.1; extra == 'dev'
Requires-Dist: pytest-timeout>=2.2; extra == 'dev'
Requires-Dist: pytest-xdist>=3.5; extra == 'dev'
Requires-Dist: pytest>=7.4; extra == 'dev'
Requires-Dist: ruff==0.15.0; extra == 'dev'
Requires-Dist: twine>=4.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-enumerate-headings-plugin; extra == 'docs'
Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
Requires-Dist: mkdocs>=1.6; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.25; extra == 'docs'
Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
Provides-Extra: full
Requires-Dist: datasets; extra == 'full'
Requires-Dist: faiss-cpu; (platform_system != 'Darwin') and extra == 'full'
Requires-Dist: open-clip-torch; extra == 'full'
Requires-Dist: pillow; extra == 'full'
Requires-Dist: scikit-learn; extra == 'full'
Requires-Dist: scipy; extra == 'full'
Requires-Dist: sentence-transformers; extra == 'full'
Requires-Dist: tensorflow; extra == 'full'
Requires-Dist: tensorflow-datasets; extra == 'full'
Requires-Dist: tf-keras; extra == 'full'
Requires-Dist: torch; extra == 'full'
Requires-Dist: torch-geometric; extra == 'full'
Requires-Dist: torchaudio; extra == 'full'
Requires-Dist: torchcodec; extra == 'full'
Requires-Dist: torchvision; extra == 'full'
Requires-Dist: transformers; extra == 'full'
Provides-Extra: graph
Requires-Dist: torch; extra == 'graph'
Requires-Dist: torch-geometric; extra == 'graph'
Provides-Extra: graph-faiss
Requires-Dist: faiss-cpu; (platform_system != 'Darwin') and extra == 'graph-faiss'
Provides-Extra: hf
Requires-Dist: datasets; extra == 'hf'
Provides-Extra: inductive-tf
Requires-Dist: tensorflow; extra == 'inductive-tf'
Requires-Dist: tf-keras; extra == 'inductive-tf'
Provides-Extra: inductive-torch
Requires-Dist: torch; extra == 'inductive-torch'
Provides-Extra: openml
Requires-Dist: scikit-learn; extra == 'openml'
Provides-Extra: preprocess
Requires-Dist: open-clip-torch; extra == 'preprocess'
Requires-Dist: pillow; extra == 'preprocess'
Requires-Dist: scikit-learn; extra == 'preprocess'
Requires-Dist: scipy; extra == 'preprocess'
Requires-Dist: sentence-transformers; extra == 'preprocess'
Requires-Dist: torch; extra == 'preprocess'
Requires-Dist: torchaudio; extra == 'preprocess'
Requires-Dist: torchvision; extra == 'preprocess'
Requires-Dist: transformers; extra == 'preprocess'
Provides-Extra: preprocess-audio
Requires-Dist: torch; extra == 'preprocess-audio'
Requires-Dist: torchaudio; extra == 'preprocess-audio'
Provides-Extra: preprocess-graph
Requires-Dist: scipy; extra == 'preprocess-graph'
Provides-Extra: preprocess-sklearn
Requires-Dist: scikit-learn; extra == 'preprocess-sklearn'
Provides-Extra: preprocess-text
Requires-Dist: sentence-transformers; extra == 'preprocess-text'
Requires-Dist: transformers; extra == 'preprocess-text'
Provides-Extra: preprocess-vision
Requires-Dist: open-clip-torch; extra == 'preprocess-vision'
Requires-Dist: pillow; extra == 'preprocess-vision'
Requires-Dist: torch; extra == 'preprocess-vision'
Requires-Dist: torchvision; extra == 'preprocess-vision'
Provides-Extra: sklearn
Requires-Dist: scikit-learn; extra == 'sklearn'
Provides-Extra: supervised-torch
Requires-Dist: torch; extra == 'supervised-torch'
Provides-Extra: supervised-torch-geometric
Requires-Dist: torch; extra == 'supervised-torch-geometric'
Requires-Dist: torch-geometric; extra == 'supervised-torch-geometric'
Provides-Extra: text
Requires-Dist: datasets; extra == 'text'
Provides-Extra: tfds
Requires-Dist: tensorflow; extra == 'tfds'
Requires-Dist: tensorflow-datasets; extra == 'tfds'
Requires-Dist: tf-keras; extra == 'tfds'
Provides-Extra: transductive-advanced
Requires-Dist: torch; extra == 'transductive-advanced'
Requires-Dist: torch-geometric; extra == 'transductive-advanced'
Provides-Extra: transductive-pyg
Requires-Dist: torch; extra == 'transductive-pyg'
Requires-Dist: torch-geometric; extra == 'transductive-pyg'
Provides-Extra: transductive-torch
Requires-Dist: torch; extra == 'transductive-torch'
Provides-Extra: vision
Requires-Dist: torch; extra == 'vision'
Requires-Dist: torchvision; extra == 'vision'
Description-Content-Type: text/markdown

# ModSSC

[![Stars](https://img.shields.io/github/stars/ModSSC/ModSSC?style=for-the-badge&label=stars&color=0B3D91&labelColor=0B2D5E)](https://github.com/ModSSC/ModSSC/stargazers)
[![Downloads](https://img.shields.io/pepy/dt/modssc?style=for-the-badge&label=downloads&logo=python&labelColor=0B2D5E&color=0B3D91)](https://pepy.tech/projects/modssc)
[![PyPI](https://img.shields.io/pypi/v/modssc?style=for-the-badge&label=pypi&color=0B3D91&labelColor=0B2D5E)](https://pypi.org/project/modssc/)
[![codecov](https://img.shields.io/codecov/c/github/ModSSC/ModSSC?token=5S1R9H5L8G&style=for-the-badge&label=coverage&color=0B3D91&labelColor=0B2D5E)](https://codecov.io/gh/ModSSC/ModSSC)
[![CI](https://img.shields.io/github/actions/workflow/status/ModSSC/ModSSC/ci.yml?branch=main&style=for-the-badge&label=ci&color=0B3D91&labelColor=0B2D5E)](https://github.com/ModSSC/ModSSC/actions/workflows/ci.yml)
[![Docs](https://img.shields.io/github/actions/workflow/status/ModSSC/ModSSC/docs.yml?branch=main&style=for-the-badge&label=docs&color=0B3D91&labelColor=0B2D5E)](https://github.com/ModSSC/ModSSC/actions/workflows/docs.yml)


ModSSC is a modular framework for semi-supervised classification across heterogeneous
modalities (text, vision, tabular, graph, audio). It is designed for academic research with
reproducible pipelines and extensible method registries.

## Resources

Pick the path that fits your goal: learn the concepts, run examples, or dive into the research.

### Docs and reference

- **Documentation**: [overview and concepts](https://modssc.github.io/ModSSC).
- **Choose your path**: [pick the right entrypoint](https://modssc.github.io/ModSSC/getting-started/choose-your-path).
- **Getting started**: [install and first run](https://modssc.github.io/ModSSC/getting-started/installation).
- **Extras and platforms**: [choose optional dependencies](https://modssc.github.io/ModSSC/getting-started/extras-and-platforms).
- **CLI and API reference**: [full command and API list](https://modssc.github.io/ModSSC/reference/cli).
- **Troubleshooting**: [common failures and fixes](https://modssc.github.io/ModSSC/how-to/troubleshooting).

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.

### Examples

- **Examples**: small scripts in [examples/](examples/).
- **Notebooks**: interactive demos in [notebooks/](notebooks/).
- **Examples guide**: [script index and recommendations](https://modssc.github.io/ModSSC/examples/).
- **Notebook tour**: [interactive entrypoints by topic](https://modssc.github.io/ModSSC/notebooks/).

### Research and articles

- **Paper (arXiv)**: [research reference](https://arxiv.org/abs/2512.13228).
- **Articles (Medium)**: [deeper explanations](https://medium.com/@melvin.barbaux).

## Citation

If you use ModSSC in research, please cite:

```bibtex
@misc{barbaux2025modsscmodularframeworksemisupervised,
      title={ModSSC: A Modular Framework for Semi-Supervised Classification on Heterogeneous Data},
      author={Melvin Barbaux},
      year={2025},
      eprint={2512.13228},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/2512.13228},
}
```

## Contributing

If this work resonates with you, feel free to give the project a star on GitHub, fork it
to experiment on your own data, or jump in and contribute. Issues, discussions, and pull
requests are more than welcome.

You can also start a discussion on
[GitHub Discussions](https://github.com/ModSSC/ModSSC/discussions).

## License

```
MIT License
```
