How to safely read contents of mix.lock?

I would like to read the contents of the mix.lock file. It seems to be valid Elixir syntax and so I can do a File.read and a Code.eval_string but eval_string is inherently unsafe and the contents of mix.lock should just be a data structure without any side-effecting code that might be dangerous.

Ideally I think I’m looking for equivalent of ast.literal_eval in Python: ast — Abstract syntax trees — Python 3.14.6 documentation But I guess there might also be a official module somewhere that helps with this? I don’t know.

I’m playing around with nushell and trying to write a plugin that generates table data from the mix.lock contents. Just a bit of fun. Not going anywhere really.