Metadata-Version: 2.4
Name: grabset
Version: 0.0.1
Summary: Search individual samples inside Hugging Face datasets and grab them into a new dataset
Project-URL: homepage, https://huggingface.co/spaces/abidlabs/grabset
Author-email: Abubakar Abid <abubakar@huggingface.co>
License-File: LICENSE
Keywords: audio,datasets,embeddings,huggingface,search
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Provides-Extra: dev
Requires-Dist: pytest<9.0.0,>=8.0.0; extra == 'dev'
Requires-Dist: ruff==0.9.3; extra == 'dev'
Description-Content-Type: text/markdown

# grabset

Search individual samples inside Hugging Face datasets by what they contain, and grab them into a new dataset.

> **Early preview.** This release reserves the package name and sketches the API; `grabset.search` is not functional yet. Try the working prototype at [huggingface.co/spaces/abidlabs/grabset](https://huggingface.co/spaces/abidlabs/grabset).

Most dataset search works at the level of dataset cards. `grabset` fingerprints *individual samples* (a written description, embeddings, language, sound events and signal measurements), so you can find the exact samples you need across many datasets and combine them.

## Installation

Requires [Python 3.10 or higher](https://www.python.org/downloads/).

```bash
pip install grabset
```

or with `uv`:

```bash
uv pip install grabset
```

## Usage

```python
import grabset

# Search individual samples across Hub datasets by what they contain
whispers = grabset.search(
    "a woman whispering",
    modality="audio",
    filters={"language": ["English"]},
    limit=50,
)
```

## Development

Clone this repository and install it with development dependencies:

```bash
pip install -e ".[dev]"
```

Run the tests:

```bash
pytest
```

Format and lint:

```bash
ruff check --fix --select I && ruff format
```

See [RELEASE.md](RELEASE.md) for making releases and setting up CI publishing.

## Contributing

Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

## License

MIT
