"""Sentinel class for constants with useful reprs""" # Copyright (c) IPython Development Team. # Distributed under the terms of the Modified BSD License. from __future__ import annotations import typing as t class Sentinel: def __init__(self, name: str, module: t.Any, docstring: str | None = None) -> None: self.name = name self.module = module if docstring: self.__doc__ = docstring def __repr__(self) -> str: return str(self.module) + "." + self.name def __copy__(self) -> Sentinel: return self def __deepcopy__(self, memo: t.Any) -> Sentinel: return self