
    %g                         d Z ddlmZmZmZ ddlZddlZdej                  dej                  fdZ	deeeee
df   ej                  f   f   d	ej                  d
ej                  ddfdZy)z-
Common functions for reshaping numpy arrays
    )HashableMutableMappingTupleNdraws_arrayreturnc                    t        | j                        dk7  r-t        dj                  t        | j                                    | j                  d   | j                  d   z  }| j                  d   }| j	                  ||fd      S )z
    Flatten a 3D array of draws X chains X variable into 2D array
    where all chains are concatenated into a single column.

    :param draws_array: 3D array of draws
       z,Expecting 3D array, found array with {} dimsr         F)order)lenshape
ValueErrorformatreshape)r   num_rowsnum_colss      Y/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/cmdstanpy/utils/data_munging.pyflatten_chainsr   
   s     ;":AAK%%&
 	
   #k&7&7&::H  #H(33??    data.vardrawsetc           	          d}|t        fdt        t        j                              D              z  }|j	                  |      f| j
                  <   y)z{
    Adds Stan variable name, labels, and values to a dictionary
    that will be used to construct an xarray DataSet.
    )drawchainc              3   @   K   | ]  }j                    d |   yw)_dim_N)name).0ir   s     r   	<genexpr>z$build_xarray_data.<locals>.<genexpr>'   s      P
%s+Ps   N)tupleranger   
dimensionsextract_reshaper    )r   r   r   var_dimss    `  r   build_xarray_datar)      sO     !2HPU3s~~;N5OPPPH 	G$DNr   )__doc__typingr   r   r   numpynpstaniondarrayr   strVariabler)    r   r   <module>r3      s    3 2  @

 @rzz @&
5sCx"**)D#EE
F	 ZZ 
	r   