blocks-transformer/pre_processing.py

44 lines
1.6 KiB
Python
Raw Permalink Normal View History

2025-03-12 16:14:28 +00:00
import requests
import logging
# Configure logging
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(name)s - %(message)s",
)
logger = logging.getLogger(__name__)
def process_record(url, record):
try:
response = requests.post(
url,
json={"record": record},
headers={"Content-Type": "application/json"}
)
if response.status_code == 200:
output = response.json()
logger.info(f"Pre Processed record: {record['application_key']} - Response: {output}")
return output
2025-03-25 21:12:54 +00:00
elif response.status_code == 404:
# Special-case handling for "CLUSTER_NOT_FOUND" (or any 404).
# Return a benign structure that includes 'hd_key' and 'matches'
# so post_processing does not fail when it does:
# record_id = data.get('hd_key')
# connected_records = data.get('matches', []) + [record_id]
logger.warning(
f"Ignoring 404 for record {record['application_key']}. "
f"Status: 404, Response: {response.text}"
)
return {
"application_key": record.get("application_key"),
"hd_key": None,
"matches": []
}
2025-03-12 16:14:28 +00:00
else:
logger.error(f"Failed to process record {record['application_key']}. Status: {response.status_code}, Response: {response.text}")
return {"error": response.text}
except Exception as e:
logger.error(f"Error processing record {record['application_key']}: {str(e)}")
return {"error": str(e)}