o
    ª3Ih‡  ã                   @   sH   d Z ddlmZ ddlmZmZ ddlZddlmZ dd„ Z	dd	„ Z
dS )
z[For reading in DIMACS file format

www.cs.ubc.ca/~hoos/SATLIB/Benchmarks/SAT/satformat.ps

é    )ÚSymbol)ÚAndÚOrN)ÚPathc                 C   sþ   g }|   d¡}t d¡}t d¡}t|ƒdkr{| d¡}| |¡su| |¡}|su| d¡  d¡}g }|D ]3}	|	dkrgt|	ƒdkrAq4tt|	ƒƒ}
d}t|	ƒdk rQd}|r]| 	t
d	|
 ƒ¡ q4| 	t
d	|
 ƒ ¡ q4t|ƒdkru| 	t|Ž ¡ t|ƒdkst|Ž S )
a   Loads a boolean expression from a string.

    Examples
    ========

    >>> from sympy.logic.utilities.dimacs import load
    >>> load('1')
    cnf_1
    >>> load('1 2')
    cnf_1 | cnf_2
    >>> load('1 \n 2')
    cnf_1 & cnf_2
    >>> load('1 2 \n 3')
    cnf_3 & (cnf_1 | cnf_2)
    Ú
zc.*zp\s*cnf\s*(\d*)\s*(\d*)r   ú Ú TFzcnf_%s)ÚsplitÚreÚcompileÚlenÚpopÚmatchÚrstripÚintÚabsÚappendr   r   r   )ÚsÚclausesÚlinesÚpCommentÚpStatsÚlineÚmÚnumsÚlistÚlitÚnumÚsign© r   ú\/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/sympy/logic/utilities/dimacs.pyÚload   s6   





€çr!   c                 C   s   t | ƒ ¡ }t|ƒS )z'Loads a boolean expression from a file.)r   Ú	read_textr!   )Úlocationr   r   r   r    Ú	load_fileB   s   r$   )Ú__doc__Ú
sympy.corer   Úsympy.logic.boolalgr   r   r
   Úpathlibr   r!   r$   r   r   r   r    Ú<module>   s    5