diff --git a/mkdocs/config/base.py b/mkdocs/config/base.py index c3b01e63..9a6099fa 100644 --- a/mkdocs/config/base.py +++ b/mkdocs/config/base.py @@ -17,6 +17,18 @@ class BaseConfigOption: self.warnings = [] self.default = None + @property + def default(self): + try: + # ensure no mutable values are assigned + return self._default.copy() + except AttributeError: + return self._default + + @default.setter + def default(self, value): + self._default = value + def validate(self, value): return self.run_validation(value) diff --git a/mkdocs/config/config_options.py b/mkdocs/config/config_options.py index 25499ac1..887ff693 100644 --- a/mkdocs/config/config_options.py +++ b/mkdocs/config/config_options.py @@ -69,13 +69,9 @@ class OptionallyRequired(BaseConfigOption): if value is None: if self.default is not None: - if hasattr(self.default, 'copy'): - # ensure no mutable values are assigned - value = self.default.copy() - else: - value = self.default + value = self.default elif not self.required: - return + return None elif self.required: raise ValidationError("Required configuration not provided.")