-
Notifications
You must be signed in to change notification settings - Fork 134
Open
Labels
feature-requestRequest for new or enhanced features.Request for new or enhanced features.
Description
Is your feature request related to a problem? Please describe.
Usage of decorators such as @newrelic.agent.function_trace prevent mypy from checking types on those functions. Here is mypy documentation describing this issue: https://mypy.readthedocs.io/en/stable/generics.html#declaring-decorators
For example
import newrelic.agent
@newrelic.agent.function_trace()
def func_i_want_to_trace(value: str) -> bool:
return value == "yes"
func_i_want_to_trace(1)mypy will not catch this type mismatch
Feature Description
Type all newrelic.agent decorators as described in the mypy doc
Describe Alternatives
Here is a workaround
F = TypeVar("F", bound=Callable[..., Any])
def newrelic_agent_function_trace(func: F) -> F:
return cast(F, newrelic.agent.function_trace()(func))
@newrelic_agent_function_trace
def func_i_want_to_trace(value: str) -> bool:
return value == "yes"Additional context
I am not sure if this is possible if you would like to keep supporting python 2.7
Priority
Nice to Have
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
feature-requestRequest for new or enhanced features.Request for new or enhanced features.