Async Python SDK for Odoo’s JSON-RPC API — typed, tested, ready. Built with httpx, dataclasses, and mypy --strict.
What It Does A Python client for Odoo with full type annotations, 8 domain services, and testcontainers integration for testing against real Odoo 17, 18, and 19 instances.
Packages Package Install Description godoo uv add godoo Core client + 8 domain services godoo-testcontainers uv add godoo-testcontainers Docker-based Odoo for integration testing godoo-introspection uv add godoo-introspection Schema discovery + codegen (coming soon) Quick Start import asyncio from godoo import OdooClient async def main(): async with OdooClient() as odoo: partners = await odoo.records.search_read( "res.partner", [("is_company", "=", True)], limit=5 ) for p in partners: print(p["name"]) asyncio.run(main()) What’s Inside 8 domain services: records, mail/chatter, modules, accounting, timesheets, attendance, contracts, introspection Testcontainers: Spin up real Odoo instances in Docker for integration tests Full type annotations: mypy --strict clean Multi-version: Tested against Odoo v17, v18, and v19 Repository · Documentation · PyPI