Ë
    7^(hb0  ã                   óÆ  — d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ e	Z%e"Z&eZ'eZ(eZ)ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZD ddlEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZm€Z€m�Z�m‚Z‚mƒZƒm„Z„m…Z…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠm‹Z‹mŒZŒm�Z�mŽZŽm�Z�m�Z�m‘Z‘m’Z’m“Z“m”Z”m•Z•m–Z–m—Z—m˜Z˜m™Z™mšZšm›Z›mœZœm�Z�mžZžmŸZŸm Z m¡Z¡m¢Z¢m£Z£m¤Z¤m¥Z¥m¦Z¦m§Z§m¨Z¨m©Z©mªZªm«Z«m¬Z¬m­Z­m®Z®m¯Z¯m°Z°m±Z±m²Z²m³Z³m´Z´mµZµm¶Z¶m·Z·m¸Z¸m¹Z¹mºZºm»Z»m¼Z¼m½Z½m¾Z¾m¿Z¿mÀZÀmÁZÁmÂZÂmÃZÃmÄZÄmÅZÅmÆZÆmÇZÇmÈZÈmÉZÉmÊZÊmËZËmÌZÌmÍZÍmÎZÎmÏZÏmÐZÐmÑZÑmÒZÒmÓZÓmÔZÔmÕZÕmÖZÖm×Z×mØZØmÙZÙmÚZÚmÛZÛmÜZÜmÝZÝmÞZÞmßZßmàZàmáZámâZâmãZãmäZämåZåmæZæmçZçmèZèméZémêZêmëZëmìZìmíZímîZîmïZïmðZðmñZñmòZòmóZómôZômõZõmöZöm÷Z÷møZømùZùmúZúmûZûmüZümýZýmþZþmÿZÿ�m �Z �m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m	�Z	�m
�Z
�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m �Z �m!�Z!�m"�Z"�m#�Z#�m$�Z$�m%�Z%�m&�Z&�m'�Z'�m(�Z(�m)�Z)�m*�Z*�m+�Z+�m,�Z,�m-�Z-�m.�Z.�m/�Z/�m0�Z0�m1�Z1�m2�Z2�m3�Z3�m4�Z4�m5�Z5�m6�Z6�m7�Z7�m8�Z8�m9�Z9�m:�Z:�m;�Z;�m<�Z<�m=�Z=�m>�Z>�m?�Z?�m@�Z@�mA�ZA�mB�ZB�mC�ZC�mD�ZD�mE�ZE�mF�ZF�mG�ZG�mH�ZH�mI�ZI�mJ�ZJ�mK�ZK�mL�ZL�mM�ZM�mN�ZN�mO�ZO�mP�ZP�mQ�ZQ�mR�ZR�mS�ZS�mT�ZT�mU�ZU�mV�ZV�mW�ZW�mX�ZX�mY�ZY�mZ�ZZ�m[�Z[�m\�Z\�m]�Z]�m^�Z^�m_�Z_�m`�Z`�ma�Za�mb�Zb�mc�Zc�md�Zd�me�Ze�mf�Zf�mg�Zg�mh�Zh�mi�Zi�mj�Zj�mk�Zk�ml�Zl�mm�Zm dd	�ln�mo�Zo�mp�Zp�mq�Zq dd
„�Zrg d¢�Zsy)aK  
Dimensional analysis and unit systems.

This module defines dimension/unit systems and physical quantities. It is
based on a group-theoretical construction where dimensions are represented as
vectors (coefficients being the exponents), and units are defined as a dimension
to which we added a scale.

Quantities are built from a factor and a unit, and are the basic objects that
one will use when doing computations.

All objects except systems and prefixes can be used in SymPy expressions.
Note that as part of a CAS, various objects do not combine automatically
under operations.

Details about the implementation can be found in the documentation, and we
will not repeat all the explanations we gave there concerning our approach.
Ideas about future developments can be found on the `Github wiki
<https://github.com/sympy/sympy/wiki/Unit-systems>`_, and you should consult
this page if you are willing to help.

Useful functions:

- ``find_unit``: easily lookup pre-defined units.
- ``convert_to(expr, newunit)``: converts an expression into the same
    expression expressed in another unit.

é   )Ú	DimensionÚDimensionSystem)Ú
UnitSystem)Ú
convert_to)ÚQuantity)Úamount_of_substanceÚaccelerationÚactionÚareaÚcapacitanceÚchargeÚconductanceÚcurrentÚenergyÚforceÚ	frequencyÚ	impedanceÚ
inductanceÚlengthÚluminous_intensityÚmagnetic_densityÚmagnetic_fluxÚmassÚmomentumÚpowerÚpressureÚtemperatureÚtimeÚvelocityÚvoltageÚvolume)ÚyottaÚzettaÚexaÚpetaÚteraÚgigaÚmegaÚkiloÚhectoÚdecaÚdeciÚcentiÚmilliÚmicroÚnanoÚpicoÚfemtoÚattoÚzeptoÚyoctoÚkibiÚmebiÚgibiÚtebiÚpebiÚexbi((  ÚpercentÚpercentsÚpermilleÚradÚradianÚradiansÚdegÚdegreeÚdegreesÚsrÚ	steradianÚ
steradiansÚmilÚangular_milÚangular_milsÚmÚmeterÚmetersÚkgÚkilogramÚ	kilogramsÚsÚsecondÚsecondsÚAÚampereÚamperesÚKÚkelvinÚkelvinsÚmolÚmoleÚmolesÚcdÚcandelaÚcandelasÚgÚgramÚgramsÚmgÚ	milligramÚ
milligramsÚugÚ	microgramÚ
microgramsÚtÚtonneÚ
metric_tonÚnewtonÚnewtonsÚNÚjouleÚjoulesÚJÚwattÚwattsÚWÚpascalÚpascalsÚPaÚpaÚhertzÚhzÚHzÚcoulombÚcoulombsÚCÚvoltÚvoltsÚvÚVÚohmÚohmsÚsiemensÚSÚmhoÚmhosÚfaradÚfaradsÚFÚhenryÚhenrysÚHÚteslaÚteslasÚTÚweberÚwebersÚWbÚwbÚoptical_powerÚdioptreÚDÚluxÚlxÚkatalÚkatÚgrayÚGyÚ	becquerelÚBqÚkmÚ	kilometerÚ
kilometersÚdmÚ	decimeterÚ
decimetersÚcmÚ
centimeterÚcentimetersÚmmÚ
millimeterÚmillimetersÚumÚ
micrometerÚmicrometersÚmicronÚmicronsÚnmÚ	nanometerÚ
nanometersÚpmÚ	picometerÚ
picometersÚftÚfootÚfeetÚinchÚinchesÚydÚyardÚyardsÚmiÚmileÚmilesÚnmiÚnautical_mileÚnautical_milesÚangstromÚ	angstromsÚhaÚhectareÚlÚLÚliterÚlitersÚdlÚdLÚ	deciliterÚ
decilitersÚclÚcLÚ
centiliterÚcentilitersÚmlÚmLÚ
milliliterÚmillilitersÚmsÚmillisecondÚmillisecondsÚusÚmicrosecondÚmicrosecondsÚnsÚ
nanosecondÚnanosecondsÚpsÚ
picosecondÚpicosecondsÚminuteÚminutesÚhÚhourÚhoursÚdayÚdaysÚanomalistic_yearÚanomalistic_yearsÚsidereal_yearÚsidereal_yearsÚtropical_yearÚtropical_yearsÚcommon_yearÚcommon_yearsÚjulian_yearÚjulian_yearsÚdraconic_yearÚdraconic_yearsÚgaussian_yearÚgaussian_yearsÚfull_moon_cycleÚfull_moon_cyclesÚyearÚyearsÚGÚgravitational_constantÚcÚspeed_of_lightÚelementary_chargeÚhbarÚplanckÚeVÚelectronvoltÚelectronvoltsÚavogadro_numberÚavogadroÚavogadro_constantÚ	boltzmannÚboltzmann_constantÚstefanÚstefan_boltzmann_constantÚRÚmolar_gas_constantÚfaraday_constantÚjosephson_constantÚvon_klitzing_constantÚDaÚdaltonÚamuÚamusÚatomic_mass_unitÚatomic_mass_constantÚmeÚelectron_rest_massÚgeeÚgeesÚacceleration_due_to_gravityÚu0Úmagnetic_constantÚvacuum_permeabilityÚe0Úelectric_constantÚvacuum_permittivityÚZ0Úvacuum_impedanceÚcoulomb_constantÚelectric_force_constantÚ
atmosphereÚatmospheresÚatmÚkPaÚbarÚbarsÚpoundÚpoundsÚpsiÚdHg0ÚmmHgÚtorrÚmmuÚmmusÚmilli_mass_unitÚquartÚquartsÚlyÚ	lightyearÚ
lightyearsÚauÚastronomical_unitÚastronomical_unitsÚplanck_massÚplanck_timeÚplanck_temperatureÚplanck_lengthÚplanck_chargeÚplanck_areaÚplanck_volumeÚplanck_momentumÚplanck_energyÚplanck_forceÚplanck_powerÚplanck_densityÚplanck_energy_densityÚplanck_intensityÚplanck_angular_frequencyÚplanck_pressureÚplanck_currentÚplanck_voltageÚplanck_impedanceÚplanck_accelerationÚbitÚbitsÚbyteÚkibibyteÚ	kibibytesÚmebibyteÚ	mebibytesÚgibibyteÚ	gibibytesÚtebibyteÚ	tebibytesÚpebibyteÚ	pebibytesÚexbibyteÚ	exbibytes)ÚmksÚmksaÚsic           	      ój  — t        j                  |«      }ddlmc m} g }t        | t        «      rpt        |«      D �cg c]$  }| |v sŒt        t        ||«      t        «      sŒ#|‘Œ& }}t        || «      }t        |t        «      �r|j                  t        |«      «       nøt        t        |«      «      D ]á  }t        ||«      }t        |t        «      sŒ t        | t        «      r5| j                  |j                  k(  sŒJ|j                  t        |«      «       Œet        | t        «      r+|j                  | k(  sŒ…|j                  t        |«      «       Œ |j                  t        |j!                  | «      «      k(  sŒÈ|j                  t        |«      «       Œã t        t#        |«      d„ ¬«      S c c}w )aK  
    Return a list of matching units or dimension names.

    - If ``quantity`` is a string -- units/dimensions containing the string
    `quantity`.
    - If ``quantity`` is a unit or dimension -- units having matching base
    units or dimensions.

    Examples
    ========

    >>> from sympy.physics import units as u
    >>> u.find_unit('charge')
    ['C', 'coulomb', 'coulombs', 'planck_charge', 'elementary_charge']
    >>> u.find_unit(u.charge)
    ['C', 'coulomb', 'coulombs', 'planck_charge', 'elementary_charge']
    >>> u.find_unit("ampere")
    ['ampere', 'amperes']
    >>> u.find_unit('angstrom')
    ['angstrom', 'angstroms']
    >>> u.find_unit('volt')
    ['volt', 'volts', 'electronvolt', 'electronvolts', 'planck_voltage']
    >>> u.find_unit(u.inch**3)[:9]
    ['L', 'l', 'cL', 'cl', 'dL', 'dl', 'mL', 'ml', 'liter']
    é    Nc                 ó   — t        | «      | fS )N)Úlen)Úxs    úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/physics/units/__init__.pyú<lambda>zfind_unit.<locals>.<lambda>  s   € ¬#¨a«&°!¨€ ó    )Úkey)r   Úget_unit_systemÚsympy.physics.unitsÚphysicsÚunitsÚ
isinstanceÚstrÚdirÚgetattrr   r   ÚextendÚ	find_unitÚsortedÚ	dimensionÚappendÚget_dimensional_exprÚset)ÚquantityÚunit_systemÚuÚrvÚiÚdimÚothers          rl  ry  ry  Ü   sB  € ô4 ×,Ñ,¨[Ó9€Kç#Ð#Ø	€BÜ�(œCÔ Ü˜Q›ÖY�A 8¨q¢=´ZÄÈÈ1ÃÌxÕ5XŠaÐYˆÐYÜ�a˜Ó"ˆÜ�cœ9Õ%Ø�I‰I”i “nÕ%äœ˜A›“ò 	"ˆAÜ˜A˜q“MˆEÜ˜e¤XÔ.ØÜ˜(¤HÔ-Ø×%Ñ%¨¯©Ó8Ø—I‘Iœc !›fÕ%Ü˜H¤iÔ0Ø—?‘? hÓ.Ø—I‘Iœc !›fÕ%Ø—‘¤I¨k×.NÑ.NÈxÓ.XÓ$YÓYØ—	‘	œ#˜a›&Õ!ð	"ô ”#�b“'Ñ4Ô5Ð5ùò# Zs   ¾	F0ÁF0Á#F0(i  r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   ÚUnitÚspeedÚ
luminosityÚmagnetic_flux_densityÚamountr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   râ   rã   rä   rå   ræ   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  N)ÚSI(t  Ú__doc__Ú
dimensionsr   r   Ú
unitsystemr   Úutilr   Ú
quantitiesr   Ú!definitions.dimension_definitionsr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r†  r‡  rˆ  r‰  rŠ  Úprefixesr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   Údefinitionsr<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   râ   rã   rä   rå   ræ   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  Úsystemsrd  re  rf  ry  Ú__all__© rn  rl  ú<module>r—     sü  ðñ÷: 3Ý "Ý Ý  ÷÷ ÷ ÷ ÷ ÷ ÷ ð €à€Ø€
Ø(Ð Ø	€÷÷ ÷ ÷ ÷ ÷ ÷ ÷>B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷ B÷H÷ ð ô
06òls‚rn  