"""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 | |