-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UW-632 Schema Injection #551
UW-632 Schema Injection #551
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks for the changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Honestly, everything was so solid that naming was all I had for feedback! LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great to me! I see the link that was broken and caused the tests to fail works now. I assume this had to do with the discussion yesterday when the epic link was broken.
Synopsis
Provide a mechanism to support existing drivers requiring
rundir:
(Assets
and all its subclasses) andexecution:
(Driver
and all its subclasses) blocks in their UW YAML configs to inherit those from a block belonging to a coupled executable, by instantiating such constituent drivers with a newcoupler=
argument specifying the name of the coupled-executable block. See below for an example.Note that the diffs in most of the changed files fall into two trivial categories:
STR
dataclass.Type
Impact
Checklist
Consider this UW YAML config,
coastal.yaml
, for a hypothetical coupled driver:Ultimately,
coastal.exe
will be executed, but it will be linked to CDEPS, SCHISM, and WaveWatchIII code, so its driver will need to call on those constituent components' drivers to provision assets (namelist files, stream files) to the run directory. Theschism:
block does not contain the requiredrundir:
entry, though, so will not pass validation when a hypotheticalCoastal
driver tries to instantiate aSCHISM
driver object:Since the
coastal:
block definesrundir:
, the newcoupler=
argument can be provided to specify that run-time facts required by theSCHISM
driver be obtained from that block:With an instantiated
SCHISM
driver in hand, theCoastal
driver could call e.g.schism_driver.namelist_file()
to execute the task to provision the SCHISM namelist file.