Metadata-Version: 2.4
Name: nv-dfm-core
Version: 3.1.27
Summary: Data Federation Mesh Core Framework
Author: NVIDIA
Requires-Python: <3.13,>=3.10
Requires-Dist: appdirs<2.0.0,>=1.4.4
Requires-Dist: bottleneck<2.0.0,>=1.3.0
Requires-Dist: click<9.0.0,>=8.1.8
Requires-Dist: datamodel-code-generator<0.36.0,>=0.35.0
Requires-Dist: fsspec<2026.0.0,>=2025.5.1
Requires-Dist: gitpython<4.0.0,>=3.1.44
Requires-Dist: hypothesis<7.0.0,>=6.0.0
Requires-Dist: jinja2<4.0.0,>=3.1.6
Requires-Dist: nvflare<2.7.0,>=2.6.0
Requires-Dist: pandera<0.25.0,>=0.24.0
Requires-Dist: pooch<2.0.0,>=1.8.2
Requires-Dist: pydantic<3.0.0,>=2.10.5
Requires-Dist: pyproj<4.0.0,>=3.0.0
Requires-Dist: ruamel-yaml<0.19.0,>=0.18.10
Requires-Dist: scipy<2.0.0,>=1.7.0
Requires-Dist: sh<3.0.0,>=2.2.1
Requires-Dist: typing-extensions<5.0.0,>=4.13.2
Requires-Dist: universal-pathlib<0.3.0,>=0.2.6
Requires-Dist: xarray<2026.0.0,>=2025.3.1
Provides-Extra: test
Requires-Dist: examplefed; extra == 'test'
Description-Content-Type: text/markdown

<!--
SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

# nv-dfm-core

Core framework for the [Data Federation Mesh (DFM)](../../README.md) project.

## Overview

nv-dfm-core provides the foundation for building and running federated data processing pipelines:

| Component | Description |
|-----------|-------------|
| **Pipeline API** | Declarative Python API for defining pipelines (`Pipeline`, `Yield`, `PlaceParam`, `ForEach`, etc.) |
| **Compilation** | IRGen and ModGen convert pipelines to executable Petri nets |
| **Execution** | NetRunner, JobController, and Router for distributed execution |
| **CLI** | `dfm` command for development, federation management, and deployment |
| **Targets** | Flare (distributed) and Local (multiprocessing) execution backends |

## Installation

```bash
pip install nv-dfm-core
```

Or with `uv` in the monorepo:

```bash
uv sync --package nv-dfm-core
```

## Quick Start

```python
from nv_dfm_core.api import Pipeline, Yield, PlaceParam
from nv_dfm_core.session import Session

# Define a pipeline
with Pipeline() as p:
    result = SomeOperation(...)
    Yield(value=result)

# Execute with a session (see tutorials for federation setup)
with Session(federation="my_federation") as session:
    job = session.execute(p)
    for result in job.results():
        print(result)
```

## Documentation

- [DFM Documentation](https://nvidia.github.io/data-federation-mesh/index.html)
- [Installation](https://nvidia.github.io/data-federation-mesh/userguide/about/installation.html)
- [CLI Reference](https://nvidia.github.io/data-federation-mesh/userguide/cli/index.html)
- [Tutorials](../../tutorials/README.md)

## License

Apache License 2.0. See the [LICENSE](../../LICENSE) file for details.
