vespa-engine / pyvespa

Python API for https://vespa.ai, the open big data serving engine
https://pyvespa.readthedocs.io/
Apache License 2.0
105 stars 34 forks source link

pyvespa

#Vespa

Documentation Status

GitHub Release PyPI - Version PyPI - Downloads

pyvespa site / documentation

Vespa is the scalable open-sourced serving engine that enables users to store, compute and rank big data at user serving time. pyvespa provides a python API to Vespa. It allows users to create, modify, deploy and interact with running Vespa instances. The main goal of the library is to allow for faster prototyping and get familiar with Vespa features.

vespacli

This repo also contains the python wrapper for the Vespa CLI. See README.

License

Code licensed under the Apache 2.0 license. See LICENSE for terms.

Development environment

To install editable version of the library with dev dependencies, run the following command from the root directory of the repository:

pip install -e ".[dev]"

Note that this will enforce linting and formatting with Ruff, which also will be triggered by a pre-commit-hook.

This means that you may get an error message when trying to commit changes if the code does not pass the linting and formatting checks. The errors are detailed in the output, and you can optionally run manually with ruff CLI-tool.

Releases

Find releases and release notes on GitHub.

Release details

The release flow is semi-automated, but involves a few manual steps.

  1. Create a new release from github.com/vespa-engine/pyvespa/releases/new.
  2. Make sure to tag the release with the version number, e.g., v0.41.0.
  3. This tag will trigger a github action that will publish the package to PyPI.
  4. A PR will also be automatically created to update the affected files with the new version. This PR should be merged to keep the version updated in the repository.

This workflow can also be dispatched manually, but note that steps 3 and 4 will ONLY be triggered by a release.