Add and use backports of Django's arg spec functions.

Review Request #11928 — Created Jan. 12, 2022 and submitted — Latest diff uploaded

Information

Djblets
release-2.x

Reviewers

We have some deprecated uses of inspect.getargspec(), which has long
since been replaced by inspect.getfullargspec and inspect.Signature.

Most of our uses in Djblets (and Review Board) check for the same few
things (presence of **kwargs, specific parameters, etc.), and
fortunately Django has some nice utility methods in
django.utils.inspect for these purposes. These were introduced in
Django 1.8, and since Djblets 2.x supports Django 1.6, we can't import
them directly.

This change adds a compat module for django.utils.inspect
(djblets.util.compat.django.utils.inspect), and switches our code to
using it.

It also updates the deprecation warning for one of the uses to use our
deprecation classes.

All unit tests pass on all versions of Django and Python.

Diff Revision 2

This is not the most recent revision of the diff. The latest diff is revision 3. See what's changed.

orig
1
2
3

Commits

First Last Summary ID Author
Add and use backports of Django's arg spec functions.
We have some deprecated uses of `inspect.getargspec()`, which has long since been replaced by `inspect.getfullargspec` and `inspect.Signature`. Most of our uses in Djblets (and Review Board) check for the same few things (presence of ``**kwargs``, specific parameters, etc.), and fortunately Django has some nice utility methods in `django.utils.inspect` for these purposes. These were introduced in Django 1.8, and since Djblets 2.x supports Django 1.6, we can't import them directly. This change adds a compat module for `django.utils.inspect` (`djblets.util.compat.django.utils.inspect`), and switches our code to using it. It also updates the deprecation warning for one of the uses to use our deprecation classes.
0b5c6c2737a5ebc4faf0a78d842cb34d5b2af6d0 Christian Hammond
djblets/extensions/templatetags/djblets_extensions.py
djblets/util/decorators.py
djblets/util/compat/django/utils/inspect.py
Loading...