OpenStack Odoo Client Library for Python
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)
| File | Size | Uploaded | |
|---|---|---|---|
| openstack_odooclient-0.3.0.tar.gz | 185.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|