By default, Thicket performs a union between graphs and fills the row values for profiles that do not contain a given node with NaNs (numerical) and Nones (string). We have found this may be confusing for users who expect a singular datatype, for example when querying:

checking for "hypre_BoomerAMGSolve" in n will not work when n is None, causing the error. In this case the error could be avoided either by (1) turning off fill_perfdata when creating the Thicket, or (2) changing the query to "hypre_BoomerAMGSolve" == n (which is close but not exactly the same). This is not a bug and rather a question of how we can make the behavior of Thicket more intuitive or easy to understand.
A few solutions:
- Check for this case before querying and print a warning. This would require parsing the query.
- Make the fill value an empty string for columns of string type. This would avoid an error in the above case, but would be less clear that the value was filled versus using
None.
By default, Thicket performs a union between graphs and fills the row values for profiles that do not contain a given node with
NaNs (numerical) andNones (string). We have found this may be confusing for users who expect a singular datatype, for example when querying:checking for
"hypre_BoomerAMGSolve" in nwill not work whennisNone, causing the error. In this case the error could be avoided either by (1) turning offfill_perfdatawhen creating the Thicket, or (2) changing the query to"hypre_BoomerAMGSolve" == n(which is close but not exactly the same). This is not a bug and rather a question of how we can make the behavior of Thicket more intuitive or easy to understand.A few solutions:
None.