Source code for atom.meta.member_modifiers

# --------------------------------------------------------------------------------------
# Copyright (c) 2023, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file LICENSE, distributed with this software.
# --------------------------------------------------------------------------------------
"""Custom marker objects used to modify the default settings of a member."""

from typing import Any, Optional


[docs] class set_default(object): """An object used to set the default value of a base class member.""" __slots__ = ("value", "name") #: Name of the member for which a new default value should be set. Used by #: the metaclass. name: Optional[str] #: New default value to be set. value: Any def __init__(self, value: Any) -> None: self.value = value self.name = None # storage for the metaclass
[docs] def clone(self) -> "set_default": """Create a clone of the sentinel.""" return type(self)(self.value)
# XXX add more sentinels here to allow customizing members without using the # members themselves: # - tag #