in analysis/download.py [0:0]
def extract_metadata(df: pd.DataFrame) -> Optional[AnalysisMetadata]:
"""Extract metadata from the scorecard record in Log Analytics."""
if df.empty:
return None
config = df.iloc[0].to_dict()
try:
variants = json.loads(config["Variants"])
except (KeyError, json.JSONDecodeError):
logging.warning("Variant metadata are unavailable")
variants = []
return AnalysisMetadata(
feature_flag=config["FeatureName"],
allocation_id=config["AllocationId"],
scorecard_id=config["ScorecardId"],
start_time=config["AnalysisStartTime"].to_pydatetime(),
end_time=config["AnalysisEndTime"].to_pydatetime(),
variants=[
VariantMetadata(
variant=x["Variant"],
is_control=x["IsControlVariant"],
allocated_pct=x["VariantAssignmentPercentage"],
assigned_users=x["AssignmentUserCount"],
is_srm=x["SampleRatioMismatchPValue"] <= 0.0005,
is_tea=False, # populate later based on metric data
)
for x in variants
],
)