-
Notifications
You must be signed in to change notification settings - Fork 119
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
split env #1164
split env #1164
Conversation
gauteh
commented
Sep 26, 2023
- environment: set up environment class
- basemodel: move reader logic to env
One test is complaining about missing method This is how it was, in
|
I might have forgotten to move it from base model. |
Ok, then I can do it |
Det ser ut som det er ett problem som gjenstår, at man ikkje kan be om data (feks ved seeding med Kunne det være ein ide at |
Da vil feks fallback med seafloor_depth ikkje fungere. Er det ønskelig? Kanskje bedre å finalize før seeding. Ellers trur eg det er lett at det kan oppstå forvirring, eller vi kan få forskjellige resultat. Det gir jo egentlig ikkje meining å kalle seed med seafloor uten at lesere som gir eit havdjup er initialisert. |
Til nå har det vært mulig å seede før man oppretter environment. Men kanskje rekkefølgen kan/bør låses til o.mode = enum[config, ready, run, result]
Dvs, trenger kanskje ikkje fastlåse dette, men første kall til seed_elements der |
Ja, einig. Det vil gjere det lettere for oss også. Det ligner litt på Init/Simulation/Result state som eg prøvde på, men vi kan gjere ein mellomløysing der vi tracker state internt. Bakdelen er at vi må sjekke i kvar metode at vi er i riktig state, men vi kan kanskje fikse det med dekoratorer på ein god måte. |
Ok, eg kan prøve å lage et første, fungerende eksempel. Men da kanskje uten dekoratorer i første omgang, siden eg ikkje har brukt det så masse. |
Ok! |
…s from Environment to Basemodel.run
…), and order of operations is locked to Config/Readers->Seeding->Run
I created a decorator to ensure the correct mode (or state):
I wrapped set_config in BaseModel so that Configurable doesn't need to know about modes/states. The |
Very good. I had moved Modes to opendrift/init, so that it could also be imported by Configurable. |
Note to self: |
… a cached dict, but must be retrieved from config. Updated all examples and tests to seed elements after config and readers
Finally! |
Nice! Good work! I can test a bit tomorrow! I wanted to put in some more checks in the decorator. Maybe we should let it be in master for testing a bit before releasing? |
Yes, that is fine. Everything works now, but that does not mean that everything is beautiful. |
I removed the reset() method, to be sure that everything is pristine and there are no leftovers the only way is to start to scratch. |
Should we merge? |
Yes, ok with me |