�
8�in � � � d Z ddlmZ ddlZddlmZ ddlZh d�Zdd�Z dd�Z
dd�Zdd �Zdd
�Z
dd�Zdd�Zdd
�Zdd�Zdd�Zdd�Zd� Zd� Zdd�Zy)z+NumPy helpers for reading PiP JSON outputs.� )�annotationsN)�Path> �grid�matrix�tensor� tensor_2d�vector_list�grid_clamped�
grid_periodic�
tensor_sparsec �p � t j t | � j � � }t |� S )a�
Read one PiP JSON output file into a NumPy array.
Behavior:
- Flat PiP payloads (`kind` + `shape` + `data`) are converted to numeric
ndarrays using the provided shape.
- Legacy PiP payloads are supported for backward compatibility.
- Composite PiP payloads such as `PhysObj` are returned as 0-D object
arrays containing recursively converted Python/NumPy content.
)�json�loadsr � read_text�_payload_to_ndarray)�path�payloads �python/numpy_support.py�
to_ndarrayr s* � � �j�j��d��-�-�/�0�G��w�'�'� c �0 � t | t � r�| j d� }|t v r,ddhj | j � � rt
| � S |dk( rd| v rt | � S |dk( rd| v rt | � S |dk( rd| v rt | � S t | � rt | � S t t | � � S t | t � r2t j | D �cg c]
}t |� �� c}t"