Utilities for SolidWorks MCP Server.
Attributes
__all__
module-attribute
__all__ = ['setup_logging', 'validate_environment']
Functions
setup_logging
setup_logging(config: SolidWorksMCPConfig) -> None
Configure application and audit logging sinks.
Parameters:
| Name |
Type |
Description |
Default |
config
|
SolidWorksMCPConfig
|
Configuration values for the operation.
|
required
|
Returns:
| Name | Type |
Description |
None |
None
|
|
Source code in src/solidworks_mcp/utils/logging.py
| def setup_logging(config: SolidWorksMCPConfig) -> None:
"""Configure application and audit logging sinks.
Args:
config (SolidWorksMCPConfig): Configuration values for the operation.
Returns:
None: None.
"""
# Remove default handler
logger.remove()
# Console logging
logger.add(
sys.stderr,
level=config.log_level,
format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
"<level>{level: <8}</level> | "
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> | "
"<level>{message}</level>",
colorize=True,
)
# File logging
if config.log_file:
# Ensure log directory exists
config.log_file.parent.mkdir(parents=True, exist_ok=True)
logger.add(
config.log_file,
level=config.log_level,
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} | {message}",
rotation="10 MB",
retention="1 week",
)
# Audit logging for security
if config.enable_audit_logging:
audit_log = (
config.log_file.parent / "audit.log"
if config.log_file
else Path("audit.log")
)
audit_log.parent.mkdir(parents=True, exist_ok=True)
logger.add(
audit_log,
level="INFO",
format="{time:YYYY-MM-DD HH:mm:ss} | AUDIT | {extra[audit_type]} | {message}",
filter=lambda record: "audit" in record["extra"],
rotation="1 day",
retention="30 days",
compression="gzip",
)
logger.info("Logging configured")
|
validate_environment
async
validate_environment(config: SolidWorksMCPConfig) -> None
Validate runtime prerequisites for the server.
Parameters:
| Name |
Type |
Description |
Default |
config
|
SolidWorksMCPConfig
|
Configuration values for the operation.
|
required
|
Returns:
| Name | Type |
Description |
None |
None
|
|
Raises:
Source code in src/solidworks_mcp/utils/validation.py
| async def validate_environment(config: SolidWorksMCPConfig) -> None:
"""Validate runtime prerequisites for the server.
Args:
config (SolidWorksMCPConfig): Configuration values for the operation.
Returns:
None: None.
Raises:
SolidWorksMCPError: If the operation cannot be completed.
"""
logger.info("Validating environment...")
# Check platform
if not config.can_use_solidworks and not config.mock_solidworks:
if platform.system() != "Windows":
logger.warning("SolidWorks requires Windows platform. Using mock adapter.")
else:
logger.warning("SolidWorks not available. Using mock adapter.")
# Check SolidWorks installation if on Windows
if (
config.enable_windows_validation
and platform.system() == "Windows"
and not config.mock_solidworks
):
await _validate_solidworks_installation(config)
# Check Python version
import sys
python_version = sys.version_info
if python_version < (3, 11):
raise SolidWorksMCPError(
f"Python 3.11+ required, but running {python_version.major}.{python_version.minor}"
)
logger.info("Environment validation complete")
|