25 lines
642 B
Python
25 lines
642 B
Python
"""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
|