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:
- Take on
wrapt as a hard dependency and use it everywhere (not desirable)
- 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)
- 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).
- 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.
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:
wraptas a hard dependency and use it everywhere (not desirable)wraptas a soft dependency and silently upgrade if it's present. (Better, but it means introspection behavior may not be consistent between deployments)wraptas a soft dependency and add an option toprimaryto enable it (e.g. it's optionally a hard dependency, and the behavior is the same across deployments).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.