Skip to content

Commit

Permalink
Fixed a bug when a nested dataclass had required arguments 🐛
Browse files Browse the repository at this point in the history
  • Loading branch information
eladrich committed Jan 6, 2022
1 parent ffc1c0d commit bcd2a70
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
2 changes: 1 addition & 1 deletion pyrallis/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "0.1.4.1"
__version__ = "0.1.4.2"

from . import wrappers, utils
from pyrallis.help_formatter import SimpleHelpFormatter
Expand Down
10 changes: 8 additions & 2 deletions pyrallis/wrappers/dataclass_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,14 @@ def defaults(self) -> List[Dataclass]:
default = getattr(default, self.name)
self._defaults.append(default)
else:
default_field_value = utils.default_value(
self._field) # NOTE: That's my problem, post_init was called here to create defaults, understand when defaults are used
try:
default_field_value = utils.default_value(self._field)
except TypeError as e:
# utils.default_value tries to construct the field to get default value and might fail
# if the field has some required arguments
logger.debug(
f"Could not get default value for field '{self._field.name}'\n\tUnderlying Error: {e}")
default_field_value = dataclasses.MISSING
if isinstance(default_field_value, _MISSING_TYPE):
self._defaults = []
else:
Expand Down

0 comments on commit bcd2a70

Please sign in to comment.