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
 |