Coverage for src/quickmcp/factory/__init__.py: 100%
11 statements
« prev ^ index » next coverage.py v7.10.4, created at 2025-08-20 20:56 +0200
« prev ^ index » next coverage.py v7.10.4, created at 2025-08-20 20:56 +0200
1"""
2QuickMCP Factory - Automatically generate MCP servers from Python code.
4This package provides a refactored, modular architecture for creating MCP servers
5from existing Python code with comprehensive dependency analysis, safe type conversion,
6and flexible configuration options.
8Key Components:
9- MCPFactory: Core factory class for creating servers
10- ImportAnalyzer: Dependency analysis with required vs optional detection
11- TypeConverter: Safe type conversion with validation
12- FactoryConfig: Flexible configuration system
13- Error handling: Comprehensive error types with detailed messages
15Example Usage:
16 ```python
17 from quickmcp.factory import create_mcp_from_module, FactoryConfig
19 # Simple usage
20 server = create_mcp_from_module("my_utils.py")
22 # With configuration
23 config = FactoryConfig(strict_type_conversion=True)
24 server = create_mcp_from_module("my_utils.py", config=config)
26 # Check dependencies first
27 from quickmcp.factory import print_dependency_report
28 print_dependency_report("my_utils.py")
29 ```
30"""
32# Core classes
33from .core import MCPFactory, ModuleLoader, FunctionExtractor
34from .config import FactoryConfig, DEFAULT_CONFIG, create_safe_config, create_development_config, create_permissive_config
36# Import analysis
37from .import_analyzer import ImportAnalyzer, MissingDependency
39# Error handling
40from .errors import (
41 FactoryError, MissingDependencyError, ModuleLoadError, FunctionExtractionError,
42 ToolRegistrationError, TypeConversionError, CodeExecutionError, SafetyError,
43 handle_factory_error, log_factory_error
44)
46# Type conversion
47from .type_conversion import TypeConverter
49# Tool wrappers
50from .wrappers import ToolWrapper, SyncToolWrapper, AsyncToolWrapper, MethodToolWrapper, ToolWrapperFactory, create_tool_wrapper
52# Utility functions
53from .utils import (
54 create_mcp_from_module, create_mcp_from_object,
55 analyze_dependencies, check_dependencies, print_dependency_report, get_install_command,
56 validate_factory_setup, mcp_tool,
57 create_factory_for_development, create_safe_factory, create_factory_with_config
58)
60# Version information
61__version__ = "2.0.0"
62__author__ = "QuickMCP Team"
64# Public API
65__all__ = [
66 # Core classes
67 "MCPFactory", "Factory", "ModuleLoader", "FunctionExtractor",
69 # Configuration
70 "FactoryConfig", "DEFAULT_CONFIG",
71 "create_safe_config", "create_development_config", "create_permissive_config",
73 # Import analysis
74 "ImportAnalyzer", "MissingDependency",
76 # Errors
77 "FactoryError", "MissingDependencyError", "ModuleLoadError", "FunctionExtractionError",
78 "ToolRegistrationError", "TypeConversionError", "CodeExecutionError", "SafetyError",
79 "handle_factory_error", "log_factory_error",
81 # Type conversion
82 "TypeConverter",
84 # Tool wrappers
85 "ToolWrapper", "SyncToolWrapper", "AsyncToolWrapper", "MethodToolWrapper",
86 "ToolWrapperFactory", "create_tool_wrapper",
88 # Convenience functions
89 "create_mcp_from_module", "create_mcp_from_object",
90 "analyze_dependencies", "check_dependencies", "print_dependency_report", "get_install_command",
91 "validate_factory_setup", "mcp_tool",
92 "create_factory_for_development", "create_safe_factory", "create_factory_with_config",
93]
95# Main entry points (for easy importing)
96Factory = MCPFactory # Alias for compatibility