Building python bindings requires some extra setup.
For small or first-time contributions, we recommend the dev container method. Prefer to do it yourself? That's fine too!
OpenDAL provides a pre-configured dev container that could be used in GitHub Codespaces, VSCode, JetBrains, JupyterLab. Please pick up your favourite runtime environment.
The fastest way is:
The python binding requires Python to be built. We recommend using the latest stable version for development.
[!TIP] We recommend to use
uvto manage the Python packages and environments. You can install it bycurl -LsSf https://astral.sh/uv/install.sh | sh.
All operations were performed within a Python virtual environment (venv) to prevent conflicts with the system's Python environment or other project venvs.
OpenDAL specify the requires-python in pyproject.toml as >= 3.10. You can use uv venv --python 3.10 to setup the virtualenv for development.
To get ready for the development, kindly install all the required dependencies:
uv sync --all-groups --all-extras
To build python binding only:
uv build
Note that uv will detect the related files and re-build this package when necessary.
[!NOTE] If you want to have a full-featured opendal, you can run
uv buildand install the wheel file in thedistdirectory.
OpenDAL adopts pytest for behavior tests:
# To run `test_write.py` and use `fs` operator OPENDAL_TEST=fs OPENDAL_FS_ROOT=/tmp uv run pytest -vk test_write # To run `test_sync_write` in `test_write.py` and use `fs` operator OPENDAL_TEST=fs OPENDAL_FS_ROOT=/tmp uv run pytest -v tests/test_write.py::test_sync_write
Build API docs:
uv run pdoc opendal