logfire icon indicating copy to clipboard operation
logfire copied to clipboard

auto-tracing breaks numpy

Open samuelcolvin opened this issue 1 year ago • 0 comments

Description

Running the following

import logfire

logfire.configure()
logfire.install_auto_tracing(modules=['numpy'])

import numpy

Gives an error:

10:58:46.166 Calling numpy._globals._NoValueType.__new__
10:58:46.167 Calling numpy._utils.set_module
10:58:46.167 Calling numpy._utils.set_module.<locals>.decorator
10:58:46.181 Calling numpy._core._exceptions._display_as_base
10:58:46.181 Calling numpy._core._exceptions._display_as_base
10:58:46.182 Calling numpy._core._exceptions._display_as_base
10:58:46.182 Calling numpy._core._exceptions._display_as_base
10:58:46.182 Calling numpy._core._exceptions._display_as_base
10:58:46.182 Calling numpy._core._exceptions._display_as_base
10:58:46.183 Calling numpy.dtypes._add_dtype_helper
10:58:46.183 Calling numpy.dtypes._add_dtype_helper
10:58:46.183 Calling numpy.dtypes._add_dtype_helper
10:58:46.183 Calling numpy.dtypes._add_dtype_helper
10:58:46.184 Calling numpy.dtypes._add_dtype_helper
10:58:46.184 Calling numpy.dtypes._add_dtype_helper
10:58:46.184 Calling numpy.dtypes._add_dtype_helper
10:58:46.184 Calling numpy.dtypes._add_dtype_helper
10:58:46.184 Calling numpy.dtypes._add_dtype_helper
10:58:46.184 Calling numpy.dtypes._add_dtype_helper
10:58:46.184 Calling numpy.dtypes._add_dtype_helper
10:58:46.185 Calling numpy.dtypes._add_dtype_helper
10:58:46.185 Calling numpy.dtypes._add_dtype_helper
10:58:46.185 Calling numpy.dtypes._add_dtype_helper
10:58:46.185 Calling numpy.dtypes._add_dtype_helper
10:58:46.185 Calling numpy.dtypes._add_dtype_helper
10:58:46.185 Calling numpy.dtypes._add_dtype_helper
10:58:46.185 Calling numpy.dtypes._add_dtype_helper
10:58:46.186 Calling numpy.dtypes._add_dtype_helper
10:58:46.186 Calling numpy.dtypes._add_dtype_helper
10:58:46.186 Calling numpy.dtypes._add_dtype_helper
10:58:46.186 Calling numpy.dtypes._add_dtype_helper
10:58:46.186 Calling numpy.dtypes._add_dtype_helper
10:58:46.186 Calling numpy.dtypes._add_dtype_helper
10:58:46.187 Calling numpy.dtypes._add_dtype_helper
10:58:46.188 Calling numpy._core.overrides.array_function_from_dispatcher
10:58:46.188 Calling numpy._core.overrides.array_function_from_dispatcher.<locals>.decorator
10:58:46.188   Calling numpy._core.overrides.array_function_dispatch
10:58:46.188   Calling numpy._core.overrides.array_function_dispatch.<locals>.decorator
Traceback (most recent call last):
  File "/Users/samuel/code/logfire/numpy_error.py", line 6, in <module>
    import numpy
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "/Users/samuel/code/logfire/logfire/_internal/auto_trace/import_hook.py", line 104, in exec_module
    exec_source(self.source, filename, module.__name__, module.__dict__, self.logfire, self.min_duration)
  File "/Users/samuel/code/logfire/logfire/_internal/auto_trace/rewrite_ast.py", line 43, in exec_source
    exec(code, globs, globs)
  File "/Users/samuel/code/logfire/.venv/lib/python3.12/site-packages/numpy/__init__.py", line 114, in <module>
    from numpy.__config__ import show as show_config
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "/Users/samuel/code/logfire/logfire/_internal/auto_trace/import_hook.py", line 104, in exec_module
    exec_source(self.source, filename, module.__name__, module.__dict__, self.logfire, self.min_duration)
  File "/Users/samuel/code/logfire/logfire/_internal/auto_trace/rewrite_ast.py", line 43, in exec_source
    exec(code, globs, globs)
  File "/Users/samuel/code/logfire/.venv/lib/python3.12/site-packages/numpy/__config__.py", line 4, in <module>
    from numpy._core._multiarray_umath import (
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "/Users/samuel/code/logfire/logfire/_internal/auto_trace/import_hook.py", line 104, in exec_module
    exec_source(self.source, filename, module.__name__, module.__dict__, self.logfire, self.min_duration)
  File "/Users/samuel/code/logfire/logfire/_internal/auto_trace/rewrite_ast.py", line 43, in exec_source
    exec(code, globs, globs)
  File "/Users/samuel/code/logfire/.venv/lib/python3.12/site-packages/numpy/_core/__init__.py", line 23, in <module>
    from . import multiarray
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "/Users/samuel/code/logfire/logfire/_internal/auto_trace/import_hook.py", line 104, in exec_module
    exec_source(self.source, filename, module.__name__, module.__dict__, self.logfire, self.min_duration)
  File "/Users/samuel/code/logfire/logfire/_internal/auto_trace/rewrite_ast.py", line 43, in exec_source
    exec(code, globs, globs)
  File "/Users/samuel/code/logfire/.venv/lib/python3.12/site-packages/numpy/_core/multiarray.py", line 82, in <module>
    @array_function_from_c_func_and_dispatcher(_multiarray_umath.empty_like)
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/samuel/code/logfire/.venv/lib/python3.12/site-packages/numpy/_core/overrides.py", line 178, in decorator
    return array_function_dispatch(
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/samuel/code/logfire/.venv/lib/python3.12/site-packages/numpy/_core/overrides.py", line 158, in decorator
    add_docstring(implementation, dispatcher.__doc__)
TypeError: argument docstring of add_docstring should be a str

Python, Logfire & OS Versions, related packages (not required)

logfire="0.53.0"
platform="macOS-14.6.1-arm64-arm-64bit"
python="3.12.2 (main, Feb 25 2024, 03:55:42) [Clang 17.0.6 ]"
[related_packages]
requests="2.32.3"
pydantic="2.10.0a1"
fastapi="0.114.1"
openai="1.45.0"
protobuf="4.25.4"
rich="13.8.1"
executing="2.1.0"
opentelemetry-api="1.27.0"
opentelemetry-exporter-otlp-proto-common="1.27.0"
opentelemetry-exporter-otlp-proto-http="1.27.0"
opentelemetry-instrumentation="0.48b0"
opentelemetry-instrumentation-aiohttp-client="0.48b0"
opentelemetry-instrumentation-asgi="0.48b0"
opentelemetry-instrumentation-asyncpg="0.48b0"
opentelemetry-instrumentation-celery="0.48b0"
opentelemetry-instrumentation-dbapi="0.48b0"
opentelemetry-instrumentation-django="0.48b0"
opentelemetry-instrumentation-fastapi="0.48b0"
opentelemetry-instrumentation-flask="0.48b0"
opentelemetry-instrumentation-httpx="0.48b0"
opentelemetry-instrumentation-mysql="0.48b0"
opentelemetry-instrumentation-psycopg="0.48b0"
opentelemetry-instrumentation-psycopg2="0.48b0"
opentelemetry-instrumentation-pymongo="0.48b0"
opentelemetry-instrumentation-redis="0.48b0"
opentelemetry-instrumentation-requests="0.48b0"
opentelemetry-instrumentation-sqlalchemy="0.48b0"
opentelemetry-instrumentation-starlette="0.48b0"
opentelemetry-instrumentation-system-metrics="0.48b0"
opentelemetry-instrumentation-wsgi="0.48b0"
opentelemetry-proto="1.27.0"
opentelemetry-sdk="1.27.0"
opentelemetry-semantic-conventions="0.48b0"
opentelemetry-util-http="0.48b0"

samuelcolvin avatar Sep 24 '24 11:09 samuelcolvin