ó
    Š*£h?  ã                   óp   • S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
   " S S\5      r " S	 S
\5      rg)z
Physical quantities.
é    )Ú
AtomicExpr)ÚSymbol)Úsympify)Ú_QuantityMapper)ÚPrefixc                   óÖ   • \ rS rSrSrSrSrSrSrSr	Sr
    SS jrS rS r\S	 5       r\S
 5       r\S 5       r\S 5       rS rS rS rS rS rSS jr\S 5       r\S 5       rSrg)ÚQuantityé   zP
Physical quantity: can be a unit of measure, a constant or a generic quantity.
TFNc                 ó   • [        U[        5      (       d  [        U5      nUc  UnO [        U[        5      (       a  [        U5      nXpl        [        R
                  " XU5      n	Xl        X)l        X9l        XIl	        XYl
        Xil        Xyl        U	$ ©N)Ú
isinstancer   ÚstrÚ_is_prefixedr   Ú__new__Ú_nameÚ_abbrevÚ_latex_reprÚ_unicode_reprÚ_ascii_reprÚ_mathml_repr)
ÚclsÚnameÚabbrevÚ
latex_reprÚpretty_unicode_reprÚpretty_ascii_reprÚmathml_presentation_reprÚis_prefixedÚassumptionsÚobjs
             Ú[/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/physics/units/quantities.pyr   ÚQuantity.__new__   s   € ô ˜$¤×'Ñ'Ü˜$“<ˆDà‰>Ø‰FÜ˜¤×$Ñ$Ü˜F“^ˆFð 'Ôä× Ò  ¨FÓ3ˆØŒ	ØŒØ$ŒØ/ÔØ+ŒØ3ÔØ&ÔØˆ
ó    c                 ó*   • U[         R                  U '   g r   )r   Ú_quantity_dimension_global)ÚselfÚ	dimensions     r!   Úset_global_dimensionÚQuantity.set_global_dimension3   s   € Ø;DŒ×2Ñ2°4Ò8r#   c                 óØ   • SSK Jn  [        U5      n[        U[        5      (       a  SU l        UR                  S S 5      n[        U5      nX4UR                  U '   X#R                  U '   g)z>
Setting a scale factor that is valid across all unit system.
r   ©Ú
UnitSystemTc                 ó"   • [        U [        5      $ r   )r   r   ©Úxs    r!   Ú<lambda>Ú;Quantity.set_global_relative_scale_factor.<locals>.<lambda>@   s   € ”j ¤FÔ+r#   c                 ó   • U R                   $ r   )Úscale_factorr.   s    r!   r0   r1   A   s   € �a—n’nr#   N)	Úsympy.physics.unitsr,   r   r   r   r   ÚreplaceÚ_quantity_scale_factors_globalÚ,_quantity_dimensional_equivalence_map_global)r&   r3   Úreference_quantityr,   s       r!   Ú set_global_relative_scale_factorÚ)Quantity.set_global_relative_scale_factor6   si   € õ 	3Ü˜|Ó,ˆÜ�l¤F×+Ñ+Ø $ˆDÔà#×+Ñ+Ù+Ù$ó
ˆô ˜|Ó,ˆØ;GÐ:\ˆ
×1Ñ1°$Ñ7ØHZ×?Ñ?ÀÒEr#   c                 ó   • U R                   $ r   )r   ©r&   s    r!   r   ÚQuantity.nameG   s   € à�z‰zÐr#   c                 óP   • SSK Jn  UR                  5       nUR                  U 5      $ )Nr   r+   )r4   r,   Úget_default_unit_systemÚget_quantity_dimension©r&   r,   Úunit_systems      r!   r'   ÚQuantity.dimensionK   s$   € å2Ø ×8Ñ8Ó:ˆØ×1Ñ1°$Ó7Ð7r#   c                 ó   • U R                   $ )zg
Symbol representing the unit name.

Prepend the abbreviation with the prefix symbol if it is defines.
)r   r<   s    r!   r   ÚQuantity.abbrevQ   s   € ð �|‰|Ðr#   c                 óP   • SSK Jn  UR                  5       nUR                  U 5      $ )zG
Overall magnitude of the quantity as compared to the canonical units.
r   r+   )r4   r,   r?   Úget_quantity_scale_factorrA   s      r!   r3   ÚQuantity.scale_factorZ   s&   € õ
 	3Ø ×8Ñ8Ó:ˆØ×4Ñ4°TÓ:Ð:r#   c                 ó   • g©NT© r<   s    r!   Ú_eval_is_positiveÚQuantity._eval_is_positivec   ó   € Ør#   c                 ó   • grJ   rK   r<   s    r!   Ú_eval_is_constantÚQuantity._eval_is_constantf   rN   r#   c                 ó   • U $ r   rK   r<   s    r!   Ú	_eval_AbsÚQuantity._eval_Absi   s   € Øˆr#   c                 ó>   • [        U[        5      (       a  X:w  a  U $ g g r   )r   r	   )r&   ÚoldÚnews      r!   Ú
_eval_subsÚQuantity._eval_subsl   s    € Ü�cœ8×$Ñ$¨«ØˆKð *5Ð$r#   c                 óÐ   • U R                   (       a  U R                   $ SR                  [        U R                  5      S:¼  a  U R                  S   5      $ U R                  S   5      $ )Nz\text{{{}}}é   é   r   )r   ÚformatÚlenÚargs)r&   Úprinters     r!   Ú_latexÚQuantity._latexp   s`   € Ø××Ø×#Ñ#Ð#à!×(Ñ(Ü  §¡›^¨qÓ0ð *.¯©°1©ó Dð DØ6:·i±iÀ±lóDð Dr#   c                 ó    • SSK Jn  U" XU5      $ )aQ  
Convert the quantity to another quantity of same dimensions.

Examples
========

>>> from sympy.physics.units import speed_of_light, meter, second
>>> speed_of_light
speed_of_light
>>> speed_of_light.convert_to(meter/second)
299792458*meter/second

>>> from sympy.physics.units import liter
>>> liter.convert_to(meter**3)
meter**3/1000
r\   )Ú
convert_to)Úutilrd   )r&   ÚotherrB   rd   s       r!   rd   ÚQuantity.convert_tow   s   € õ" 	%Ù˜$ {Ó3Ð3r#   c                 ó   • [        5       $ )z"Return free symbols from quantity.)Úsetr<   s    r!   Úfree_symbolsÚQuantity.free_symbols‹   s   € ô ‹uˆr#   c                 ó   • U R                   $ )zWWhether or not the quantity is prefixed. Eg. `kilogram` is prefixed, but `gram` is not.©r   r<   s    r!   r   ÚQuantity.is_prefixed�   s   € ð × Ñ Ð r#   rm   )NNNNNF)ÚSI)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úis_commutativeÚis_realÚ	is_numberÚ
is_nonzeroÚis_physical_constantÚ	_diff_wrtr   r(   r9   Úpropertyr   r'   r   r3   rL   rP   rS   rX   ra   rd   rj   r   Ú__static_attributes__rK   r#   r!   r	   r	      sÜ   † ñð €NØ€GØ€IØ€JØ ÐØ€Ià"&Ø59ØAEØ!ôò6Eò[ð" ñó ðð ñ8ó ð8ð
 ñó ðð ñ;ó ð;òòòòòDô4ð( ñó ðð ñ!ó ó!r#   r	   c                   ó   • \ rS rSrSrSrSrg)ÚPhysicalConstanté•   zLRepresents a physical constant, eg. `speed_of_light` or `avogadro_constant`.TrK   N)rp   rq   rr   rs   rt   ry   r|   rK   r#   r!   r~   r~   •   s   † ÙVàÓr#   r~   N)rt   Úsympy.core.exprr   Úsympy.core.symbolr   Úsympy.core.sympifyr   Úsympy.physics.units.dimensionsr   Úsympy.physics.units.prefixesr   r	   r~   rK   r#   r!   Ú<module>r…      s6   ðñõ 'Ý $Ý &Ý :Ý /ôG!ˆzô G!ôR �xõ  r#   