o
    iE
                  	   @   s`   d dl Zd dlmZ d dl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)issparse)convert_pydata_sparse_to_scipy)csgraph_to_densecsgraph_from_densecsgraph_masked_from_densecsgraph_from_maskedTFc                 C   sD  |s|st d|g}|	r|tj |
r|tj t| |d} |s/t| r/| jdkr/| j} t| rH|rA| j	|dj
tdd} nHt| |d} nAtj| rf|ra| j}tj| jt|d} || |< n(t| } n#|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)	accept_fvZcsc)copyF)
null_value)dtyper	   )r	   r
   nan_nullinfinity_null)r   )r
   r   r      z#compressed-sparse graph must be 2-Dr      z,compressed-sparse graph must be shape (N, N))
ValueErrorappendnpinfnanr   r   formatTZtocsrZastypeDTYPEr   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    r   Z/home/kim/smarthome/.venv/lib/python3.10/site-packages/scipy/sparse/csgraph/_validation.pyvalidate_graph   sN   



r    )numpyr   Zscipy.sparser   Zscipy.sparse._sputilsr   Zscipy.sparse.csgraph._toolsr   r   r   r   Zfloat64r   r   r    r   r   r   r   <module>   s    