in probe_scraper/parsers/events.py [0:0]
def extract_events_data(e):
props = {
# source_field: target_field
# TODO: extract description.
"description": "description",
"expiry_version": "expiry_version",
"expiry_day": "expiry_day",
"cpp_guard": "cpp_guard",
"bug_numbers": "bug_numbers",
"methods": "details/methods",
"objects": "details/objects",
"record_in_processes": "details/record_in_processes",
# TODO: extract key descriptions too.
"extra_keys": "details/extra_keys",
}
defaults = {
"expiry_version": "never",
"expiry_day": "never",
"name": e.methods[0],
"description": e.description,
"cpp_guard": None,
"bug_numbers": [],
}
data = {"details": {}}
for source_field, target_field in props.items():
value = getattr(e, source_field, e._definition.get(source_field, None))
if value is None and source_field in defaults:
value = defaults[source_field]
set_in_nested_dict(data, target_field, value)
# We only care about opt-out or opt-in really.
optout = getattr(e, "dataset", "").endswith("_OPTOUT")
data["optout"] = optout
# Normalize some field values.
data["expiry_version"] = get_major_version(data["expiry_version"])
if data["expiry_version"] == "default":
data["expiry_version"] = "never"
return data