Skip to content

[CI][Python] Emscripten build fails building stubs #49426

@raulcd

Description

@raulcd

Describe the bug, including details regarding any error messages, version, and platform.

The emscripten build has been failing since we introduced the PyArrow stubs generation due to:

Traceback (most recent call last):
-- Finished cmake --build --target install for PyArrow
  File "/opt/conda/envs/arrow/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
    main()
  File "/opt/conda/envs/arrow/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373, in main
-- Copying stubs: /build/python/pyarrow-stubs/pyarrow -> /build/python/build/lib.emscripten_3_1_58_wasm32-cpython-312/pyarrow
Updating stub docstrings in: /build/python/build/lib.emscripten_3_1_58_wasm32-cpython-312
    json_out["return_val"] = hook(**hook_input["kwargs"])
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/arrow/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 280, in build_wheel
    return _build_backend().build_wheel(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/build_meta.py", line 438, in build_wheel
    return _build(['bdist_wheel'])
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/build_meta.py", line 429, in _build
    return self._build_with_temp_dir(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/build_meta.py", line 410, in _build_with_temp_dir
    self.run_setup()
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/build_meta.py", line 317, in run_setup
    exec(code, locals())
  File "<string>", line 472, in <module>
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/__init__.py", line 117, in setup
    return distutils.core.setup(**attrs)  # type: ignore[return-value]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 186, in setup
    return run_commands(dist)
           ^^^^^^^^^^^^^^^^^^
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
    dist.run_commands()
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1000, in run_commands
    self.run_command(cmd)
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/dist.py", line 1107, in run_command
    super().run_command(command)
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
    cmd_obj.run()
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/command/bdist_wheel.py", line 370, in run
    self.run_command("build")
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
    self.distribution.run_command(command)
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/dist.py", line 1107, in run_command
    super().run_command(command)
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
    cmd_obj.run()
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/_distutils/command/build.py", line 135, in run
    self.run_command(cmd_name)
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
    self.distribution.run_command(command)
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/dist.py", line 1107, in run_command
    super().run_command(command)
  File "/tmp/build-env-wtsgtywd/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
    cmd_obj.run()
  File "<string>", line 124, in run
  File "<string>", line 149, in _update_stubs
  File "/build/python/scripts/update_stub_docstrings.py", line 213, in add_docstrings_from_build
    add_docstrings_to_stubs(stubs_dir)
  File "/build/python/scripts/update_stub_docstrings.py", line 179, in add_docstrings_to_stubs
    pyarrow = importlib.import_module("pyarrow")
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/arrow/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_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 "<frozen importlib._bootstrap_external>", line 999, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/build/python/build/lib.emscripten_3_1_58_wasm32-cpython-312/pyarrow/__init__.py", line 59, in <module>
    from pyarrow.lib import (BuildInfo, CppBuildInfo, RuntimeInfo, set_timezone_db_path,
ModuleNotFoundError: No module named 'pyarrow.lib'

We should just disable docstubs generation on emscripten builds.

Component(s)

Continuous Integration, Python

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions