diff --git a/CHANGES b/CHANGES index 14427b3c2..2f5680450 100644 --- a/CHANGES +++ b/CHANGES @@ -22,6 +22,7 @@ Deprecated * ``sphinx.util.detect_encoding()`` * ``sphinx.util.get_module_source()`` * ``sphinx.util.inspect.Signature`` +* ``sphinx.util.inspect.safe_getmembers()`` Features added -------------- diff --git a/doc/extdev/deprecated.rst b/doc/extdev/deprecated.rst index 6c2b05816..ad5abd0e9 100644 --- a/doc/extdev/deprecated.rst +++ b/doc/extdev/deprecated.rst @@ -87,6 +87,11 @@ The following is a list of deprecated interfaces. - ``sphinx.util.inspect.signature`` and ``sphinx.util.inspect.stringify_signature()`` + * - ``sphinx.util.inspect.safe_getmembers()`` + - 2.4 + - 4.0 + - ``inspect.getmembers()`` + * - ``sphinx.builders.gettext.POHEADER`` - 2.3 - 4.0 diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py index ab3038b05..41d60aebb 100644 --- a/sphinx/util/inspect.py +++ b/sphinx/util/inspect.py @@ -257,6 +257,8 @@ def safe_getattr(obj: Any, name: str, *defargs: Any) -> Any: def safe_getmembers(object: Any, predicate: Callable[[str], bool] = None, attr_getter: Callable = safe_getattr) -> List[Tuple[str, Any]]: """A version of inspect.getmembers() that uses safe_getattr().""" + warnings.warn('safe_getmembers() is deprecated', RemovedInSphinx40Warning) + results = [] # type: List[Tuple[str, Any]] for key in dir(object): try: