
    h                        S SK Jr  S SKJr  SSSSSSS	S
SSS.
rSrSrSrSrSr	Sr
SrSrSr\R                  \R                  \R                   \R"                  \R$                  \R&                  \R(                  \R*                  \R,                  \R.                  1
r/ SQr " S S5      r " S S5      r/ SQrS\S\\   4S jrS \S!\S\ 4S" jr!S\S\4S# jr"S$S%S&S'S(.r#S\S\4S) jr$g*)+    )Optional)InsertUnitsMbP?      ?      $@      Y@     @@    .A[Vp?!(?
@Xz^C@Hxp\D?)
kmmdmcmmm   µmydftinmi                     
      )Nr   r   r   r	   r   r   r   NNr   g    _Bg    eAr
   r   g?g{Gz?g&.>g-f=gTLw<gu'ۧ<NNNNc                   R    \ rS rSrS
S\S\4S jjrSS\S\4S jjrS\S\4S jrSr	g	)DrawingUnitsM   baseunitc                     [        U5      U l        UR                  5       U l        [        U l        XR
                  U R                     -  U l        g N)floatr%   lowerr&   MSP_METRIC_UNITS_FACTORS_units_msp_factor)selfr%   r&   s      =/var/www/html/env/lib/python3.13/site-packages/ezdxf/units.py__init__DrawingUnits.__init__N   s9    $K	JJL	.++dii"88    returnc                 V    U R                   U R                  UR                  5          -  $ r(   )r-   r,   r*   r.   r&   s     r/   factorDrawingUnits.factorT   s"    $++djjl";;;r2   c                 $    U R                  U5      $ r(   )r6   r5   s     r/   __call__DrawingUnits.__call__W   s    {{4  r2   )r-   r,   r%   r&   N)r   r   )r   )
__name__
__module____qualname____firstlineno__r)   strr0   r6   r9   __static_attributes__ r2   r/   r#   r#   M   s;    9U 9 9<3 < <!S !U !r2   r#   c                   ^    \ rS rSr\" 5       SS4S\S\4S jjrS\S\4S jrS\S\4S	 jr	S
r
g)PaperSpaceUnits[   r   r   r&   scalec                 |    UR                  5       U l        X0l        Xl        [	        SU R                  5      U l        g )Nr   )r*   r&   rE   _mspr#   _psp)r.   mspr&   rE   s       r/   r0   PaperSpaceUnits.__init__\   s+    JJL	
	 DII.	r2   valuec                     XR                  UR                  5       5      -  nX0R                  U R                  5      U R                  -  -  $ r(   )rG   r*   r&   rE   )r.   rK   r&   drawing_unitss       r/   from_mspPaperSpaceUnits.from_mspb   s8    		$**, 77		$)) 4tzz ABBr2   c                     XR                   -  U R                  R                  U5      -  nX0R                  R                  U R                  5      -  nU$ r(   )rE   rH   r6   rG   r&   )r.   rK   r&   paper_space_unitsmodel_space_unitss        r/   to_mspPaperSpaceUnits.to_mspf   sE    !JJ.1A1A$1GG-		0@0@0KK  r2   )rG   rH   rE   r&   N)r;   r<   r=   r>   r#   r?   r)   r0   rN   rS   r@   rA   r2   r/   rC   rC   [   sG    '>tA / /E /Ce C3 C!E ! !r2   rC   )Nr   r   r   r   r   r   r   u   µinmilr      Ånmr   r   damhmgmaulypcNNNNenumr3   c                 &    [         [        U 5         $ r(   )
_unit_specintr^   s    r/   decoderc      s    c$i  r2   source_unitstarget_unitsc                      [         U    n[         U   nUb  Uc  [        S5      eX2-  $ ! [         a    [        S5      ef = f)zReturns the conversion factor to represent `source_units` in
`target_units`.

E.g. millimeter in centimeter :code:`conversion_factor(MM, CM)` returns 0.1,
because 1 mm = 0.1 cm

zUnsupported conversion.zInvalid unit enum.)METER_FACTOR	TypeError
IndexError
ValueError)rd   re   source_factortarget_factors       r/   conversion_factorrm      sV    /$\2$\2 M$9566,, /-../s   &) ?c                 N     [        U 5      R                  $ ! [         a     gf = f)z"Returns the name of the unit enum.unitless)r   namerj   rb   s    r/   	unit_namerq      s*    4 %%% s    
$$zDecimal DegreeszDegrees/Minutes/SecondsGradRadians)r   r   r   r   c                 6    [         R                  U SU  S35      $ )z(Returns the name of the angle unit enum.zunknown unit <>)ANGLE_UNITSgetrb   s    r/   angle_unit_namerx      s    ??4>$q!9::r2   N)%typingr   ezdxf.enumsr   r+   INFTMIMMCMMKMYDDMInchesFeetMilesMicroinchesMilsYardsUSSurveyFeetUSSurveyInchUSSurveyYardUSSurveyMileIMPERIAL_UNITSrg   r#   rC   r`   ra   r?   rc   r)   rm   rq   rv   rx   rA   r2   r/   <module>r      sY    # 	






   :! !! !p
:! !# !//-8/
/*C C   	;# ;# ;r2   