Skip to content

Commit 503c285

Browse files
committed
docs: align Fern code reference nav
1 parent ec469db commit 503c285

36 files changed

Lines changed: 259 additions & 46 deletions

Makefile

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -475,9 +475,14 @@ DOCS_PYTHON ?= .venv/bin/python
475475
DOCS_JUPYTEXT ?= .venv/bin/jupytext
476476
DOCS_MKDOCS ?= .venv/bin/mkdocs
477477
DOCS_PY2FERN ?= .venv/bin/py2fern
478-
FERN_API_REFERENCE_SOURCE ?= packages/data-designer-config/src/data_designer/config
479-
FERN_API_REFERENCE_MODULE ?= data_designer.config
480-
FERN_API_REFERENCE_OUTPUT ?= fern/code-reference/data-designer
478+
FERN_API_REFERENCE_OUTPUT ?= fern/code-reference
479+
FERN_API_REFERENCE_CONFIG_OUTPUT ?= $(FERN_API_REFERENCE_OUTPUT)/data-designer
480+
FERN_API_REFERENCE_CONFIG_SOURCE ?= packages/data-designer-config/src/data_designer/config
481+
FERN_API_REFERENCE_INTERFACE_SOURCE ?= packages/data-designer/src/data_designer/interface
482+
FERN_API_REFERENCE_ENGINE_COLUMN_GENERATORS_SOURCE ?= packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py
483+
FERN_API_REFERENCE_ENGINE_MCP_SOURCE ?= packages/data-designer-engine/src/data_designer/engine/mcp
484+
FERN_API_REFERENCE_ENGINE_PROCESSORS_SOURCE ?= packages/data-designer-engine/src/data_designer/engine/processing/processors
485+
FERN_API_REFERENCE_ENGINE_SEED_READERS_SOURCE ?= packages/data-designer-engine/src/data_designer/engine/resources/seed_reader.py
481486
FERN_VERSION ?= $(shell jq -r .version fern/fern.config.json)
482487
FERN ?= npx -y fern-api@$(FERN_VERSION)
483488

@@ -499,7 +504,12 @@ serve-docs-locally:
499504
generate-fern-api-reference:
500505
@echo "📚 Generating Fern API reference with py2fern ($(DOCS_PY2FERN))..."
501506
@rm -rf $(FERN_API_REFERENCE_OUTPUT)
502-
$(DOCS_PY2FERN) write $(FERN_API_REFERENCE_SOURCE) --module $(FERN_API_REFERENCE_MODULE) --output $(FERN_API_REFERENCE_OUTPUT) --clean
507+
$(DOCS_PY2FERN) write $(FERN_API_REFERENCE_CONFIG_SOURCE) --module data_designer.config --output $(FERN_API_REFERENCE_CONFIG_OUTPUT) --clean
508+
$(DOCS_PY2FERN) write $(FERN_API_REFERENCE_INTERFACE_SOURCE) --module data_designer.interface --output $(FERN_API_REFERENCE_OUTPUT)/interface --clean
509+
$(DOCS_PY2FERN) write $(FERN_API_REFERENCE_ENGINE_COLUMN_GENERATORS_SOURCE) --module data_designer.engine.column_generators.generators.base --output $(FERN_API_REFERENCE_OUTPUT)/engine/column-generators --clean
510+
$(DOCS_PY2FERN) write $(FERN_API_REFERENCE_ENGINE_MCP_SOURCE) --module data_designer.engine.mcp --output $(FERN_API_REFERENCE_OUTPUT)/engine/mcp --clean
511+
$(DOCS_PY2FERN) write $(FERN_API_REFERENCE_ENGINE_PROCESSORS_SOURCE) --module data_designer.engine.processing.processors --output $(FERN_API_REFERENCE_OUTPUT)/engine/processors --clean
512+
$(DOCS_PY2FERN) write $(FERN_API_REFERENCE_ENGINE_SEED_READERS_SOURCE) --module data_designer.engine.resources.seed_reader --output $(FERN_API_REFERENCE_OUTPUT)/engine/seed-readers --clean
503513

504514
generate-fern-api-reference-native:
505515
@echo "📚 Generating Fern API reference with Fern CLI..."

fern/AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ This folder contains the Fern docs site for NeMo Data Designer. Use `fern/README
1212

1313
## Generated Artifacts
1414

15-
- `make generate-fern-api-reference` creates gitignored API reference files in `fern/code-reference/`.
15+
- `make generate-fern-api-reference` creates gitignored API reference files in `fern/code-reference/` for `data_designer.config`, `data_designer.interface`, and curated engine extension modules.
1616
- `py2fern` only descends into Python packages. Add `__init__.py` to any new subdirectory whose modules should appear in the API reference.
1717
- `make generate-fern-notebooks` creates gitignored notebook files in `fern/components/notebooks/`.
1818
- `docs/notebook_source/*.py` is the notebook source of truth.

fern/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ Two pre-render steps are needed before the dev server has all content. Both prod
2525

2626
### 1. Python API reference (gitignored - must regenerate)
2727

28-
`make generate-fern-api-reference` uses `py2fern` to extract API docs from the local Python source (`packages/data-designer-config/src/data_designer/config`). The output lands in `fern/code-reference/data-designer/` (gitignored).
28+
`make generate-fern-api-reference` uses `py2fern` to extract API docs from local Python source. The output lands in `fern/code-reference/` (gitignored), preserving the existing Config API folder and adding Interface and curated Engine extension API folders.
2929

3030
```bash
3131
make generate-fern-api-reference
3232
```
3333

3434
`py2fern` only descends into Python packages. Add `__init__.py` to any new subdirectory whose modules should appear in the API reference.
3535

36-
The `libraries:` block in [`docs.yml`](docs.yml) still documents the equivalent Fern-native generator. Run `make generate-fern-api-reference-native` only when you want the Fern CLI output and have Fern auth.
36+
The `libraries:` block in [`docs.yml`](docs.yml) still documents the Fern-native config generator. Run `make generate-fern-api-reference-native` only when you want the Fern CLI output and have Fern auth.
3737

3838
Re-run when the upstream package source changes.
3939

fern/docs.yml

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ versions:
5050
slug: latest
5151

5252
libraries:
53-
data-designer:
53+
data-designer-config:
5454
input:
5555
git: https://github.com/NVIDIA-NeMo/DataDesigner
5656
subpath: packages/data-designer-config/src/data_designer/config
@@ -331,24 +331,56 @@ redirects:
331331
destination: "/nemo/datadesigner/plugins/file-system-seed-reader-plugins"
332332
- source: "/nemo/datadesigner/plugins/example"
333333
destination: "/nemo/datadesigner/plugins/example-plugin"
334-
# Code Reference: mkdocstrings tree -> Fern Topic Overviews subsection.
334+
# Code Reference: mkdocstrings tree -> Fern package-shaped sections.
335335
# Underscored page names get kebab'd at the page-slug level too (Fern's title
336336
# slugifier drops underscores), so the snake_case modules need per-page rules.
337+
- source: "/nemo/datadesigner/code_reference"
338+
destination: "/nemo/datadesigner/code-reference/overview"
339+
- source: "/nemo/datadesigner/code_reference/config"
340+
destination: "/nemo/datadesigner/code-reference/config/overview"
341+
- source: "/nemo/datadesigner/code_reference/config/column_configs"
342+
destination: "/nemo/datadesigner/code-reference/config/column-configs"
343+
- source: "/nemo/datadesigner/code_reference/config/config_builder"
344+
destination: "/nemo/datadesigner/code-reference/config/config-builder"
345+
- source: "/nemo/datadesigner/code_reference/config/data_designer_config"
346+
destination: "/nemo/datadesigner/code-reference/config/data-designer-config"
347+
- source: "/nemo/datadesigner/code_reference/config/run_config"
348+
destination: "/nemo/datadesigner/code-reference/config/run-config"
349+
- source: "/nemo/datadesigner/code_reference/config/sampler_params"
350+
destination: "/nemo/datadesigner/code-reference/config/sampler-params"
351+
- source: "/nemo/datadesigner/code_reference/config/validator_params"
352+
destination: "/nemo/datadesigner/code-reference/config/validator-params"
353+
- source: "/nemo/datadesigner/code_reference/config/:module*"
354+
destination: "/nemo/datadesigner/code-reference/config/:module*"
355+
- source: "/nemo/datadesigner/code_reference/interface"
356+
destination: "/nemo/datadesigner/code-reference/interface/overview"
357+
- source: "/nemo/datadesigner/code_reference/interface/data_designer"
358+
destination: "/nemo/datadesigner/code-reference/interface/data-designer"
359+
- source: "/nemo/datadesigner/code_reference/interface/:module*"
360+
destination: "/nemo/datadesigner/code-reference/interface/:module*"
361+
- source: "/nemo/datadesigner/code_reference/engine"
362+
destination: "/nemo/datadesigner/code-reference/engine-extension-api/overview"
363+
- source: "/nemo/datadesigner/code_reference/engine/column_generators"
364+
destination: "/nemo/datadesigner/code-reference/engine-extension-api/column-generators"
365+
- source: "/nemo/datadesigner/code_reference/engine/seed_readers"
366+
destination: "/nemo/datadesigner/code-reference/engine-extension-api/seed-readers"
367+
- source: "/nemo/datadesigner/code_reference/engine/:module*"
368+
destination: "/nemo/datadesigner/code-reference/engine-extension-api/:module*"
337369
- source: "/nemo/datadesigner/code_reference/column_configs"
338-
destination: "/nemo/datadesigner/code-reference/topic-overviews/column-configs"
370+
destination: "/nemo/datadesigner/code-reference/config/column-configs"
339371
- source: "/nemo/datadesigner/code_reference/config_builder"
340-
destination: "/nemo/datadesigner/code-reference/topic-overviews/config-builder"
372+
destination: "/nemo/datadesigner/code-reference/config/config-builder"
341373
- source: "/nemo/datadesigner/code_reference/data_designer_config"
342-
destination: "/nemo/datadesigner/code-reference/topic-overviews/data-designer-config"
374+
destination: "/nemo/datadesigner/code-reference/config/data-designer-config"
343375
- source: "/nemo/datadesigner/code_reference/run_config"
344-
destination: "/nemo/datadesigner/code-reference/topic-overviews/run-config"
376+
destination: "/nemo/datadesigner/code-reference/config/run-config"
345377
- source: "/nemo/datadesigner/code_reference/sampler_params"
346-
destination: "/nemo/datadesigner/code-reference/topic-overviews/sampler-params"
378+
destination: "/nemo/datadesigner/code-reference/config/sampler-params"
347379
- source: "/nemo/datadesigner/code_reference/validator_params"
348-
destination: "/nemo/datadesigner/code-reference/topic-overviews/validator-params"
380+
destination: "/nemo/datadesigner/code-reference/config/validator-params"
349381
# Modules whose page slug already matches the filename (no underscores):
350382
- source: "/nemo/datadesigner/code_reference/:module*"
351-
destination: "/nemo/datadesigner/code-reference/topic-overviews/:module*"
383+
destination: "/nemo/datadesigner/code-reference/config/:module*"
352384

353385
# Dev Notes: mkdocs-material blog plugin URL shape.
354386
# Section title "Dev Notes" -> /dev-notes; intermediate posts/ directory dropped.

fern/versions/latest.yml

Lines changed: 51 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -141,30 +141,68 @@ navigation:
141141
path: ./latest/pages/plugins/discover.mdx
142142
- section: Code Reference
143143
contents:
144-
- section: Topic Overviews
144+
- page: Overview
145+
path: ./latest/pages/code_reference/index.mdx
146+
- section: Config
145147
contents:
148+
- page: Overview
149+
path: ./latest/pages/code_reference/config/index.mdx
146150
- page: models
147-
path: ./latest/pages/code_reference/models.mdx
151+
path: ./latest/pages/code_reference/config/models.mdx
148152
- page: mcp
149-
path: ./latest/pages/code_reference/mcp.mdx
153+
path: ./latest/pages/code_reference/config/mcp.mdx
150154
- page: column_configs
151-
path: ./latest/pages/code_reference/column_configs.mdx
155+
path: ./latest/pages/code_reference/config/column_configs.mdx
152156
- page: config_builder
153-
path: ./latest/pages/code_reference/config_builder.mdx
157+
path: ./latest/pages/code_reference/config/config_builder.mdx
154158
- page: data_designer_config
155-
path: ./latest/pages/code_reference/data_designer_config.mdx
159+
path: ./latest/pages/code_reference/config/data_designer_config.mdx
156160
- page: run_config
157-
path: ./latest/pages/code_reference/run_config.mdx
161+
path: ./latest/pages/code_reference/config/run_config.mdx
158162
- page: sampler_params
159-
path: ./latest/pages/code_reference/sampler_params.mdx
163+
path: ./latest/pages/code_reference/config/sampler_params.mdx
160164
- page: validator_params
161-
path: ./latest/pages/code_reference/validator_params.mdx
165+
path: ./latest/pages/code_reference/config/validator_params.mdx
166+
- page: seeds
167+
path: ./latest/pages/code_reference/config/seeds.mdx
162168
- page: processors
163-
path: ./latest/pages/code_reference/processors.mdx
169+
path: ./latest/pages/code_reference/config/processors.mdx
164170
- page: analysis
165-
path: ./latest/pages/code_reference/analysis.mdx
166-
- folder: ../code-reference/data-designer
167-
title: Python API
171+
path: ./latest/pages/code_reference/config/analysis.mdx
172+
- folder: ../code-reference/data-designer
173+
title: Config API
174+
- section: Interface
175+
contents:
176+
- page: Overview
177+
path: ./latest/pages/code_reference/interface/index.mdx
178+
- page: data_designer
179+
path: ./latest/pages/code_reference/interface/data_designer.mdx
180+
- page: results
181+
path: ./latest/pages/code_reference/interface/results.mdx
182+
- page: errors
183+
path: ./latest/pages/code_reference/interface/errors.mdx
184+
- folder: ../code-reference/interface
185+
title: Interface API
186+
- section: Engine Extension API
187+
contents:
188+
- page: Overview
189+
path: ./latest/pages/code_reference/engine/index.mdx
190+
- page: seed_readers
191+
path: ./latest/pages/code_reference/engine/seed_readers.mdx
192+
- page: processors
193+
path: ./latest/pages/code_reference/engine/processors.mdx
194+
- page: mcp
195+
path: ./latest/pages/code_reference/engine/mcp.mdx
196+
- page: column_generators
197+
path: ./latest/pages/code_reference/engine/column_generators.mdx
198+
- folder: ../code-reference/engine/seed-readers
199+
title: Seed Reader API
200+
- folder: ../code-reference/engine/processors
201+
title: Processor API
202+
- folder: ../code-reference/engine/mcp
203+
title: MCP Runtime API
204+
- folder: ../code-reference/engine/column-generators
205+
title: Column Generator API
168206
- section: Dev Notes
169207
contents:
170208
- page: Overview

fern/versions/latest/pages/code_reference/analysis.mdx renamed to fern/versions/latest/pages/code_reference/config/analysis.mdx

File renamed without changes.

fern/versions/latest/pages/code_reference/column_configs.mdx renamed to fern/versions/latest/pages/code_reference/config/column_configs.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ The `column_configs` module defines configuration objects for all Data Designer
77

88
<Note>
99
`column_type` is a discriminator field
10-
The `column_type` argument is used to identify column types when deserializing the [Data Designer Configuration](/code-reference/topic-overviews/data-designer-config) from JSON/YAML. It acts as the discriminator in a [discriminated union](https://docs.pydantic.dev/latest/concepts/unions/#discriminated-unions), allowing Pydantic to automatically determine which column configuration class to instantiate.
10+
The `column_type` argument is used to identify column types when deserializing the [Data Designer Configuration](/code-reference/config/data-designer-config) from JSON/YAML. It acts as the discriminator in a [discriminated union](https://docs.pydantic.dev/latest/concepts/unions/#discriminated-unions), allowing Pydantic to automatically determine which column configuration class to instantiate.
1111
</Note>

fern/versions/latest/pages/code_reference/config_builder.mdx renamed to fern/versions/latest/pages/code_reference/config/config_builder.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ title: "Data Designer's Config Builder"
33
description: ""
44
position: 4
55
---
6-
The `config_builder` module provides a high-level interface for constructing Data Designer configurations through the [DataDesignerConfigBuilder](#data_designer.config.config_builder.DataDesignerConfigBuilder) class, enabling programmatic creation of [DataDesignerConfig](/code-reference/topic-overviews/data-designer-config#data_designer.config.data_designer_config.DataDesignerConfig) objects by incrementally adding column configurations, constraints, processors, and profilers.
6+
The `config_builder` module provides a high-level interface for constructing Data Designer configurations through the [DataDesignerConfigBuilder](#data_designer.config.config_builder.DataDesignerConfigBuilder) class, enabling programmatic creation of [DataDesignerConfig](/code-reference/config/data-designer-config#data_designer.config.data_designer_config.DataDesignerConfig) objects by incrementally adding column configurations, constraints, processors, and profilers.
77

88
You can use the builder to create Data Designer configurations from scratch or from existing configurations stored in YAML/JSON files via [`from_config()`](#data_designer.config.config_builder.DataDesignerConfigBuilder.from_config). The builder includes validation capabilities to catch configuration errors early and can work with seed datasets from local sources or external datastores. Once configured, use [`build()`](#data_designer.config.config_builder.DataDesignerConfigBuilder.build) to generate the final configuration object or [`write_config()`](#data_designer.config.config_builder.DataDesignerConfigBuilder.write_config) to serialize it to disk.
99

1010
<Note>
1111
Model configs are required
12-
[DataDesignerConfigBuilder](#data_designer.config.config_builder.DataDesignerConfigBuilder) requires a list of model configurations at initialization. This tells the builder which model aliases can be referenced by LLM-generated columns (such as [`LLMTextColumnConfig`](/code-reference/topic-overviews/column-configs#data_designer.config.column_configs.LLMTextColumnConfig), [`LLMCodeColumnConfig`](/code-reference/topic-overviews/column-configs#data_designer.config.column_configs.LLMCodeColumnConfig), [`LLMStructuredColumnConfig`](/code-reference/topic-overviews/column-configs#data_designer.config.column_configs.LLMStructuredColumnConfig), and [`LLMJudgeColumnConfig`](/code-reference/topic-overviews/column-configs#data_designer.config.column_configs.LLMJudgeColumnConfig)). Each model configuration specifies the model alias, model provider, model ID, and inference parameters that will be used during data generation.
12+
[DataDesignerConfigBuilder](#data_designer.config.config_builder.DataDesignerConfigBuilder) requires a list of model configurations at initialization. This tells the builder which model aliases can be referenced by LLM-generated columns (such as [`LLMTextColumnConfig`](/code-reference/config/column-configs#data_designer.config.column_configs.LLMTextColumnConfig), [`LLMCodeColumnConfig`](/code-reference/config/column-configs#data_designer.config.column_configs.LLMCodeColumnConfig), [`LLMStructuredColumnConfig`](/code-reference/config/column-configs#data_designer.config.column_configs.LLMStructuredColumnConfig), and [`LLMJudgeColumnConfig`](/code-reference/config/column-configs#data_designer.config.column_configs.LLMJudgeColumnConfig)). Each model configuration specifies the model alias, model provider, model ID, and inference parameters that will be used during data generation.
1313
</Note>

fern/versions/latest/pages/code_reference/data_designer_config.mdx renamed to fern/versions/latest/pages/code_reference/config/data_designer_config.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ position: 5
55
---
66
[DataDesignerConfig](#data_designer.config.data_designer_config.DataDesignerConfig) is the main configuration object for builder datasets with Data Designer. It is a declarative configuration for defining the dataset you want to generate column-by-column, including options for dataset post-processing, validation, and profiling.
77

8-
Generally, you should use the [DataDesignerConfigBuilder](/code-reference/topic-overviews/config-builder#data_designer.config.config_builder.DataDesignerConfigBuilder) to build your configuration, but you can also build it manually by instantiating the [DataDesignerConfig](#data_designer.config.data_designer_config.DataDesignerConfig) class directly.
8+
Generally, you should use the [DataDesignerConfigBuilder](/code-reference/config/config-builder#data_designer.config.config_builder.DataDesignerConfigBuilder) to build your configuration, but you can also build it manually by instantiating the [DataDesignerConfig](#data_designer.config.data_designer_config.DataDesignerConfig) class directly.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: "Config Package"
3+
description: ""
4+
position: 1
5+
---
6+
7+
The `data-designer-config` package provides `data_designer.config`, the configuration layer of Data Designer. It contains the objects used to describe dataset structure, model access, tool access, seed data, sampler parameters, validators, processors, run settings, plugin registrations, and analysis results.
8+
9+
This package is the base of the dependency chain. Engine and interface code consume these config objects, but config objects do not execute generation directly.
10+
11+
For programmatic configuration work, start with [config_builder](config-builder) and [data_designer_config](data-designer-config). Use the narrower pages for exact constructor fields for columns, models, MCP tools, seeds, processors, samplers, validators, or profiling results.

0 commit comments

Comments
 (0)