From fa470743de5c8ac78dd5b9ca9b738a92bddd763b Mon Sep 17 00:00:00 2001 From: Zhafron Kautsar Date: Mon, 6 Oct 2025 19:58:05 +0700 Subject: [PATCH] feat(config): improve environment variable loading logic - Remove redundant dotenv loading in main module - Add explicit .env file path handling in config module - Implement env_loaded flag to track environment loading status - Raise clear error when no .env file found and ODOO_URL missing - Update server version to match project version - Bump project version from 0.3.0 to 0.3.1 --- mcp_server_odoo/__main__.py | 2 -- mcp_server_odoo/config.py | 12 ++++++++---- mcp_server_odoo/server.py | 2 +- pyproject.toml | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/mcp_server_odoo/__main__.py b/mcp_server_odoo/__main__.py index 8235cf1..9a50157 100644 --- a/mcp_server_odoo/__main__.py +++ b/mcp_server_odoo/__main__.py @@ -29,8 +29,6 @@ def main(argv: Optional[list[str]] = None) -> int: Returns: Exit code (0 for success, non-zero for failure) """ - # Load environment variables from .env file - load_dotenv() # Create argument parser parser = argparse.ArgumentParser( diff --git a/mcp_server_odoo/config.py b/mcp_server_odoo/config.py index fcaf917..1039612 100644 --- a/mcp_server_odoo/config.py +++ b/mcp_server_odoo/config.py @@ -174,12 +174,16 @@ def load_config(env_file: Optional[Path] = None) -> OdooConfig: ) load_dotenv(env_file) else: - # Check current directory for .env + # Try to load .env from current directory default_env = Path(".env") + env_loaded = False + if default_env.exists(): - load_dotenv() - elif not os.getenv("ODOO_URL"): - # No .env file and no ODOO_URL in environment + load_dotenv(default_env) + env_loaded = True + + # If no .env file found and no ODOO_URL in environment, raise error + if not env_loaded and not os.getenv("ODOO_URL"): raise ValueError( "No .env file found and ODOO_URL not set in environment.\n" "Please create a .env file based on .env.example or set environment variables." diff --git a/mcp_server_odoo/server.py b/mcp_server_odoo/server.py index d62a7ff..b32bd70 100644 --- a/mcp_server_odoo/server.py +++ b/mcp_server_odoo/server.py @@ -25,7 +25,7 @@ logger = get_logger(__name__) # Server version -SERVER_VERSION = "0.1.0" +SERVER_VERSION = "0.3.1" class OdooMCPServer: diff --git a/pyproject.toml b/pyproject.toml index bc93824..865f303 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "mcp-server-odoo" -version = "0.3.0" +version = "0.3.1" description = "A Model Context Protocol server for Odoo ERP systems" readme = "README.md" requires-python = ">=3.10"