Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include generated stubs in python package #6917

Draft
wants to merge 21 commits into
base: main
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
16719c3
Adding typing stubs to python package using pybind11-stubgen.
timohl Aug 13, 2024
4739963
Added py.typed marker file to python package.
timohl Aug 14, 2024
6c26d61
Added IGNORE_STUBGEN_ERRORS cmake option.
timohl Aug 15, 2024
ee90f58
Added changelog entry.
timohl Aug 15, 2024
dbfe46a
Removed message intended for debugging.
timohl Aug 15, 2024
138f3dd
Added COMMAND_ECHO to execute_process for CI debugging.
timohl Aug 15, 2024
2620894
Changed CI to use requirements_build.txt.
timohl Aug 15, 2024
c10dee2
Updated pyproject.toml build-system requirements.
timohl Aug 15, 2024
babbff0
Changed style check workflow to use requirements_style.txt.
timohl Aug 15, 2024
2674d5b
Added missing copy of requirements_build.txt to docker.
timohl Aug 15, 2024
cabef3c
Removed "" from execute_process args to fix build error.
timohl Aug 15, 2024
1abe058
Install open3d-ml dependencies for docker wheel build for stubgen.
timohl Aug 15, 2024
026aa0f
Fixed wrong working dir in windows workflow.
timohl Aug 15, 2024
acae49a
Added install step in MacOS Build wheel for o3d-ml requirements.
timohl Aug 16, 2024
89c482b
Added missing install of requirements.txt in windows workflow.
timohl Aug 16, 2024
8ed61cf
Added WITH_STUBGEN cmake flag to toogle typing stub generation.
timohl Aug 16, 2024
be32c1b
Added WITH_STUBGEN and IGNORE_STUBGEN_ERRORS to cmake config summary.
timohl Aug 16, 2024
d44139f
Disable stubgen for windows shared libs workflows.
timohl Aug 16, 2024
6a4e6d2
Disabled stubgen for windows cuda checks and fixed WITH_STUBGEN typo.
timohl Aug 16, 2024
c9fe4f0
Fixed typo in windows workflow.
timohl Aug 16, 2024
7dc7a38
Delete open3d reference in __init__.py to fix `open3d = ` in stubgen.
timohl Aug 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Changed CI to use requirements_build.txt.
timohl committed Dec 19, 2024

Verified

This commit was signed with the committer’s verified signature.
snyk-bot Snyk bot
commit 2620894424ce3a0005912afc603e421f9267ee25
20 changes: 7 additions & 13 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
@@ -21,8 +21,6 @@ concurrency:

env:
PIP_VER: "23.2.1"
WHEEL_VER: "0.38.4"
STOOLS_VER: "67.3.2"
JEDI_VER: "0.17.2" # https://github.com/ipython/ipython/issues/12740
IDNA_VER: "2.8" # https://github.com/psf/requests/issues/5710
CUDA_VERSION: "12.1.0"
@@ -217,11 +215,9 @@ jobs:
working-directory: ${{ env.BUILD_DIR }}
run: |
$ErrorActionPreference = 'Stop'
python -m pip install --upgrade pip==${{ env.PIP_VER }} `
wheel==${{ env.WHEEL_VER }} `
setuptools==${{ env.STOOLS_VER }} `
jedi==${{ env.JEDI_VER }} `
idna==${{ env.IDNA_VER }}
python -m pip install -U pip==${{ env.PIP_VER }}
python -m pip install -U -r python/requirements_build.txt
python -m pip install -U jedi==${{ env.JEDI_VER }} idna==${{ env.IDNA_VER }}
cmake --build . --config ${{ matrix.CONFIG }} --target install-pip-package
- name: Import python package
# If BUILD_SHARED_LIBS == ON, Open3D.dll needs to be copied, which is not recommended for python.
@@ -300,9 +296,8 @@ jobs:
working-directory: ${{ env.BUILD_DIR }}
run: |
$ErrorActionPreference = 'Stop'
python -m pip install --upgrade pip==${{ env.PIP_VER }} `
wheel==${{ env.WHEEL_VER }} `
setuptools==${{ env.STOOLS_VER }}
python -m pip install -U pip==${{ env.PIP_VER }}
python -m pip install -U -r python/requirements_build.txt
cmake --build . --parallel ${{ env.NPROC }} --config Release --target pip-package
$PIP_PKG_NAME=(Get-ChildItem lib/python_package/pip_package/open3d*.whl).Name
echo "PIP_PKG_NAME=$PIP_PKG_NAME" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
@@ -366,9 +361,8 @@ jobs:
python -m venv open3d_test_venv
open3d_test_venv\Scripts\Activate.ps1

python -m pip install --upgrade pip==${{ env.PIP_VER }} `
wheel==${{ env.WHEEL_VER }} `
setuptools==${{ env.STOOLS_VER }}
python -m pip install -U pip==${{ env.PIP_VER }}
python -m pip install -U -r python/requirements_build.txt
python -m pip install -U -r python/requirements_test.txt
$py_tag=(python -c "import sys; print(f'cp{sys.version_info.major}{sys.version_info.minor}')")
if (Test-Path -Path "pip_package") {
22 changes: 8 additions & 14 deletions util/ci_utils.sh
Original file line number Diff line number Diff line change
@@ -30,9 +30,6 @@ TORCH_VER="2.2.2"
TORCH_REPO_URL="https://download.pytorch.org/whl/torch/"
# Python
PIP_VER="23.2.1"
WHEEL_VER="0.38.4"
STOOLS_VER="67.3.2"
YAPF_VER="0.30.0"
PROTOBUF_VER="4.24.0"

OPEN3D_INSTALL_DIR=~/open3d_install
@@ -42,10 +39,10 @@ install_python_dependencies() {

echo "Installing Python dependencies"
options="$(echo "$@" | tr ' ' '|')"
python -m pip install --upgrade pip=="$PIP_VER" wheel=="$WHEEL_VER" \
setuptools=="$STOOLS_VER"
python -m pip install --upgrade pip=="$PIP_VER"
python -m pip install -U -r "${OPEN3D_SOURCE_ROOT}/python/requirements_build.txt"
if [[ "with-unit-test" =~ ^($options)$ ]]; then
python -m pip install -U -r python/requirements_test.txt
python -m pip install -U -r "${OPEN3D_SOURCE_ROOT}/python/requirements_test.txt"
fi
if [[ "with-cuda" =~ ^($options)$ ]]; then
TF_ARCH_NAME=tensorflow
@@ -64,7 +61,6 @@ install_python_dependencies() {
TORCH_GLNX="torch==${TORCH_VER}+cpu"
fi

# TODO: modify other locations to use requirements.txt
python -m pip install -r "${OPEN3D_SOURCE_ROOT}/python/requirements.txt"
if [[ "with-jupyter" =~ ^($options)$ ]]; then
python -m pip install -r "${OPEN3D_SOURCE_ROOT}/python/requirements_jupyter_build.txt"
@@ -88,7 +84,6 @@ install_python_dependencies() {
fi
fi
if [ "$BUILD_TENSORFLOW_OPS" == "ON" ] || [ "$BUILD_PYTORCH_OPS" == "ON" ]; then
python -m pip install -U yapf=="$YAPF_VER"
# Fix Protobuf compatibility issue
# https://stackoverflow.com/a/72493690/1255535
# https://github.com/protocolbuffers/protobuf/issues/10051
@@ -241,8 +236,8 @@ test_wheel() {
python -m venv open3d_test.venv
# shellcheck disable=SC1091
source open3d_test.venv/bin/activate
python -m pip install --upgrade pip=="$PIP_VER" wheel=="$WHEEL_VER" \
setuptools=="$STOOLS_VER"
python -m pip install -U pip=="$PIP_VER"
python -m pip install -U -r "${OPEN3D_SOURCE_ROOT}/python/requirements_build.txt"
echo -n "Using python: $(command -v python)"
python --version
echo -n "Using pip: "
@@ -285,7 +280,7 @@ test_wheel() {
run_python_tests() {
# shellcheck disable=SC1091
source open3d_test.venv/bin/activate
python -m pip install -U -r python/requirements_test.txt
python -m pip install -U -r "${OPEN3D_SOURCE_ROOT}/python/requirements_test.txt"
echo Add --randomly-seed=SEED to the test command to reproduce test order.
pytest_args=("$OPEN3D_SOURCE_ROOT"/python/test/)
if [ "$BUILD_PYTORCH_OPS" == "OFF" ] && [ "$BUILD_TENSORFLOW_OPS" == "OFF" ]; then
@@ -356,9 +351,8 @@ install_docs_dependencies() {
echo Install Python dependencies for building docs
command -v python
python -V
python -m pip install -U -q "wheel==$WHEEL_VER" \
"pip==$PIP_VER"
python -m pip install -U -q "yapf==$YAPF_VER"
python -m pip install -U -q "pip==$PIP_VER"
python -m pip install -U -r "${OPEN3D_SOURCE_ROOT}/python/requirements_build.txt"
if [[ -d "$1" ]]; then
OPEN3D_ML_ROOT="$1"
echo Installing Open3D-ML dependencies from "${OPEN3D_ML_ROOT}"