# ldf_equivalence

Python API: `luxonis_ml.data.utils.ldf_equivalence`

## Classes

### LDFEquivalence

Helpers for comparing datasets in Luxonis Data Format.

#### Methods

##### assert_equivalence

```python
def assert_equivalence(previous: Any, new: Any, collector: LDFCollector | None = None):
```

Assert that two prepared datasets are equivalent.

Parameters

 * `previous` (`Any`):
   [PreparedLDF](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-ml-api-reference/data/exporters/exporter_utils.md)
   or
   [LuxonisDataset](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-ml-api-reference/data/datasets/luxonis_dataset.md)
   reference dataset.
 * `new` (`Any`):
   [PreparedLDF](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-ml-api-reference/data/exporters/exporter_utils.md)
   or
   [LuxonisDataset](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-ml-api-reference/data/datasets/luxonis_dataset.md)
   dataset to compare.
 * `collector` (`LDFCollector | None`): Optional custom collector used for comparison.

Raises

 * `TypeError`: If `previous` or `new` is neither
   [PreparedLDF](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-ml-api-reference/data/exporters/exporter_utils.md)
   nor
   [LuxonisDataset](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-ml-api-reference/data/datasets/luxonis_dataset.md).
 * `AssertionError`: If the collected representations differ.

##### collect_annotation_multiset

```python
def collect_annotation_multiset(prepared_ldf: PreparedLDF, task_type: str) -> dict[tuple[str], Counter]:
```

##### collect_bbox_multiset

```python
def collect_bbox_multiset(prepared_ldf: PreparedLDF) -> dict[tuple[str], Counter]:
```

##### collect_classification_multiset

```python
def collect_classification_multiset(prepared_ldf: PreparedLDF) -> dict[tuple[str], Counter]:
```

##### collect_image_multiset

```python
def collect_image_multiset(prepared_ldf: PreparedLDF) -> Counter[str]:
```

##### collect_instance_segmentation_mask_overlap_multiset

```python
def collect_instance_segmentation_mask_overlap_multiset(prepared_ldf: PreparedLDF) -> dict[tuple[str], list[np.ndarray]]:
```

##### collect_instance_segmentation_multiset

```python
def collect_instance_segmentation_multiset(prepared_ldf: PreparedLDF) -> dict[tuple[str], Counter]:
```

##### collect_keypoint_multiset

```python
def collect_keypoint_multiset(prepared_ldf: PreparedLDF) -> dict[tuple[str], Counter]:
```

##### collect_segmentation_mask_overlap_multiset

```python
def collect_segmentation_mask_overlap_multiset(prepared_ldf: PreparedLDF) -> dict[tuple[str, str], list[np.ndarray]]:
```

##### collect_segmentation_multiset

```python
def collect_segmentation_multiset(prepared_ldf: PreparedLDF) -> dict[tuple[str], Counter]:
```

##### equivalent

```python
def equivalent(previous_dataset: str | LuxonisDataset, new_dataset: str | LuxonisDataset) -> bool:
```

Alias for
[ldf_equivalent](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-ml-api-reference/data/utils/ldf_equivalence.md).

Parameters

 * `previous_dataset` (`str | LuxonisDataset`): Dataset name or dataset instance used as the reference.
 * `new_dataset` (`str | LuxonisDataset`): Dataset name or dataset instance to compare.

Returns

 * `bool`: Whether the datasets are equivalent.

Raises

 * `TypeError`: If either argument is neither a dataset name nor a
   [LuxonisDataset](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-ml-api-reference/data/datasets/luxonis_dataset.md).
 * `ValueError`: If a dataset name matches multiple local datasets.
 * `FileNotFoundError`: If a named local dataset, split metadata, annotation parquet file, or referenced image is missing.

##### file_sha256

```python
def file_sha256(path: Path) -> str:
```

Return the SHA-256 hash for an image file.

Hashes are used to order annotations robustly when files are renamed.

##### ldf_equivalent

```python
def ldf_equivalent(previous_dataset: str | LuxonisDataset, new_dataset: str | LuxonisDataset) -> bool:
```

Return whether two datasets are equivalent.

Parameters

 * `previous_dataset` (`str | LuxonisDataset`): Dataset name or dataset instance used as the reference.
 * `new_dataset` (`str | LuxonisDataset`): Dataset name or dataset instance to compare.

Returns

 * `bool`: Whether the datasets are equivalent.

Raises

 * `TypeError`: If either argument is neither a dataset name nor a
   [LuxonisDataset](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-ml-api-reference/data/datasets/luxonis_dataset.md).
 * `ValueError`: If a dataset name matches multiple local datasets.
 * `FileNotFoundError`: If a named local dataset, split metadata, annotation parquet file, or referenced image is missing.

##### multiset_equal_with_tolerance

```python
def multiset_equal_with_tolerance(prev_map: dict[tuple[str], Counter], new_map: dict[tuple[str], Counter], tol: float):
```

## Functions

### ldf_equivalent

```python
def ldf_equivalent(previous_dataset: str | LuxonisDataset, new_dataset: str | LuxonisDataset) -> bool:
```

Return whether two datasets are equivalent in Luxonis Data Format.

Parameters

 * `previous_dataset` (`str | LuxonisDataset`): Dataset name or dataset instance used as the reference.
 * `new_dataset` (`str | LuxonisDataset`): Dataset name or dataset instance to compare.

Returns

 * `bool`: Whether the datasets are equivalent.

Raises

 * `TypeError`: If either argument is neither a dataset name nor a
   [LuxonisDataset](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-ml/luxonis-ml-api-reference/data/datasets/luxonis_dataset.md).
 * `ValueError`: If a dataset name matches multiple local datasets.
 * `FileNotFoundError`: If a named local dataset, split metadata, annotation parquet file, or referenced image is missing.

## Attributes

### LDFCollector
