dyadd's picture
Upload folder using huggingface_hub
5400c2e verified
"""Shared utilities for the entire learning system"""
# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/03_utils.ipynb.
# %% auto 0
__all__ = ['logger', 'setup_logger', 'load_context_safely', 'save_context_safely']
# %% ../nbs/03_utils.ipynb 4
from typing import Dict, List, Optional, Any, Tuple
import json
from pathlib import Path
import logging
from datetime import datetime
# %% ../nbs/03_utils.ipynb 6
def setup_logger(name: str) -> logging.Logger:
"""Set up module logger with consistent formatting"""
logger = logging.getLogger(name)
if not logger.handlers:
handler = logging.StreamHandler()
handler.setFormatter(
logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
)
logger.addHandler(handler)
logger.setLevel(logging.INFO)
return logger
logger = setup_logger(__name__)
# %% ../nbs/03_utils.ipynb 7
def load_context_safely(path: Path) -> Dict:
"""
Safely load learning context from JSON file.
Args:
path: Path to context file
Returns:
dict: Loaded context data
Raises:
ValueError: If file is invalid or inaccessible
"""
try:
with open(path, 'r') as f:
return json.load(f)
except json.JSONDecodeError as e:
raise ValueError(f"Invalid context file format: {str(e)}")
except Exception as e:
raise ValueError(f"Error loading context file: {str(e)}")
# %% ../nbs/03_utils.ipynb 8
def save_context_safely(context: Dict, path: Path) -> None:
"""
Safely save learning context to JSON file.
Args:
context: Context data to save
path: Path to save file
Raises:
ValueError: If save operation fails
"""
try:
with open(path, 'w') as f:
json.dump(context, f, indent=2)
except Exception as e:
raise ValueError(f"Error saving context: {str(e)}")