U
    »mœd	  ã                	   @   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�} qÎt| |d�} n‚tj 	| ¡rˆ|r~| j
}tj| jt|d�} || |< qÎt| ƒ} nF|r¾t| |||
|	d�} | j
}tj| jtd�} || |< nt| ||	|
d�} | jdkràt dƒ‚| jd	 | jd
 krüt 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ÚmaZisMaskedArrayÚmaskÚarrayÚdatar	   r   Zasarrayr   ÚndimÚshape)ZcsgraphZdirectedr
   Z
csr_outputZdense_outputZcopy_if_denseZcopy_if_sparseZnull_value_inZnull_value_outr   r   r   © r   úY/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/scipy/sparse/csgraph/_validation.pyÚvalidate_graph	   sB    

ü
þ
r   )Únumpyr   Zscipy.sparser   r   r   Z_toolsr   r   r   r	   Zfloat64r   Úinfr   r   r   r   r   Ú<module>   s       ü