python-variants/variants

Be gentler on introspection

Opened this issue · 0 comments

Since we're using decorators here, I think we're wiping out certain aspects of introspection (such as introspection about the arguments and keyword arguments).

I think there are 4 options when solving this:

  1. Take on wrapt as a hard dependency and use it everywhere (not desirable)
  2. Take on wrapt as a soft dependency and silently upgrade if it's present. (Better, but it means introspection behavior may not be consistent between deployments)
  3. Take on wrapt as a soft dependency and add an option to primary to enable it (e.g. it's optionally a hard dependency, and the behavior is the same across deployments).
  4. Fix introspection ourselves without wrapt.

I think the best option is 4, but if it's too hard or a big maintenance nightmare, I think 3 is the second-best solution.