Metadata-Version: 2.5
Name: YoloDatasetCustomizer
Version: 0.3.0
Summary: Load one or multiple datasets. Reduce, mix or merge into a custom dataset.
Project-URL: Homepage, https://github.com/mLuca/YoloDatasetCustomizer
Project-URL: Repository, https://github.com/mLuca/YoloDatasetCustomizer
Project-URL: Issue Tracker, https://github.com/mLuca/YoloDatasetCustomizer/issues
Author-email: Luca Mazzon <mazzon.luca@gmail.com>
License: GPL-3.0-only
License-File: LICENSE
Keywords: computer-vision,customization,dataset,machine-learning,ultralytics,yolo
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Image Recognition
Requires-Python: >=3.10
Requires-Dist: pyyaml>=6.0.3
Description-Content-Type: text/markdown

# Intro

This tool is meant to help create a custom dataset by picking and choosing class names from pre-existing datasets.

# Limitations

- The dataset YAML file is expected to be called _data.yaml_
- The 'path' variable in data.yaml is not processed.
  It is assumed that the dataset root path is the directory where _data.yaml_ resides and all data is present already.
- The _script_ variable in _data.yaml_ is not processed. Make sure all data is present.

# Usage

If a path ends on _data.yaml_ it will take that file into account.
If a path doesn't end on _/data.yaml_ it will recursevly look for all _data.yaml_ files from that directory downards.
e.g.

    from YoloDatasetCustomizer import YoloDatasetCustomizer

    ydc = YoloDatasetCustomizer(list_to_existing_datasets)
    ydc.add([one_more_existing_dataset])

    if ydc.create_new_dataset_for_class_names(set_of_wanted_class_names, optional_custom_path, optional_custom_name):
        print("All good")
    else:
        print("Oh no.")

# Run tests

The project uses uv. Install dependencies and run tests with:

    uv run pytest

# Lint & type-check

    uv run ruff check src test
    uv run mypy

# Build project

Build the package

    uv build

Publish to PyPI (still need twine)

    uv pip install twine
    uv run twine upload dist/\*
