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
Is your feature request related to a problem? Please describe.
Usage of decorators such as
@newrelic.agent.function_traceprevent mypy from checking types on those functions. Here is mypy documentation describing this issue: https://mypy.readthedocs.io/en/stable/generics.html#declaring-decoratorsFor example
mypy will not catch this type mismatch
Feature Description
Type all
newrelic.agentdecorators as described in the mypy docDescribe Alternatives
Here is a workaround
Additional context
I am not sure if this is possible if you would like to keep supporting python 2.7
Priority
Nice to Have