From c0a5facf4c1c4f56d63e88e6f8b45ad9f807165e Mon Sep 17 00:00:00 2001 From: Yixing Lao Date: Sat, 11 Jan 2025 18:05:09 +0800 Subject: [PATCH] build: relax open3d and numpy version requirements (#85) --- camtools/__init__.py | 36 ++++++++++++++++++++++++++++++++++-- pyproject.toml | 2 +- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/camtools/__init__.py b/camtools/__init__.py index 13f2e922..a504a83b 100644 --- a/camtools/__init__.py +++ b/camtools/__init__.py @@ -1,3 +1,5 @@ +import logging + from . import artifact from . import camera from . import colmap @@ -16,13 +18,43 @@ from . import transform from . import util + +# Get package version for camtools try: # Python >= 3.8 from importlib.metadata import version - __version__ = version("camtools") + def _get_package_version(package): + return version(package) + except ImportError: # Python < 3.8 import pkg_resources - __version__ = pkg_resources.get_distribution("camtools").version + def _get_package_version(package): + return pkg_resources.get_distribution(package).version + + +__version__ = _get_package_version("camtools") + + +# Check open3d and numpy compatibility +# https://github.com/isl-org/Open3D/issues/6840 +try: + logging.basicConfig(format="%(message)s") + _logger = logging.getLogger(__name__) + + o3d_version = _get_package_version("open3d") + np_version = _get_package_version("numpy") + + o3d_version_tuple = tuple(map(int, o3d_version.split(".")[:2])) + np_version_tuple = tuple(map(int, np_version.split(".")[:2])) + + if o3d_version_tuple < (0, 19) and np_version_tuple >= (2, 0): + _logger.warning( + f"[Warning] Incompatible versions: open3d {o3d_version} does " + f"not support numpy {np_version}. You may upgrade open3d to >= 0.19.0 " + f"or downgrade numpy to 1.x." + ) +except Exception as e: + pass diff --git a/pyproject.toml b/pyproject.toml index 67401617..1a4b0165 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ classifiers = [ "Programming Language :: Python :: 3", ] dependencies = [ - "numpy>=1.15.0,<=1.26.4", + "numpy>=1.15.0", "open3d>=0.16.0", "opencv-python>=4.5.1.48", "matplotlib>=3.3.4",