aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/pytest/py3/_pytest/stash.py
diff options
context:
space:
mode:
authormonster <monster@ydb.tech>2022-07-07 14:41:37 +0300
committermonster <monster@ydb.tech>2022-07-07 14:41:37 +0300
commit06e5c21a835c0e923506c4ff27929f34e00761c2 (patch)
tree75efcbc6854ef9bd476eb8bf00cc5c900da436a2 /contrib/python/pytest/py3/_pytest/stash.py
parent03f024c4412e3aa613bb543cf1660176320ba8f4 (diff)
downloadydb-06e5c21a835c0e923506c4ff27929f34e00761c2.tar.gz
fix ya.make
Diffstat (limited to 'contrib/python/pytest/py3/_pytest/stash.py')
-rw-r--r--contrib/python/pytest/py3/_pytest/stash.py112
1 files changed, 0 insertions, 112 deletions
diff --git a/contrib/python/pytest/py3/_pytest/stash.py b/contrib/python/pytest/py3/_pytest/stash.py
deleted file mode 100644
index e61d75b95f..0000000000
--- a/contrib/python/pytest/py3/_pytest/stash.py
+++ /dev/null
@@ -1,112 +0,0 @@
-from typing import Any
-from typing import cast
-from typing import Dict
-from typing import Generic
-from typing import TypeVar
-from typing import Union
-
-
-__all__ = ["Stash", "StashKey"]
-
-
-T = TypeVar("T")
-D = TypeVar("D")
-
-
-class StashKey(Generic[T]):
- """``StashKey`` is an object used as a key to a :class:`Stash`.
-
- A ``StashKey`` is associated with the type ``T`` of the value of the key.
-
- A ``StashKey`` is unique and cannot conflict with another key.
- """
-
- __slots__ = ()
-
-
-class Stash:
- r"""``Stash`` is a type-safe heterogeneous mutable mapping that
- allows keys and value types to be defined separately from
- where it (the ``Stash``) is created.
-
- Usually you will be given an object which has a ``Stash``, for example
- :class:`~pytest.Config` or a :class:`~_pytest.nodes.Node`:
-
- .. code-block:: python
-
- stash: Stash = some_object.stash
-
- If a module or plugin wants to store data in this ``Stash``, it creates
- :class:`StashKey`\s for its keys (at the module level):
-
- .. code-block:: python
-
- # At the top-level of the module
- some_str_key = StashKey[str]()
- some_bool_key = StashKey[bool]()
-
- To store information:
-
- .. code-block:: python
-
- # Value type must match the key.
- stash[some_str_key] = "value"
- stash[some_bool_key] = True
-
- To retrieve the information:
-
- .. code-block:: python
-
- # The static type of some_str is str.
- some_str = stash[some_str_key]
- # The static type of some_bool is bool.
- some_bool = stash[some_bool_key]
- """
-
- __slots__ = ("_storage",)
-
- def __init__(self) -> None:
- self._storage: Dict[StashKey[Any], object] = {}
-
- def __setitem__(self, key: StashKey[T], value: T) -> None:
- """Set a value for key."""
- self._storage[key] = value
-
- def __getitem__(self, key: StashKey[T]) -> T:
- """Get the value for key.
-
- Raises ``KeyError`` if the key wasn't set before.
- """
- return cast(T, self._storage[key])
-
- def get(self, key: StashKey[T], default: D) -> Union[T, D]:
- """Get the value for key, or return default if the key wasn't set
- before."""
- try:
- return self[key]
- except KeyError:
- return default
-
- def setdefault(self, key: StashKey[T], default: T) -> T:
- """Return the value of key if already set, otherwise set the value
- of key to default and return default."""
- try:
- return self[key]
- except KeyError:
- self[key] = default
- return default
-
- def __delitem__(self, key: StashKey[T]) -> None:
- """Delete the value for key.
-
- Raises ``KeyError`` if the key wasn't set before.
- """
- del self._storage[key]
-
- def __contains__(self, key: StashKey[T]) -> bool:
- """Return whether key was set."""
- return key in self._storage
-
- def __len__(self) -> int:
- """Return how many items exist in the stash."""
- return len(self._storage)