Skip to content

[WIP] Consolidate input resolution between the runner and grid submission - #557

Draft
bndikt wants to merge 15 commits into
HEP-FCC:masterfrom
bndikt:input_resolver
Draft

bndikt wants to merge 15 commits into
HEP-FCC:masterfrom
bndikt:input_resolver

Conversation

@bndikt

@bndikt bndikt commented Sep 16, 2026 •

Copy link
Copy Markdown

Status

Changes

  • Add a shared input_resolver.py for physical input paths, replacing the normal runner’s local-only directory discovery and the grid backend’s separate XRootD discovery logic.
  • Resolve local paths, mounted CERN EOS paths, and XRootD URLs. Directory discovery is immediate and non-recursive; results contain sorted, deduplicated .root files.
  • Translate /eos/experiment/fcc/... and /eos/user/... paths automatically. Other EOS namespaces require an explicit XRootD URL.
  • For the normal runner, select inputs in this order:
    • CLI input, which overrides input settings in the analysis script;
    • a per-sample source: input-dir, input-files, or input-file-list;
    • global Analysis.input_dir;
    • campaign discovery as the fallback.
  • Require CLI input mechanisms to be mutually exclusive, and require each sample to select at most one input source. A per-sample input source does not require an otherwise unused global input_dir.
  • Support grid physical inputs through --input or --input-file-list, or through input settings in the analysis script. Grid physical inputs must be accessible through EOS or XRootD; local filesystem paths cannot be accessed by grid workers.
  • Support grid LFNs through --input-lfn-list, Analysis.input_lfn_list, or a sample’s input-lfn-list setting. LFN parsing and DIRAC staging remain grid-specific.
  • Keep physical inputs and LFNs as separate modes; they cannot be mixed in one grid submission. Campaign discovery remains available to the normal runner but is not yet supported for grid submission.
  • Remove the deprecated --files-list option and update affected examples to use --input.
  • Preserve compatibility with legacy RDFanalysis and build_graph scripts that do not use the files_list argument.
  • Fix integration regressions for data-source Analysis scripts that do not define samples.

Testing and documentation

  • Add tests for shared input resolution, input-source selection, and grid input planning.
  • Update the related man pages.

@bndikt

bndikt commented Oct 23, 2026

Copy link
Copy Markdown
Author

rework done - ready for review once #538 was merged

@jmcarcell

Copy link
Copy Markdown
Member

Alternatively you could use stacked prs for dependent branches (allows reviewing each independently) https://docs.github.com/en/pull-requests/get-started/about-stacked-prs

@bndikt

bndikt commented Oct 23, 2026

Copy link
Copy Markdown
Author

Alternatively you could use stacked prs for dependent branches (allows reviewing each independently) https://docs.github.com/en/pull-requests/get-started/about-stacked-prs

Good point. But I suppose I would need to create a temporary branch for this to have the desired effect of showing only the diffs with respect to its new base (i.e. #538) (I cannot choose a branch of my fork to base this one on). If you agree with that, I'll give it a shot.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants