|
|
|
import base64
|
|
import os
|
|
import mimetypes
|
|
from typing import Optional, Dict, Any
|
|
import logging
|
|
|
|
|
|
logging.basicConfig(level=logging.INFO)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
def encode_image_to_base64(image_path: str) -> str:
|
|
"""Convert image file to base64 encoding"""
|
|
try:
|
|
with open(image_path, "rb") as image_file:
|
|
encoded = base64.b64encode(image_file.read()).decode('utf-8')
|
|
return encoded
|
|
except Exception as e:
|
|
logger.error(f"Error encoding image {image_path}: {str(e)}")
|
|
raise
|
|
|
|
def get_mime_type(file_path: str) -> str:
|
|
"""Get MIME type for file"""
|
|
mime_type, _ = mimetypes.guess_type(file_path)
|
|
return mime_type or 'application/octet-stream'
|
|
|
|
def validate_file_exists(file_path: str) -> bool:
|
|
"""Validate that file exists and is readable"""
|
|
return os.path.exists(file_path) and os.path.isfile(file_path)
|
|
|
|
def get_env_var(var_name: str, default: Optional[str] = None) -> str:
|
|
"""Get environment variable with optional default"""
|
|
value = os.getenv(var_name, default)
|
|
if value is None:
|
|
raise ValueError(f"Environment variable {var_name} is required")
|
|
return value
|
|
|