U
    ɻ|e	                  	   @   s\   d dl Zd dlmZmZmZ ddlmZmZm	Z	m
Z
 ejZeddddd ejddf	ddZdS )	    N)
csr_matrix
isspmatrixisspmatrix_csc   )csgraph_to_densecsgraph_from_densecsgraph_masked_from_densecsgraph_from_maskedTFc                 C   s   |s|st d|s"t| r"| j} t| rL|r>t| t|d} qt| |d} ntj	| r|r~| j
}tj| jt|d} || |< qt| } nF|rt| |||
|	d} | j
}tj| jtd} || |< nt| ||	|
d} | jdkrt d| jd	 | jd
 krt d| S )z7Routine for validation and conversion of csgraph inputsz*Internal: dense or csr output must be true)dtypecopy)
null_value)r   r   nan_nullinfinity_null)r
   )r   r   r      z#compressed-sparse graph must be 2-Dr   r   z,compressed-sparse graph must be shape (N, N))
ValueErrorr   Tr   r   DTYPEr   npmaisMaskedArraymaskarraydatar	   r   asarrayr   ndimshape)csgraphdirectedr
   
csr_outputdense_outputcopy_if_densecopy_if_sparseZnull_value_inZnull_value_outr   r   r    r"   ]/var/www/website-v5/atlas_env/lib/python3.8/site-packages/scipy/sparse/csgraph/_validation.pyvalidate_graph	   sB    



r$   )numpyr   scipy.sparser   r   r   _toolsr   r   r   r	   float64r   infr$   r"   r"   r"   r#   <module>   s       