Metadata-Version: 2.4
Name: vcti-path-format-descriptors
Version: 1.1.0
Summary: Built-in file format descriptors (HDF5, CAX) for the vcti-path-format identification framework
Author: Visual Collaboration Technologies Inc.
Requires-Python: <3.15,>=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: vcti-path-format>=1.0.0
Requires-Dist: vcti-path-format-attributes>=1.1.0
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Provides-Extra: lint
Requires-Dist: ruff; extra == "lint"
Dynamic: license-file

# Path Format Descriptors

Built-in file format descriptors (HDF5, CAX) for the vcti-path-format identification framework.

## Installation

```bash
pip install vcti-path-format-descriptors>=1.1.0
```

### In `pyproject.toml` dependencies

```toml
dependencies = [
    "vcti-path-format-descriptors>=1.1.0",
]
```

---

## Quick Start

```python
from pathlib import Path

from vcti.pathformat import FormatRegistry, FormatIdentifier
from vcti.pathformat.descriptors import register_all_formats

# Register all built-in format descriptors
registry = FormatRegistry()
register_all_formats(registry)

# Identify a file
identifier = FormatIdentifier(registry)
results = identifier.identify_file_format(Path("data.h5"))
```

### Individual descriptors

```python
from vcti.pathformat.descriptors import get_hdf5_file_descriptor, get_cax_file_descriptor

registry = FormatRegistry()
registry.register(get_hdf5_file_descriptor())
registry.register(get_cax_file_descriptor())
```

---

## Built-in Formats

### HDF5

| Property | Value |
|----------|-------|
| ID | `hdf5-file` |
| Signature | `\x89HDF\r\n\x1a\n` (8 bytes) |
| Extensions | `.h5`, `.hdf5` |
| Validators | Magic bytes (GATE) + Extension (EVIDENCE) |
| Attributes | path_type=file, structure=hdf5 |

### VCollab CAX

| Property | Value |
|----------|-------|
| ID | `vcti-cax` |
| Signature | `\x89VCF\r\n\x1a\n` (8 bytes) |
| Validators | Magic bytes (GATE) |
| Attributes | path_type=file, structure=binary, generator=VCollab |

---

## Dependencies

- [vcti-path-format](https://pypi.org/project/vcti-path-format/) (>=1.0.0) — format identification framework
- [vcti-path-format-attributes](https://pypi.org/project/vcti-path-format-attributes/) (>=1.1.0) — domain vocabulary enums
