[project] name = "odoo-assistant" version = "0.3.6" description = "An Odoo virtual employee via MCP: query, create, modify records, run workflows" readme = "README.md" license = "MIT" requires-python = ">=3.10" authors = [ { name = "Roberto Crotti", email = "bo@fl1.cz" }, ] keywords = ["mcp", "odoo", "erp", "model-context-protocol", "claude", "ai"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Libraries", ] dependencies = ["mcp[cli]>=2.0.0,<3", "pydantic>=2"] [project.optional-dependencies] remote = ["uvicorn>=0.30", "cryptography>=42", "httpx>=0.27"] [dependency-groups] dev = ["pytest>=8", "httpx>=0.27", "pillow>=10"] [project.scripts] odoo-assistant = "odoo_assistant.server:main" odoo-assistant-remote = "odoo_assistant.remote.app:main" [project.urls] Homepage = "https://github.com/singleflo/odoo-assistant-mcp" Repository = "https://github.com/singleflo/odoo-assistant-mcp" Issues = "https://github.com/singleflo/odoo-assistant-mcp/issues" Changelog = "https://github.com/singleflo/odoo-assistant-mcp/blob/main/CHANGELOG.md" MCPRegistry = "https://registry.modelcontextprotocol.io/v0.1/servers/io.github.singleflo%2Fodoo-assistant/versions" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/odoo_assistant"] [tool.hatch.build.targets.wheel.force-include] "references_public" = "odoo_assistant/references" [tool.hatch.build.targets.sdist] # Anchored gitignore-style: each segment matches whole, so `/references` drops # the instance-specific tree and spares `references_public/`, which the wheel # force-includes above and a rebuild from this sdist needs present. exclude = ["/references", "/docs", "/.omo", "/.github", "/.opencode", "/plugins", "/.claude-plugin", "/.agents"] [tool.pyright] venvPath = "." venv = ".venv" extraPaths = ["src/odoo_assistant/odoo_scripts"] [tool.pytest.ini_options] testpaths = ["tests"] markers = [ "live: requires a live Odoo instance (needs ODOO_BASE_URL)", "wheel: drives the built artifact in dist/ (needs `uv build` and network for uvx)", "remote_live: drives the deployed remote endpoint (needs ODOO_REMOTE_PUBLIC_URL and ODOO_REMOTE_TEST_TENANT_*)", ] addopts = "-m 'not live and not wheel and not remote_live'"