entity.core package
Entity core module - Agent and batch processing functionality.
- exception entity.core.PipelineError(stage, plugin, context, original_error, severity=ErrorSeverity.MEDIUM, category=ErrorCategory.UNKNOWN, recoverable=True)[source]
Bases:
ExceptionEnhanced pipeline error with rich debugging context.
This error type provides comprehensive debugging information including plugin stack traces, execution context, and recovery strategies.
- Parameters:
- Return type:
None
- __init__(stage, plugin, context, original_error, severity=ErrorSeverity.MEDIUM, category=ErrorCategory.UNKNOWN, recoverable=True)
- category: ErrorCategory = 'unknown'
- severity: ErrorSeverity = 'medium'
- context: ErrorContext
- exception entity.core.PluginError(plugin_name, stage, context, original_error, plugin_config=None)[source]
Bases:
PipelineErrorError specific to plugin execution failures.
- Parameters:
- exception entity.core.ValidationError(field_errors, context, original_error)[source]
Bases:
PipelineErrorError for validation failures with detailed field information.
- exception entity.core.ResourceError(resource_type, resource_id, context, original_error)[source]
Bases:
PipelineErrorError for resource-related failures (memory, database, etc).
- Parameters:
- exception entity.core.SandboxError(sandbox_type, context, original_error, security_violation=False)[source]
Bases:
PipelineErrorError for sandbox execution failures.
- Parameters:
- class entity.core.RateLimiter(max_requests, time_window=60.0, algorithm=RateLimitAlgorithm.SLIDING_WINDOW, burst_size=None, leak_rate=None)[source]
Bases:
objectUnified rate limiter with multiple algorithm support.
- Parameters:
- __init__(max_requests, time_window=60.0, algorithm=RateLimitAlgorithm.SLIDING_WINDOW, burst_size=None, leak_rate=None)[source]
Initialize rate limiter.
- Parameters:
max_requests (int) – Maximum number of requests allowed
time_window (float) – Time window in seconds (default 60)
algorithm (RateLimitAlgorithm) – Rate limiting algorithm to use
burst_size (int | None) – Maximum burst size for token bucket
leak_rate (float | None) – Leak rate for leaky bucket (requests per second)
- entity.core.create_api_rate_limiter()[source]
Create rate limiter for API endpoints (100 requests per minute).
- Return type:
- entity.core.create_database_rate_limiter()[source]
Create rate limiter for database operations (1000 per minute with bursts).
- Return type:
- class entity.core.IdentifierValidator[source]
Bases:
objectValidator for various types of identifiers.
- ENV_VAR_PATTERN = re.compile('^[A-Z][A-Z0-9_]*$')
- PYTHON_IDENTIFIER_PATTERN = re.compile('^[a-zA-Z_][a-zA-Z0-9_]*$')
- SAFE_IDENTIFIER_PATTERN = re.compile('^[a-zA-Z_][a-zA-Z0-9_]*$')
- TABLE_NAME_PATTERN = re.compile('^[a-zA-Z_][a-zA-Z0-9_]*(\\.[a-zA-Z_][a-zA-Z0-9_]*)?$')
- URL_SAFE_PATTERN = re.compile('^[a-z][a-z0-9-]*$')
- classmethod validate_identifier(identifier, pattern=None)[source]
Validate an identifier against a pattern.
- class entity.core.SQLValidator[source]
Bases:
objectValidator for SQL queries and components.
- INJECTION_PATTERNS = [';\\s*(DROP|DELETE|TRUNCATE|ALTER|CREATE|INSERT|UPDATE)', '--\\s*', '/\\*.*\\*/', '\\bUNION\\b.*\\bSELECT\\b', '\\bEXEC\\b|\\bEXECUTE\\b', 'xp_cmdshell', '\\bINTO\\s+OUTFILE\\b', '\\bLOAD_FILE\\b', '(0x[0-9a-fA-F]+|CHAR\\([0-9]+\\))', 'WAITFOR\\s+DELAY', 'BENCHMARK\\s*\\(', 'pg_sleep']
- SAFE_FUNCTIONS = {'ABS', 'AVG', 'CAST', 'CEIL', 'COALESCE', 'COUNT', 'DATE', 'DAY', 'FLOOR', 'LENGTH', 'LOWER', 'MAX', 'MIN', 'MONTH', 'NOW', 'ROUND', 'SUBSTR', 'SUBSTRING', 'SUM', 'TIME', 'TRIM', 'UPPER', 'YEAR'}
- sanitize_value(value)[source]
Sanitize a value for SQL insertion (for logging/display only).
Note: Always use parameterized queries for actual SQL execution.
- class entity.core.JSONYAMLValidator[source]
Bases:
objectValidator for JSON and YAML data.
- class entity.core.TypeValidator[source]
Bases:
objectValidator for Python types and type hints.
- static validate_dict_schema(data, schema, allow_extra=False)[source]
Validate dictionary against a simple type schema.