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
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions