arviz
arviz copied to clipboard
Make `from_dict` more flexible, and add `from_pytree`
This also makes from_dict
work for nested dictionaries. I joined the keys with double underscores because using a .
would break attribute access (like, it would still work, but you'd use idata.posterior['var.x.y']
, instead of idata.posterior.var__x__y
)
Hopefully this is a no-op for most code, but it should make arviz work automatically with namedtuples or dataclasses.
:books: Documentation preview :books:: https://arviz--2291.org.readthedocs.build/en/2291/
I'll add that this adds a requirement on dm-tree. I'd rather have used jax.tree_utils
, but that requires all of jax
(~1.4MB) instead of just dm-tree
(~35kb).
Will this affect python 3.12 use? Probably not(?)
It looks like maybe: https://github.com/google-deepmind/tree/issues/109
I gave https://github.com/google-deepmind/tree/pull/111 a try.
Codecov Report
Attention: Patch coverage is 96.00000%
with 1 lines
in your changes are missing coverage. Please review.
Project coverage is 86.80%. Comparing base (
3fc5962
) to head (bd03a88
). Report is 2 commits behind head on main.
Files | Patch % | Lines |
---|---|---|
arviz/data/converters.py | 66.66% | 1 Missing :warning: |
Additional details and impacted files
@@ Coverage Diff @@
## main #2291 +/- ##
=======================================
Coverage 86.79% 86.80%
=======================================
Files 123 123
Lines 12722 12743 +21
=======================================
+ Hits 11042 11061 +19
- Misses 1680 1682 +2
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
I tried it out, and it fails when trying to install dm-tree
on python 3.12, because it requires CMake
. Once you conda install CMake
and install xcode
on OSX, you can install from source, but that's probably too big of a lift for users, and we should wait on this until dm-tree
builds a wheel.
Given expected workloads in arviz
, we might just write our own flatten_with_path
function in pure python. I'll think about that if there's no motion on the other PR.
Update: The PR was merged for dm-tree
, but we need to wait on a pypi release.
Hey! They sneakily added PyPI wheels for 3.12 to dm-tree. I think this is now ready to go.
Check out this pull request on
See visual diffs & provide feedback on Jupyter Notebooks.
Powered by ReviewNB
I think this is ready again.
if @OriolAbril approves I think we can merge
I want to make a patch release before merging, maybe a couple doc changes, then I'll merge.
Sounds good!
bayeux
will probably pin to the next release that has this in it, since this example produces a dictionary of parameters that the current az.from_dict
fails to parse correctly.
I think it should be done now. Docs used to look like this:
Now they are this: https://arviz--2291.org.readthedocs.build/en/2291/api/generated/arviz.dict_to_dataset.html
LGTM!
On Wed, Mar 13, 2024, 3:16 PM Oriol Abril-Pla @.***> wrote:
I think it should be done now. Docs used to look like this:
Captura.de.pantalla.de.2024-03-13.19-42-15.png (view on web) https://github.com/arviz-devs/arviz/assets/23738400/35f4b904-ac37-4805-bb52-37dcf6439f90
Now they are this: https://arviz--2291.org.readthedocs.build/en/2291/api/generated/arviz.dict_to_dataset.html
— Reply to this email directly, view it on GitHub https://github.com/arviz-devs/arviz/pull/2291#issuecomment-1995455446, or unsubscribe https://github.com/notifications/unsubscribe-auth/AARQOEH3YJBX5ZB3GZQF5ILYYCQXHAVCNFSM6AAAAAA7LNJR62VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJVGQ2TKNBUGY . You are receiving this because you authored the thread.Message ID: @.***>