=========================================================
Odooly, a versatile tool for browsing Odoo / OpenERP data
=========================================================
Download and install the latest release::
pip install -U odooly
.. contents::
:local:
:backlinks: top
Documentation and tutorial: https://odooly.readthedocs.io/
Overview
--------
Odooly carries three modes of use:
(1) with command line arguments
(2) as an interactive shell
(3) as a client library
Key features:
- provides an API similar to Odoo Model, through Webclient API
- compatible with OpenERP 6.1 through Odoo 19.0
- supports external APIs JSON-RPC and XML-RPC as alternative
- single file ``odooly.py``, no external dependency
- helpers for ``search``, for data model introspection, etc...
- simplified syntax for search ``domain``
- entire API accessible on the ``Client.env`` environment
- can be imported and used as a library: ``from odooly import Client``
- supports Python 3.6 and more recent
.. _command-line:
Command line arguments
----------------------
There are few arguments to query Odoo models from the command line.
Although it is quite limited::
$ odooly --help
Usage: odooly.py [options] [search_term_or_id [search_term_or_id ...]]
Inspect data on Odoo objects. Use interactively or query a model (-m) and
pass search terms or ids as positional parameters after the options.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-l, --list list sections of the configuration
--env=ENV read connection settings from the given section
-c CONFIG, --config=CONFIG
specify alternate config file (default: 'odooly.ini')
--server=SERVER full URL of the server (default:
http://localhost:8069/web)
-d DB, --db=DB database
-u USER, --user=USER username
-p PASSWORD, --password=PASSWORD
password, or it will be requested on login
--api-key=API_KEY API Key for JSON2 or JSON-RPC/XML-RPC
-m MODEL, --model=MODEL
the type of object to find
-f FIELDS, --fields=FIELDS
restrict the output to certain fields (multiple
allowed)
-i, --interact use interactively; default when no model is queried
-v, --verbose verbose
$ #
Example::
$ odooly -d demo -m res.partner -f name -f lang 1
"name","lang"
"Your Company","en_US"
::
$ odooly -d demo -m res.groups -f full_name 'id > 0'
"full_name"
"Administration / Access Rights"
"Administration / Configuration"
"Human Resources / Employee"
"Usability / Multi Companies"
"Usability / Extended View"
"Usability / Technical Features"
"Sales Management / User"
"Sales Management / Manager"
"Partner Manager"
.. _interactive-mode:
Interactive use
---------------
Launch directly, without any configuration. It connects to the Odoo server, local or remote::
$ odooly --server http://127.0.0.1:8069/
Environments can also be declared in ``odooly.ini``::
[DEFAULT]
scheme = http
host = localhost
port = 8069
database = odoo
username = admin
[demo]
username = demo
password = demo
protocol = web
[demo_jsonrpc]
username = demo
password = demo
protocol = jsonrpc
[local]
scheme = local
options = -c /path/to/odoo-server.conf --without-demo all
Connect to the Odoo server::
odooly --list
odooly --env demo
This is a sample session::
>>> env['res.users']
<Model 'res.users'>
>>> env['res.users'].search_count()
4
>>> crons = env['ir.cron'].with_context(active_test=False).search([])
>>> crons.read('active name')
[{'active': True, 'id': 5, 'name': 'Calendar: Event Reminder'},
{'active': False, 'id': 4, 'name': 'Mail: Fetchmail Service'}]
>>> #
>>> env.modules('delivery')
{'uninstalled': ['delivery', 'website_sale_delivery']}
>>> env.upgrade('base')
1 module(s) selected
42 module(s) to process:
to upgrade account
to upgrade account_chart
to upgrade account_tax_include
to upgrade base
...
>>> #
.. note::
Use the ``--verbose`` switch to see what happens behind the scene.
Lines are truncated at 79 chars. Use ``-vv`` or ``-vvv`` to print
more.
.. note::
To preserve the commands' history when closing the session, first
create an empty file in your home directory:
``touch ~/.odooly_history``
Raw data
{
"_id": null,
"home_page": "http://odooly.readthedocs.org/",
"name": "Odooly",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "odoo openerp xml-rpc xmlrpc jsonrpc",
"author": "Florent Xicluna",
"author_email": "florent.xicluna@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/eb/49/e0f2c0264ebc729cb136bcd335cd040de7f91a74e4267c8f054190b69a5f/odooly-2.4.2.tar.gz",
"platform": "any",
"description": "=========================================================\nOdooly, a versatile tool for browsing Odoo / OpenERP data\n=========================================================\n\nDownload and install the latest release::\n\n pip install -U odooly\n\n.. contents::\n :local:\n :backlinks: top\n\nDocumentation and tutorial: https://odooly.readthedocs.io/\n\n\nOverview\n--------\n\nOdooly carries three modes of use:\n\n(1) with command line arguments\n(2) as an interactive shell\n(3) as a client library\n\n\nKey features:\n\n- provides an API similar to Odoo Model, through Webclient API\n- compatible with OpenERP 6.1 through Odoo 19.0\n- supports external APIs JSON-RPC and XML-RPC as alternative\n- single file ``odooly.py``, no external dependency\n- helpers for ``search``, for data model introspection, etc...\n- simplified syntax for search ``domain``\n- entire API accessible on the ``Client.env`` environment\n- can be imported and used as a library: ``from odooly import Client``\n- supports Python 3.6 and more recent\n\n\n\n.. _command-line:\n\nCommand line arguments\n----------------------\n\nThere are few arguments to query Odoo models from the command line.\nAlthough it is quite limited::\n\n $ odooly --help\n\n Usage: odooly.py [options] [search_term_or_id [search_term_or_id ...]]\n\n Inspect data on Odoo objects. Use interactively or query a model (-m) and\n pass search terms or ids as positional parameters after the options.\n\n Options:\n --version show program's version number and exit\n -h, --help show this help message and exit\n -l, --list list sections of the configuration\n --env=ENV read connection settings from the given section\n -c CONFIG, --config=CONFIG\n specify alternate config file (default: 'odooly.ini')\n --server=SERVER full URL of the server (default:\n http://localhost:8069/web)\n -d DB, --db=DB database\n -u USER, --user=USER username\n -p PASSWORD, --password=PASSWORD\n password, or it will be requested on login\n --api-key=API_KEY API Key for JSON2 or JSON-RPC/XML-RPC\n\n -m MODEL, --model=MODEL\n the type of object to find\n -f FIELDS, --fields=FIELDS\n restrict the output to certain fields (multiple\n allowed)\n -i, --interact use interactively; default when no model is queried\n -v, --verbose verbose\n $ #\n\n\nExample::\n\n $ odooly -d demo -m res.partner -f name -f lang 1\n \"name\",\"lang\"\n \"Your Company\",\"en_US\"\n\n::\n\n $ odooly -d demo -m res.groups -f full_name 'id > 0'\n \"full_name\"\n \"Administration / Access Rights\"\n \"Administration / Configuration\"\n \"Human Resources / Employee\"\n \"Usability / Multi Companies\"\n \"Usability / Extended View\"\n \"Usability / Technical Features\"\n \"Sales Management / User\"\n \"Sales Management / Manager\"\n \"Partner Manager\"\n\n\n\n.. _interactive-mode:\n\nInteractive use\n---------------\n\nLaunch directly, without any configuration. It connects to the Odoo server, local or remote::\n\n $ odooly --server http://127.0.0.1:8069/\n\n\nEnvironments can also be declared in ``odooly.ini``::\n\n [DEFAULT]\n scheme = http\n host = localhost\n port = 8069\n database = odoo\n username = admin\n\n [demo]\n username = demo\n password = demo\n protocol = web\n\n [demo_jsonrpc]\n username = demo\n password = demo\n protocol = jsonrpc\n\n [local]\n scheme = local\n options = -c /path/to/odoo-server.conf --without-demo all\n\n\nConnect to the Odoo server::\n\n odooly --list\n odooly --env demo\n\n\nThis is a sample session::\n\n >>> env['res.users']\n <Model 'res.users'>\n >>> env['res.users'].search_count()\n 4\n >>> crons = env['ir.cron'].with_context(active_test=False).search([])\n >>> crons.read('active name')\n [{'active': True, 'id': 5, 'name': 'Calendar: Event Reminder'},\n {'active': False, 'id': 4, 'name': 'Mail: Fetchmail Service'}]\n >>> #\n >>> env.modules('delivery')\n {'uninstalled': ['delivery', 'website_sale_delivery']}\n >>> env.upgrade('base')\n 1 module(s) selected\n 42 module(s) to process:\n to upgrade account\n to upgrade account_chart\n to upgrade account_tax_include\n to upgrade base\n ...\n >>> #\n\n\n.. note::\n\n Use the ``--verbose`` switch to see what happens behind the scene.\n Lines are truncated at 79 chars. Use ``-vv`` or ``-vvv`` to print\n more.\n\n\n.. note::\n\n To preserve the commands' history when closing the session, first\n create an empty file in your home directory:\n ``touch ~/.odooly_history``\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "Versatile tool for browsing Odoo / OpenERP data",
"version": "2.4.2",
"project_urls": {
"Homepage": "http://odooly.readthedocs.org/"
},
"split_keywords": [
"odoo",
"openerp",
"xml-rpc",
"xmlrpc",
"jsonrpc"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "e3b99cc6e3b83b9de5ab0c47a08891e7a506e6614e5a9de157f22063ffd56e44",
"md5": "bb838e7bcad87a5f77ba13c0df70cd9f",
"sha256": "bc59927c296606ed953c2821696c2ccdaeef2de7d11e1c64d3f2ae6dbdebed41"
},
"downloads": -1,
"filename": "odooly-2.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bb838e7bcad87a5f77ba13c0df70cd9f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 29181,
"upload_time": "2025-10-07T21:48:26",
"upload_time_iso_8601": "2025-10-07T21:48:26.384267Z",
"url": "https://files.pythonhosted.org/packages/e3/b9/9cc6e3b83b9de5ab0c47a08891e7a506e6614e5a9de157f22063ffd56e44/odooly-2.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "eb49e0f2c0264ebc729cb136bcd335cd040de7f91a74e4267c8f054190b69a5f",
"md5": "9300bb7724045fb7ab5a4fbad9883c11",
"sha256": "fbb34a5f85f4e8bb1b13f7f3b259743ff997f448fac211dc42a46b0bed7e8ed5"
},
"downloads": -1,
"filename": "odooly-2.4.2.tar.gz",
"has_sig": false,
"md5_digest": "9300bb7724045fb7ab5a4fbad9883c11",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 60913,
"upload_time": "2025-10-07T21:48:28",
"upload_time_iso_8601": "2025-10-07T21:48:28.119853Z",
"url": "https://files.pythonhosted.org/packages/eb/49/e0f2c0264ebc729cb136bcd335cd040de7f91a74e4267c8f054190b69a5f/odooly-2.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-07 21:48:28",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "odooly"
}