Fix traces table filtering for string arguments

This commit is contained in:
Andras Schmelczer 2022-08-11 16:49:19 +02:00
parent 83e111f088
commit 49968691cc
No known key found for this signature in database
GPG key ID: 0EA1BC97D0AB076E
2 changed files with 10 additions and 3 deletions

View file

@ -67,7 +67,7 @@ class ParallelTinyDbDriver(TracingDatabaseDriver):
if not documents: if not documents:
return [], 0 return [], 0
df = pd.DataFrame(documents) df = pd.DataFrame([Trace.parse_obj(d).to_flat_dict() for d in documents])
for f in conjunctive_filters: for f in conjunctive_filters:
operator = f.operator.lower() operator = f.operator.lower()
@ -76,7 +76,12 @@ class ParallelTinyDbDriver(TracingDatabaseDriver):
getattr(df[f.property], operator_mapping[f.operator])(f.value) getattr(df[f.property], operator_mapping[f.operator])(f.value)
] ]
elif operator == "contains": elif operator == "contains":
df = df.loc[df[f.property].str.contains(f.value, case=False)] df = df.loc[
df[f.property].str.contains(
str(int(f.value)) if isinstance(f.value, float) else f.value,
case=False,
)
]
if sort_by: if sort_by:
df.sort_values( df.sort_values(

View file

@ -88,7 +88,9 @@ class Trace(Generic[T], HashableBaseModel):
} }
), ),
**{ **{
k: pformat(v, indent=2, compact=True) k: v
if (isinstance(v, float) or isinstance(v, int))
else pformat(v, indent=2, compact=True)
for k, v in self.logged_values.items() for k, v in self.logged_values.items()
}, },
"models_flat": self.models_flat, "models_flat": self.models_flat,