Skip to main content

OpenStack Odoo Client Library for Python

PyPI PyPI - Python Version GitHub Test Status

This is an Odoo client library for Python with support for the OpenStack Integration add-on, intended to be used by OpenStack projects such as Distil.

This library provides a higher level interface than OdooRPC (which is used internally), and is intended to make it possible to develop applications against a well-defined API, without having to take into account considerations such as backward-incompatible changes between Odoo versions.

Installation

The OpenStack Odoo Client library supports Python 3.10 and later.

To install the library package, simply install the openstack-odooclient package using pip.

python -m pip install openstack-odooclient

Connecting to Odoo

To connect to an Odoo server, create an openstack_odooclient.Client object and pass the connection details to it.

openstack_odooclient.Client(
    *,
    hostname: str,
    database: str,
    username: str,
    password: str,
    protocol: str = "jsonrpc",
    port: int = 8069,
    verify: bool | str | Path = True,
    version: str | None = None,
) -> Client

This is the recommended way of creating the Odoo client object, as it provides some extra parameters for convenience.

from openstack_odooclient import Client as OdooClient

odoo_client = OdooClient(
    hostname="localhost",
    database="odoodb",
    user="test-user",
    password="<password>",
    protocol="jsonrpc",  # HTTP, or "jsonrpc+ssl" for HTTPS.
    port=8069,
    # verify=True,  # Enable/disable SSL verification, or pass the path to a CA certificate.
    # version="14.0",  # Optionally specify the server version. Default is to auto-detect.
)

If you have a pre-existing odoorpc.ODOO connection object, that can instead be passed directly into openstack_odooclient.Client.

openstack_odooclient.Client(*, odoo: odoorpc.ODOO) -> Client

This allows for sharing a single OdooRPC connection object with other code.

from odoorpc import ODOO
from openstack_odooclient import Client as OdooClient

odoo = ODOO(
    host="localhost",
    port=8069,
    protocol="jsonrpc",  # HTTP, or "jsonrpc+ssl" for HTTPS.
    # version="14.0",  # Optionally specify the server version. Default is to auto-detect.
)
odoo.login("odoodb", "test-user", "<password>")

odoo_client = OdooClient(odoo=odoo)

Managers

The Odoo client object exposes a number of record managers, which contain methods used to query specific record types, or create one or more new records of that type.

For example, performing a simple search query would look something like this:

>>> from openstack_odooclient import Client as OdooClient
>>> odoo_client = OdooClient(
...     hostname="localhost",
...     port=8069,
...     protocol="jsonrpc",
...     database="odoodb",
...     user="test-user",
...     password="<password>",
... )
>>> odoo_client.users.search([("id", "=", odoo_client.user_id)], as_id=True)
[1234]

For more information on the available managers and their functions, check the Managers page in the documentation.

Records

Record manager methods return record objects for the corresponding model in Odoo.

Record fields can be accessed as attributes on these record objects. The record classes are fully type hinted, allowing IDEs and validation tools such as Mypy to verify that your application is using the fields correctly.

>>> from openstack_odooclient import Client as OdooClient, User
>>> user: User | None = None
>>> odoo_client = OdooClient(
...     hostname="localhost",
...     port=8069,
...     protocol="jsonrpc",
...     database="odoodb",
...     user="test-user",
...     password="<password>",
... )
>>> user = odoo_client.users.get(1234)
>>> user
User(record={'id': 1234, ...}, fields=None)
>>> user.id
1234

For more information on the available managers and their functions, check the Records section in the documentation.

Metadata

Release files for openstack-odooclient 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openstack-odooclient 0.3.0
File Size Uploaded
openstack_odooclient-0.3.0.tar.gz 185.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openstack-odooclient 0.3.0
File Interpreter ABI Platform
openstack_odooclient-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 280.7 kB

Release files / openstack_odooclient-0.3.0.tar.gz

Download URL openstack_odooclient-0.3.0.tar.gz
Size 185.0 kB
Tags Source
SHA-256 checksum
How to use checksums
85463235652b5ecd7f4e5c1195bc91f7ee95d2b8d1ba0b5befd006892e43ceab
BLAKE2b-256 checksum
How to use checksums
3f8f5dafaf8c7b1a27170db6c00b2b1339f10e46df41b11753c855069b468079
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / openstack_odooclient-0.3.0-py3-none-any.whl

Download URL openstack_odooclient-0.3.0-py3-none-any.whl
Size 95.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a555ed2a6a9b79ebe1451728f0b6ee5330cb4a53a0dbd85544b5c3adf61b7a62
BLAKE2b-256 checksum
How to use checksums
54ae3294b7c09d8a62297de71c9da54baae40c43959ea27d857e45efaaf4e3c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page