Skip to content

Commit 4e57e0b

Browse files
authored
Merge pull request #20 from axiom-data-science/updates
Updates
2 parents 3ae1faf + 100bf56 commit 4e57e0b

File tree

3 files changed

+39
-19
lines changed

3 files changed

+39
-19
lines changed

docs/whats_new.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# What's New
22

3+
## v0.7.1 (February 21, 2024)
4+
5+
* Small fix to some attributes to be less verbose
6+
* Fix setup.cfg to have correct config path since name changed
7+
8+
39
## v0.7.0 (February 21, 2024)
410

511
* Now initialize all class attributes with None and removed usage of `hasattr` which simplifies and clarifies some code.

particle_tracking_manager/the_manager.py

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -328,36 +328,47 @@ def __setattr__(self, name: str, value) -> None:
328328
# this is not a user-defined option
329329
if -180 < self.lon < 0:
330330
self.__dict__["lon"] += 360
331+
self.config_ptm["lon"]["value"] = False
331332

332333
if name == "surface_only" and value:
333334
self.logger.info(
334-
"overriding values for `do3D`, `z`, and `vertical_mixing` because `surface_only` True"
335+
"Overriding values for do3D, z, and vertical_mixing because surface_only is True (to False, 0, False)."
335336
)
336337
self.do3D = False
337338
self.z = 0
338339
self.vertical_mixing = False
339340

340341
# in case any of these are reset by user after surface_only is already set
341-
if name in ["do3D", "z", "vertical_mixing"]:
342-
if self.surface_only:
343-
self.logger.info(
344-
"overriding values for `do3D`, `z`, and `vertical_mixing` because `surface_only` True"
345-
)
346-
if name == "do3D":
347-
value = False
348-
if name == "z":
349-
value = 0
350-
if name == "vertical_mixing":
351-
value = False
352-
self.__dict__[name] = value
353-
self.config_ptm[name]["value"] = value
354-
355-
# if not 3D turn off vertical_mixing
342+
# if surface_only is True, do3D must be False
343+
if name == "do3D" and value and self.surface_only:
344+
self.logger.info(
345+
"do3D must be False because surface_only is True. Setting do3D to False."
346+
)
347+
self.__dict__["do3D"] = False
348+
self.config_ptm["do3D"]["value"] = False
349+
350+
# if surface_only is True, z must be 0
351+
if name == "z" and value != 0 and self.surface_only:
352+
self.logger.info(
353+
"z must be 0 because surface_only is True. Setting z to 0."
354+
)
355+
self.__dict__["z"] = 0
356+
self.config_ptm["z"]["value"] = 0
357+
358+
# if surface_only is True, vertical_mixing must be False
359+
if name == "vertical_mixing" and value and self.surface_only:
360+
self.logger.info(
361+
"vertical_mixing must be False because surface_only is True. Setting vertical_mixing to False."
362+
)
363+
self.__dict__["vertical_mixing"] = False
364+
self.config_ptm["vertical_mixing"]["value"] = False
365+
366+
# if not 3D turn off vertical_mixing
367+
if name in ["do3D", "vertical_mixing"]:
356368
if not self.do3D and self.vertical_mixing:
357-
self.logger.info("turning off vertical_mixing since do3D is False")
369+
self.logger.info("Turning off vertical_mixing since do3D is False")
358370
self.__dict__["vertical_mixing"] = False
359371
self.config_ptm["vertical_mixing"]["value"] = False
360-
# self.vertical_mixing = False # this is recursive
361372

362373
# set z to None if seed_seafloor is True
363374
if name == "seed_seafloor" and value:
@@ -414,9 +425,12 @@ def __setattr__(self, name: str, value) -> None:
414425
):
415426
# the behavior in calc_end_time changes depending on which variable has been updated
416427
self.__dict__["end_time"] = self.calc_end_time(name)
428+
self.config_ptm["end_time"]["value"] = self.calc_end_time(name)
417429
# duration and steps are always updated now that start_time and end_time are set
418430
self.__dict__["duration"] = self.calc_duration()
431+
self.config_ptm["duration"]["value"] = self.calc_duration()
419432
self.__dict__["steps"] = self.calc_steps()
433+
self.config_ptm["steps"]["value"] = self.calc_steps()
420434

421435
if name == "ocean_model" and value not in _KNOWN_MODELS:
422436
self.logger.info(f"ocean_model is not one of {_KNOWN_MODELS}.")

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ python_requires = >=3.9
6464

6565
[options.package_data]
6666
particle_tracking_manager = the_manager_config.json
67-
particle_tracking_manager.models.opendrift = opendrift_config.json
67+
particle_tracking_manager.models.opendrift = config.json
6868

6969
################ Up until here
7070

0 commit comments

Comments
 (0)