HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Python311/Lib/site-packages/traitlets/utils/sentinel.py
"""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