| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- from __future__ import annotations
- from typing import TYPE_CHECKING
- from typing_extensions import TypeAlias
- import wandb
- from wandb.sdk.lib import telemetry
- if TYPE_CHECKING:
- from wandb.proto.wandb_telemetry_pb2 import Deprecated
- UNSET: DoNotSet = object()
- """A temporary default value for removing formerly optional parameters.
- This helps distinguish explicit None arguments from implicit None.
- Usage:
- def myfunction(old_param: DoNotSet = UNSET) -> ...:
- if old_param is not UNSET:
- warn_user()
- else:
- # Set to None if checked in downstream logic,
- # since UNSET is not None.
- old_param = None
- ...
- myfunction() # Does not warn
- myfunction(old_param=None) # Warns
- """
- DoNotSet: TypeAlias = object
- """The type of UNSET."""
- def warn_and_record_deprecation(
- *,
- feature: Deprecated,
- message: str,
- run: wandb.Run | None = None,
- ) -> None:
- """Warn the user that a feature has been deprecated and update telemetry.
- Args:
- feature: A Deprecated protobuf message with the relevant field set to True.
- message: The deprecation warning message to display to the user.
- run: The run whose telemetry to update.
- """
- with telemetry.context(run=run or wandb.run) as tel:
- tel.deprecated.MergeFrom(feature)
- wandb.termwarn(message, repeat=False)
|