Conversation
|
Wow, the animated gifs look very cool; nice addition! Let me know if you want me to also do a code review |
Great! A code review for this PR I imagine you mean? Otherwise there is still a need for reviews on #269 (which indeed this PR has branched off). It's a bigger PR but if you're limited for time even a high level review of the If not I can also wait until @ammedd and @VeckoTheGecko are available again. |
|
I had a quick look at the ProblemSimulator class in simulator.py but have so many meetings and interviews these days that I don't have time for a full review. Would be great if @erikvansebille or @VeckoTheGecko mangage. |
* psuedo code * remove notes * fill some problems * nicks changes * still pseudo-code * prepare for problem handling logic * work in progress... * moving logic to _run * separate problem classes and separation logic * re-structure * progressing changes across simuate_schedule and _run * checkpoint and reverification logic * tidy up some logging etc * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * propagating general pre-departure problem * propagate general problem during expedition * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix waypoint index selection for problem waypoint vs waypoint where scheduling will fail * work towards propagating instrument problems * fix contingency time checker, finish propagating instrument problem * refactor * propagating multiple problems per expedition, bugs still to fix * propagate multiple problems across a single expedition * start moving towards per waypoint contingency checker * progress towards individual waypoint contingency checking * revert to simpler next waypoint contingency checks * waypoint congtingency checking and clearer output logging * account for instrument deployment timings * tidy up TODOs and delete checkpoint file at end of successful expedition * working towards problem selection logic * define problem selection logic and build system for caching selected problems for re-use with the same expedition * parse prob_level argument through `run` CLI command * update class structure * add info to repo README and tidy up * re-organise utils.py, improve instrument config register and downstream stationkeeping time calculations * improve problems dir structures and giving unique identifiers, plus improve checkpoint error messaging * updating tests and better unexpected error handling * better handling of old problems/checkpoint files if simulation fails for unexpected errors * update test with new log output * tidy up * handle single waypoint expeditions and tidy up * remove duplication * re-structure dir * scenario class tests * tests for problems simulator class * add test for calc_wp_stationkeeping_time * add test for _calc_sail_time * tests for checkpoint class * move back test zarr files * reinstate original structure * refactor, move methods to static * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Enhance problems terminal output styling (#276) * display problems output in tabular format * tidy up and fix simulation exiting procedure * post review edits * Update quickstart and assignment docs (#280) * update quickstart * update sail the ship * Generate post-expedition problems report (#279) * add post expedition report generator * update tests and add new for post expedition report * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * hash based on instrument deployments only * only one problem per waypoint (plus test) * add todo for future * tidy up * remove patching * remove unnecessary assertions * restructure scenario class definition and deployment * remove "around" ambiguity * fix expedition strategy and re-arrange output dir structure * shorten variable naming * tidy up comment * update test to updated problem class organisation * change from "prob-level" to "difficulty level", set default to "easy" * more error handling * fix test (0/1 -> "easy"/"medium") * update docs after change difficulty level default to "easy" * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * schedule.verify() now also takes instrument deployment times into account * update invalid schedule messaging * avoid duplicating drifter stationkeeping time * update tests * update plan UI test, more control over waypoints to test * more detail to messaging * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * update datetimes in static/expedition.yaml (#285) --------- Co-authored-by: Emma Daniels <e.e.daniels1@uu.nl> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This PR makes stylistic changes to how the 'problems' (#269) are displayed to the user during the simulations. The output is now displayed in a dynamic tabular format (using Rich, no new dependencies required).
The waiting times are artificial between each update, it does not actually take this long but the pauses help with the narrative and following along.
I've attached GIFs below showing the output when the problem a) causes a delay which requires re-scheduling or b) enough contingency time in the schedule and the expedition simulation can continue.
Closes #274
a) re-scheduling required ❌
b) enough contingency time ✅