Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/click/_utils.py: 94%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

16 statements  

1from __future__ import annotations 

2 

3import enum 

4import typing as t 

5 

6 

7class Sentinel(enum.Enum): 

8 """Enum used to define sentinel values. 

9 

10 .. seealso:: 

11 

12 `PEP 661 - Sentinel Values <https://peps.python.org/pep-0661/>`_. 

13 """ 

14 

15 UNSET = object() 

16 FLAG_NEEDS_VALUE = object() 

17 

18 def __repr__(self) -> str: 

19 return f"{self.__class__.__name__}.{self.name}" 

20 

21 

22UNSET = Sentinel.UNSET 

23"""Sentinel used to indicate that a value is not set.""" 

24 

25FLAG_NEEDS_VALUE = Sentinel.FLAG_NEEDS_VALUE 

26"""Sentinel used to indicate an option was passed as a flag without a 

27value but is not a flag option. 

28 

29``Option.consume_value`` uses this to prompt or use the ``flag_value``. 

30""" 

31 

32T_UNSET = t.Literal[UNSET] # type: ignore[valid-type] 

33"""Type hint for the :data:`UNSET` sentinel value.""" 

34 

35T_FLAG_NEEDS_VALUE = t.Literal[FLAG_NEEDS_VALUE] # type: ignore[valid-type] 

36"""Type hint for the :data:`FLAG_NEEDS_VALUE` sentinel value."""