The thrilling sequel to #850 and probably the final part before @petar-qb does the actual implementation of this 🙌
Again I nominate @petar-qb as lead reviewer and @maxschulz-COL and second pair of eyes 🙏
Most changes here are to _action_utils.py, which was ready for a good refactoring.
data loading during runtime is much more efficient now. Before if you had 10 graphs on a page all using the same data then we'd load the data 10 times. Now we only load it once. Still need to write some tests for this to make sure it's working as intended, but that's the idea anyway. This is done by _multi_load in data_manager. For some cases this could actually make a big difference to performance when caching is off (as is the default)
Filter.pre_build now also uses this _multi_load functionality
untangled a few helper functions in action_utils.py. There is a clearer separation of responsibilities between different functions now.
the newly introduced TODO NEXT are short-term ones and will go once we've finished implementing dynamic filters
@petar-qb I recommend reviewing as follows:
look at commits in order: 13f022ef2bd3621dbacb04d0fb0e (sorry I had very clear commit history until the base branch got merged into main and then I screwed it up 🤦)
read through the whole actions_utils.py and filter.py file as it now stands
do some manual testing
TODO:
[x] Write tests
Screenshot
Notice
[x] I acknowledge and agree that, by checking this box and clicking "Submit Pull Request":
I submit this contribution under the Apache 2.0 license and represent that I am entitled to do so on behalf of myself, my employer, or relevant third parties, as applicable.
I certify that (a) this contribution is my original creation and / or (b) to the extent it is not my original creation, I am authorized to submit this contribution on behalf of the original creator(s) or their licensees.
I certify that the use of this contribution as authorized by the Apache 2.0 license does not violate the intellectual property rights of anyone else.
I have not referenced individuals, products or companies in any commits, directly or indirectly.
I have not added data or restricted code in any commits, directly or indirectly.
Description
The thrilling sequel to #850 and probably the final part before @petar-qb does the actual implementation of this 🙌
Again I nominate @petar-qb as lead reviewer and @maxschulz-COL and second pair of eyes 🙏
Most changes here are to
_action_utils.py
, which was ready for a good refactoring._multi_load
indata_manager
. For some cases this could actually make a big difference to performance when caching is off (as is the default)Filter.pre_build
now also uses this_multi_load
functionalityaction_utils.py
. There is a clearer separation of responsibilities between different functions now.TODO NEXT
are short-term ones and will go once we've finished implementing dynamic filters@petar-qb I recommend reviewing as follows:
do some manual testing
TODO:
Screenshot
Notice
[x] I acknowledge and agree that, by checking this box and clicking "Submit Pull Request":