fermilink.drvloop.spec module

class fermilink.drvloop.spec.DerivationSpecContext[source]

Bases: object

DerivationSpecContext(project_dir: ‘Path’, spec_path: ‘Path’, payload: ‘dict[str, Any]’, integrity: ‘dict[str, Any]’)

__init__(project_dir, spec_path, payload, integrity)
Parameters:
  • project_dir (Path)

  • spec_path (Path)

  • payload (dict[str, Any])

  • integrity (dict[str, Any])

Return type:

None

integrity: dict[str, Any]
payload: dict[str, Any]
project_dir: Path
property project_rel: str
spec_path: Path
property spec_rel: str
fermilink.drvloop.spec.compute_locked_hash(payload, *, locked_fields=None)[source]
Parameters:
  • payload (dict[str, Any])

  • locked_fields (tuple[str, ...] | None)

Return type:

str

fermilink.drvloop.spec.ensure_derivation_spec(*, repo_dir, user_prompt, prompt_file)[source]

Create or reuse the active drvloop derivation specification.

Parameters:
  • repo_dir (Path)

  • user_prompt (str)

  • prompt_file (str | None)

Return type:

DerivationSpecContext

fermilink.drvloop.spec.format_spec_context(context)[source]
Parameters:

context (DerivationSpecContext)

Return type:

str

fermilink.drvloop.spec.target_claim_ids(payload)[source]
Parameters:

payload (dict[str, Any])

Return type:

list[str]

fermilink.drvloop.spec.validate_spec_integrity(payload)[source]
Parameters:

payload (dict[str, Any])

Return type:

dict[str, Any]