Spaces:
Sleeping
Sleeping
Stephen Zweibel
Add initial implementation of FormatReview tool with core features and configurations
bb869fd
import logging | |
import json | |
from rule_extractor import get_rules_from_url, format_rules_for_display | |
from doc_analyzer import analyze_document | |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') | |
def combine_rules(url_rules, pasted_rules): | |
"""Combine URL-extracted rules and manually pasted rules""" | |
combined_rules = "" | |
if url_rules and (url_rules.strip().startswith('[') or url_rules.strip().startswith('{')): | |
try: | |
rules_data = json.loads(url_rules) | |
if isinstance(rules_data, list) and len(rules_data) > 0: | |
rules_data = rules_data[0] | |
url_rules = format_rules_for_display(rules_data) | |
except Exception as e: | |
logging.error(f"Failed to parse URL rules as JSON: {e}") | |
if url_rules: | |
combined_rules += url_rules | |
if pasted_rules: | |
if url_rules: | |
combined_rules += "\n\n## Additional Manually Pasted Rules\n\n" + pasted_rules | |
else: | |
combined_rules = "# Manually Pasted Rules\n\n" + pasted_rules | |
return combined_rules | |
def extract_rules(journal_url): | |
"""Extract formatting rules from a given URL.""" | |
try: | |
logging.info(f"Extracting rules from URL: {journal_url}") | |
rules = get_rules_from_url(journal_url) | |
logging.info("Successfully extracted rules from URL.") | |
return rules | |
except Exception as e: | |
logging.error(f"Error extracting rules from URL: {e}") | |
return {"error": f"Failed to extract rules from URL: {e}"} | |
def analyze_uploaded_document(uploaded_file, rules): | |
"""Analyze the uploaded document against the provided rules.""" | |
try: | |
logging.info(f"Analyzing document: {uploaded_file.name}") | |
results = analyze_document(uploaded_file, rules) | |
logging.info("Successfully analyzed document.") | |
return results | |
except Exception as e: | |
logging.error(f"Error analyzing document: {e}") | |
return {"error": f"Failed to analyze document: {e}"} | |