o
    ª3Ihè  ã                   @   sX   d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ G dd„ deƒZdS )	é    )Ú
AtomicExprÚSymbolÚS)Ú_sympify)Ú
prettyForm)Ú
PRECEDENCE)Ú
NumberKindc                       sv   e Zd ZdZeZd‡ fdd„	ZdZdZe	dd„ ƒZ
dZdd	„ Zdd
d„Zddd„Zed Ze	dd„ ƒZdd„ Z‡  ZS )Ú
BaseScalarzb
    A coordinate symbol/base scalar.

    Ideally, users should not instantiate this class.

    Nc                    sÜ   ddl m} |d u rd |¡}nt|tƒr|j}|d u r"d |¡}nt|tƒr*|j}t|ƒ}t|ƒ}tƒ  | ||¡}t||ƒsCt	dƒ‚|t
ddƒvrNtdƒ‚||f|_|jd |j|   |_|_d	| |_||_||_|S )
Nr   )Ú
CoordSys3Dzx{}zx_{}zsystem should be a CoordSys3Dé   zInvalid index specified.Ú.Ú )Úsympy.vector.coordsysrectr
   ÚformatÚ
isinstancer   Únamer   ÚsuperÚ__new__Ú	TypeErrorÚrangeÚ
ValueErrorÚ_idÚ_nameÚ_variable_namesÚ_pretty_formÚ_latex_formÚ_system)ÚclsÚindexÚsystemÚ
pretty_strÚ	latex_strr
   Úobj©Ú	__class__© úS/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/sympy/vector/scalar.pyr      s,   




zBaseScalar.__new__Tc                 C   s   | hS ©Nr%   ©Úselfr%   r%   r&   Úfree_symbols0   ó   zBaseScalar.free_symbolsc                 C   s   | |krt jS t jS r'   )r   ÚOneÚZero)r)   Úsr%   r%   r&   Ú_eval_derivative6   s   zBaseScalar._eval_derivativec                 C   ó   | j S r'   )r   ©r)   Úprinterr%   r%   r&   Ú_latex;   ó   zBaseScalar._latexc                 C   s
   t | jƒS r'   )r   r   r1   r%   r%   r&   Ú_pretty>   s   
zBaseScalar._prettyÚAtomc                 C   r0   r'   )r   r(   r%   r%   r&   r   C   r+   zBaseScalar.systemc                 C   r0   r'   )r   r1   r%   r%   r&   Ú	_sympystrG   r4   zBaseScalar._sympystr)NNr'   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úkindr   Úis_commutativeÚ	is_symbolÚpropertyr*   Ú	_diff_wrtr/   r3   r5   r   Ú
precedencer   r7   Ú__classcell__r%   r%   r#   r&   r	      s     



r	   N)Ú
sympy.corer   r   r   Úsympy.core.sympifyr   Ú sympy.printing.pretty.stringpictr   Úsympy.printing.precedencer   Úsympy.core.kindr   r	   r%   r%   r%   r&   Ú<module>   s    