How noaa-gfdl/fre-cli works
fre-cli is a Click-based command-line interface for GFDL’s FRE workflow. Users invoke a tool and subtool; commands then discover and combine YAML configuration before performing a workflow action such as building a model, processing scientific data, or running analysis. The graph preserves documented and indexed subsystems, but many are unsampled, so their internal links are omitted rather than inferred. The README establishes the CLI purpose; source-index references and excerpts support the specific connections shown.
Main entry points: create_makefile_script.py Makefile generation · create_docker_script.py Container builds · create_checkout_script.py Checkout scripts · create_compile_script.py Compile scripts
Components 26
CLI entry
- Command groups
fre/fre.py - Lazy dispatch
fre/lazy_group.py
Configuration
- YAML discovery
fre/list_/list_yamls_script.py - YAML composition
fre/yamltools/combine_yamls_script.py - YAML helpers
fre/yamltools/helpers.py
Model build
- Make commands
fre/make/fremake.py - Checkout scripts
fre/make/create_checkout_script.py - Source checkout
fre/make/gfdlfremake/checkout.py - Makefile generation
fre/make/create_makefile_script.py - Makefile writer
fre/make/gfdlfremake/makefilefre.py - Compile scripts
fre/make/create_compile_script.py - Container builds
fre/make/create_docker_script.py - Docker builder
fre/make/gfdlfremake/buildDocker.py - Build configuration
fre/make/gfdlfremake/yamlfre.py - Variable substitution
fre/make/gfdlfremake/varsfre.py - Build targets
fre/make/gfdlfremake/targetfre.py
Scientific workflows
- Time averages
fre/app/generate_time_averages/generate_time_averages.py - Python averager
fre/app/generate_time_averages/frepytoolsTimeAverager.py - NCTools averager
fre/app/generate_time_averages/frenctoolsTimeAverager.py - Scientific app tools
fre/app - Postprocessing
fre/pp
Workflow tools
- Analysis plugins
fre/analysis/subtools.py - Catalog
fre/catalog/frecatalog.py - CMOR tools
fre/cmor/frecmor.py - FRE listings
fre/list_
Other components
- CLI user
Connections 36
- CLI user → Command groups: invokes
README.md - Command groups → Lazy dispatch: dispatches
fre/fre.py - Make commands → Command groups
fre/fre.py - Command groups → Time averages
- Command groups → Analysis plugins: loads
fre/fre.py - Make commands → Checkout scripts: calls
fre/make/fremake.py - Make commands → Makefile generation: calls
fre/make/fremake.py - Make commands → Compile scripts: calls
fre/make/fremake.py - Make commands → Container builds: calls
fre/make/fremake.py - Checkout scripts → Source checkout: uses
fre/make/create_checkout_script.py - Checkout scripts → Build configuration: uses
fre/make/create_checkout_script.py - Checkout scripts → Variable substitution: uses
fre/make/create_checkout_script.py - Makefile generation → Makefile writer: uses
fre/make/create_makefile_script.py - Makefile generation → Build configuration: uses
fre/make/create_makefile_script.py - Makefile generation → Variable substitution: uses
fre/make/create_makefile_script.py - Makefile generation → Build targets: uses
fre/make/create_makefile_script.py - Compile scripts → Build configuration: uses
fre/make/create_compile_script.py - Compile scripts → Variable substitution: uses
fre/make/create_compile_script.py - Compile scripts → Build targets: uses
fre/make/create_compile_script.py - Container builds → Docker builder: uses
fre/make/create_docker_script.py - Container builds → Build configuration: uses
fre/make/create_docker_script.py - Container builds → Variable substitution: uses
fre/make/create_docker_script.py - Container builds → Build targets: uses
fre/make/create_docker_script.py - Makefile generation → YAML discovery: queries
fre/make/create_makefile_script.py - Makefile generation → YAML composition: composes
fre/make/create_makefile_script.py - Checkout scripts → YAML discovery: queries
fre/make/create_checkout_script.py - Checkout scripts → YAML composition: composes
fre/make/create_checkout_script.py - Compile scripts → YAML discovery: queries
fre/make/create_compile_script.py - Compile scripts → YAML composition: composes
fre/make/create_compile_script.py - Container builds → YAML discovery: queries
fre/make/create_docker_script.py - Container builds → YAML composition: composes
fre/make/create_docker_script.py - Time averages → Python averager: selects
fre/app/generate_time_averages/generate_time_averages.py - Time averages → NCTools averager: selects
fre/app/generate_time_averages/generate_time_averages.py - Time averages → Scientific app tools
fre/app/generate_time_averages/generate_time_averages.py - YAML discovery → YAML composition
- Analysis plugins → Catalog: runs plugins with