pynydus.engine.nydusfile

Nydusfile DSL parser and static verifier. Spec §8.

Module Contents

Classes

SourceDirective

A SOURCE directive from the Nydusfile.

MergeOp

A single ADD/SET/REMOVE merge operation from the Nydusfile.

NydusfileConfig

Parsed and verified Nydusfile configuration.

Functions

parse

Parse a Nydusfile string and return a verified config.

parse_file

Parse a Nydusfile from a file path.

_is_remove_file_directive

_parse_remove_file_pattern

Extract the glob pattern from a REMOVE file <glob> argument.

_parse_merge_op

Parse an ADD/SET/REMOVE directive argument.

_unquote

Remove surrounding double quotes from a string if present.

resolve_nydusfile

Find an existing Nydusfile in directory.

Data

API

pynydus.engine.nydusfile._logger

‘getLogger(…)’

class pynydus.engine.nydusfile.SourceDirective

A SOURCE directive from the Nydusfile.

agent_type: str

None

path: str

None

class pynydus.engine.nydusfile.MergeOp

A single ADD/SET/REMOVE merge operation from the Nydusfile.

action: pynydus.common.enums.Directive

None

bucket: pynydus.common.enums.ModuleType

None

key: str

None

value: str = <Multiline-String>
class pynydus.engine.nydusfile.NydusfileConfig

Parsed and verified Nydusfile configuration.

base_egg: str | None

None

Local file path to a base .egg archive for inheritance.

merge_ops: list[pynydus.engine.nydusfile.MergeOp]

‘field(…)’

ADD/SET/REMOVE operations to apply to the base egg.

redact: bool

True

Whether to redact credentials and PII. Defaults to True.

excluded_memory_labels: list[pynydus.common.enums.MemoryLabel]

‘field(…)’

Memory buckets to drop after parse (repeatable EXCLUDE lines).

custom_labels: dict[str, str]

‘field(…)’

Manual label overrides: pattern → label. Applied during classification.

sources: list[pynydus.engine.nydusfile.SourceDirective]

‘field(…)’

At most one SOURCE directive (zero if FROM-only).

source_remove_globs: list[str]

‘field(…)’

Glob patterns for source keys to drop before parse (REMOVE file <glob>).

pynydus.engine.nydusfile.parse(text: str) pynydus.engine.nydusfile.NydusfileConfig

Parse a Nydusfile string and return a verified config.

Args: text: Full Nydusfile source (line-oriented DSL).

Returns: Parsed and validated configuration.

Raises: NydusfileError: On syntax errors or failed static verification.

pynydus.engine.nydusfile.parse_file(path: str) pynydus.engine.nydusfile.NydusfileConfig

Parse a Nydusfile from a file path.

Args: path: Filesystem path to the Nydusfile.

Returns: Parsed and validated configuration.

Raises: NydusfileError: On read/parse/verification failure.

pynydus.engine.nydusfile._is_remove_file_directive(arg: str) bool
pynydus.engine.nydusfile._parse_remove_file_pattern(arg: str, lineno: int) str

Extract the glob pattern from a REMOVE file <glob> argument.

Args: arg: The argument string after the REMOVE directive. lineno: Line number for error reporting.

Returns: The glob pattern string.

Raises: NydusfileError: If the pattern is missing or empty.

pynydus.engine.nydusfile._parse_merge_op(action: pynydus.common.enums.Directive, arg: str, lineno: int) pynydus.engine.nydusfile.MergeOp

Parse an ADD/SET/REMOVE directive argument.

Supported forms:

  • ADD memory "text content"

  • ADD memory ./file.md

  • ADD skill ./file.md

  • ADD secret SECRET_NAME

  • SET memory.label=X "new value"

  • REMOVE skill skill_name

  • REMOVE memory.label=X

pynydus.engine.nydusfile._unquote(s: str) str

Remove surrounding double quotes from a string if present.

pynydus.engine.nydusfile.resolve_nydusfile(directory: pathlib.Path) pathlib.Path

Find an existing Nydusfile in directory.

Users must provide an explicit Nydusfile with a SOURCE directive (or valid FROM-only configuration) for spawn workflows.

Args: directory: Directory to search (expects Nydusfile in this folder).

Returns: Resolved path to the Nydusfile.

Raises: NydusfileError: If no Nydusfile exists in directory.