Simple RPC client for Odoo
Project description
Odoo Connect
A simple library to use Odoo RPC.
Usage
import odoo_connect
odoo = env = odoo_connect.connect(url='http://localhost', username='admin', password='admin')
so = env['sale.order']
so.search_read([('create_uid', '=', 1)], [])
Rationale
OdooRPC or Odoo RPC Client are both more complete and mimic internal Odoo API. Then aio-odoorpc provides an asynchronous API.
This library provides only a simple API for connecting to the server and call methods, so the maintenance should be minimal.
Note that each RPC call is executed in a transaction. So the following code on the server, will add one to every line ordered quantity or fail and do nothing. However, ORM client libraries will perform multiple steps, on a failure, already executed code was committed. You can also end with race conditions where some other code set product_uom_qty to 0 before you increment it.
lines = env['sale.order.line'].search([
('order_id.name', '=', 'S00001')
])
for line in lines:
if line.product_uom_qty > 1:
line.product_uom_qty += 1
Export and import data
A separate package provides utilities to more easily extract data from Odoo. It also contains utility to get binary data (attachments) and reports.
The following function will return a table-like (list of lists) structure with the requested data. You can also pass filter names or export names instead of, respectively, domains and fields. Note that this doesn't support groupping.
# Read data as usual
env['sale.order'].search_read_dict([('state', '=', 'sale')], ['name', 'partner_id.name'])
env['sale.order'].read_group([], ['amount_untaxed'], ['partner_id', 'create_date:month'])
# Export data
import odoo_connect.data as odoo_data
odoo_data.export_data(env['sale.order'], [('state', '=', 'sale')], ['name', 'partner_id.name'])
# TODO import data
Development
You can use a vscode container and open this repository inside it. Alternatively, clone and setup the repository manually.
git clone $url
cd odoo-connect
# Install dev libraries
pip install -r requirements.txt
./pre-commit install
# Run some tests
pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for odoo_connect-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 190bdfc6e9f0b0201ab5c3dec49cf1fc1d2faa21b2c792cb7fb009ce6724b56a |
|
MD5 | 644b45c99451ada353d7b9e5e0bafbba |
|
BLAKE2b-256 | 60751723137e9c661b03fdb6a91377f5b829c56dc6fb7fa0130e4446fbaf41b4 |