simply record the type of each argument when you store it, and keep it in the database, unbeknownst to the user, what do you say?
This is now supported, but then you still need to flatten the dict.
Maybe we can just support "empty_dict/new_value = 42" if the original was "empty_dict = {}"
WDYT?
Okay, another suggestion, simply record the type of each argument when you store it, and keep it in the database, unbeknownst to the user, what do you say?
Hi SmarmySeaurchin8
Could you open a bug on GitHub, so this is not lost? Let's assume 'a' is tracked, how would one change 'a' in the UI?
Usually it's not an empty dict, it's optional additional keyword arguments. But it can also be empty if there is no optional keyword required.
Hi AgitatedDove14 ,
How could this be used in case of multiple configurations per task? How can I name such configuration?
Also this is sadly much less readable.
Would I be able to add customized columns like I am able to in task.connect
? Same question applies for parallel coordinates and all kinds of comparisons
Would I be able to add customized columns like I am able to in
task.connect
? Same question applies for parallel coordinates and all kinds of comparisons
No to both 😞
Sure That's a really good question I am not sure how to answer. I know there is the problem of visualizing '{}' and visualizing {}. Maybe a bolded {} like this: {} ? or like this {} ? to emphasize the difference?
SmarmySeaurchin8 regrading (2)
I'm not sure the current visualization supports it. I mean we can put "{}", but that would imply you can edit it, which then we have to support, possible but weird, and this is why:task.connect({'a':{},'b': {'nested': 'value}}
will become'a' = '{}'
'b/nested' = 'value'
But then if you edit to:'a' = '{'nested': 'value'}'
'b/nested' = 'value'
you have two different ways of presenting the same type of structure...
Train Data Params/a = {} Train Data Params/b = ...
Then maybe we could "hack" it so that if you edit it in the UI like so:Train Data Params/a = {'new': 'value'} Train Data Params/b = ...
You end up withparam = {'a': {'new': 'value'}, 'b' : ... }
What do you think?
I understand how this is problematic. This might require more thinking if you guys wish to support this.
yes ...
What's your use case for passing an empty dict ? (meaning how would one use it later)
SmarmySeaurchin8 what do you think?
https://github.com/allegroai/trains/issues/265#issuecomment-748543102
task.connect_configuration
task.connect({'a':{},'b':'moshe'}, name='Train Data Params'))
how this would then be appeared in the UI? (assume I don't want to update said empty dict for the moment)