Metadata-Version: 2.4
Name: omniverse-usd-profiles
Version: 1.10.22
Summary: NVIDIA OpenUSD Profiles
Project-URL: Homepage, https://docs.omniverse.nvidia.com/kit/docs/asset-requirements
Project-URL: Documentation, https://docs.omniverse.nvidia.com/kit/docs/asset-requirements
Author: NVIDIA
License-Expression: Apache-2.0
License-File: LICENSE
Requires-Python: >=3.10
Requires-Dist: jinja2>=3.1.5
Requires-Dist: markdown-it-py>=3.0.0
Provides-Extra: sphinx
Requires-Dist: myst-parser>=4.0.0; extra == 'sphinx'
Requires-Dist: sphinx>=7.2.6; extra == 'sphinx'
Description-Content-Type: text/markdown

# Omniverse USD Profiles

A framework for defining and managing [OpenUSD](https://openusd.org) asset profiles, capabilities, and requirements.
This library provides tools for parsing profile specifications from Markdown, generating Python code,
and integrating with Sphinx documentation.

## Features

- **Profile definitions** — Define capabilities, features, and requirements in structured Markdown
- **Code generation** — Generate Python enums and dataclasses from profile specifications
- **Sphinx integration** — Custom directives and roles for rendering profile documentation
- **Validation support** — Generate validation rules from requirement specifications
- **Extensible** — Modular architecture for custom profile components

## Installation

Install from PyPI:

```bash
pip install omniverse-usd-profiles
```

## Basic Usage

### Code Generation

Generate Python code from profile specifications:

```bash
python -m omni.usd_profiles.codegen --docs-root path/to/specs --destination-dir path/to/output --namespace mypackage.profiles
```

### Sphinx Integration

Add to your Sphinx `conf.py`:

```python
extensions = [
    "omni.usd_profiles.sphinx.ext",
]
```

Use directives in your documentation:

````markdown
```{requirements-table}
geometry/mesh-valid
geometry/mesh-normals
```

```{features-table}
geometry/feature-mesh
```
````

Use roles for inline tags and compatibility badges:

```markdown
{tag}`performance` - Display a tag badge
{compatibility}`omniverse` - Display a compatibility badge
```

## Documentation

- [Full Documentation](https://docs.omniverse.nvidia.com/kit/docs/asset-requirements)

## Requirements

- Python 3.10 or later
- Jinja2 3.1.5 or later
- Sphinx 7.2.6 or later

## License

Apache-2.0
