+
    ,i                     V    R t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	  ! R R4      t
R# )zEpoch module.N)_api)date2numc                     a  ] tR t^t o RRR/RRR//tRR ltR tR tR tR	 t	R
 t
]P                  ! ]
]P                  4      t]P                  ! ]
]P                   4      t]P                  ! ]
]P$                  4      t]P                  ! ]
]P(                  4      t]P                  ! ]
]P,                  4      t]P                  ! ]
]P0                  4      tR tR tR tR t]R 4       tRt V t!R# )EpochETUTCg oP@Nc           
        Vf   Vf]   Ve   VeU   Ve	   VfM   VfI   Vf   Vf	   Ve=   Ve9   Ve   Vf1   Ve	   Vf)   Vf%   Ve<   \        V\        P                  4      '       g   \        RV: RV: RV: RV: 24      h\        P
                  ! V P                  VR7       Wn        Ve   \        V4      pVeN   \        V4      R,           p\        P                  ! V4      V n        W0P                  ,
          R,          V n        R# \        V4      V n        \        V4      V n        \        P                  ! V P                  R	,          4      pV ;P                  V,          un        V ;P                  VR,          ,          un        R# )
a*  
Create a new Epoch object.

Build an epoch 1 of 2 ways:

Using seconds past a Julian date:
#   Epoch('ET', sec=1e8, jd=2451545)

or using a matplotlib day number
#   Epoch('ET', daynum=730119.5)

= ERROR CONDITIONS
- If the input units are not in the allowed list, an error is thrown.

= INPUT VARIABLES
- frame     The frame of the epoch.  Must be 'ET' or 'UTC'
- sec        The number of seconds past the input JD.
- jd         The Julian date of the epoch.
- daynum    The matplotlib day number of the epoch.
- dt         A python datetime instance.
NzlInvalid inputs.  Must enter sec and jd together, daynum by itself, or dt (must be a python datetime).
Sec = z
JD  = z
dnum= z
dt  = )frameg   QD:A     @Q )
isinstanceDTdatetime
ValueErrorr   check_in_listallowed_framer   floatmathfloor_jd_seconds)selfr	   secjddaynumdt	deltaDayss   &&&&&& D/usr/lib/python3/dist-packages/matplotlib/testing/jpl_units/Epoch.py__init__Epoch.__init__   s0   , [R^RZ#/R^BJ+#S_.*R*E*E "2vr34 4 	4<<u5>b\Fv*Bzz"~DH((]g5DM "#JDMRyDH 

4==5#89IHH	!HMMY00M    c                    V P                   V8X  d   V # V P                  V P                   ,          V,          p\        WP                  V,           V P                  4      # N)r   r   r   r   r   )r   r	   offsets   && r   convertEpoch.convertT   sD    ;;%Kdkk*51UMMF2DHH==r!   c                    V P                   # r#   )r   r   s   &r   r	   Epoch.frame\   s    {{r!   c                    T pWP                   8w  d   V P                  V4      pVP                  VP                  R ,          ,           # )r
   r   r%   r   r   )r   r	   ts   && r   
julianDateEpoch.julianDate_   s7    KKU#AuuqzzG+++r!   c                    T pWP                   8w  d   V P                  V4      pVP                  V,
          pVP                  VR ,          ,           # )r   r+   )r   r	   r   r,   deltas   &&&  r   secondsPastEpoch.secondsPastf   s?    KKU#A
zzEEM))r!   c                   T pV P                   VP                   8w  d   V P                  VP                   4      pVP                  VP                  8w  d   V! VP                  VP                  4      # V! VP                  VP                  4      # )z4Compare Epochs *self* and *rhs* using operator *op*.r+   )r   oprhsr,   s   &&& r   _cmp
Epoch._cmpn   sc    ;;#**$SZZ(A55CGGaeeSWW%%!**cll++r!   c                    T pV P                   VP                  4       8w  d   V P                  VP                   4      pVP                  VP	                  4       ,           p\        VP                   W2P                  4      # )z
Add a duration to an Epoch.

= INPUT VARIABLES
- rhs     The Epoch to subtract.

= RETURN VALUE
- Returns the difference of ourselves and the input Epoch.
)r   r	   r%   r   secondsr   r   )r   r5   r,   r   s   &&  r   __add__Epoch.__add__~   sV     ;;#))+%SZZ(Ajj3;;=(QXXsEE**r!   c                   ^ RI Hu Hp \        WP                  4      '       d
   W) ,           # T pV P
                  VP
                  8w  d   V P                  VP
                  4      pVP                  VP                  ,
          pVP                  VP                  ,
          pVP	                  VP
                  VR,          V,           4      # )a3  
Subtract two Epoch's or a Duration from an Epoch.

Valid:
Duration = Epoch - Epoch
Epoch = Epoch - Duration

= INPUT VARIABLES
- rhs     The Epoch to subtract.

= RETURN VALUE
- Returns either the duration between to Epoch's or the a new
  Epoch that is the result of subtracting a duration from an epoch.
Nr   )	matplotlib.testing.jpl_unitstesting	jpl_unitsr   Durationr   r%   r   r   )r   r5   Ur,   daysr   s   &&    r   __sub__Epoch.__sub__   s      	10 c::&&$;;;#**$SZZ(Auuswwjj3<<'zz#**d5j3&677r!   c                X    V P                  V P                  4      R RV P                   2# )Print the Epoch.z22.15e )r-   r   r(   s   &r   __str__Epoch.__str__   s'    //$++.v6a}EEr!   c                    \        V 4      # )rF   )strr(   s   &r   __repr__Epoch.__repr__   s    4yr!   c                t    . p^ p WV,          ,           pWQ8  d    V# VP                  V4       V^,          pK5  )at  
Generate a range of Epoch objects.

Similar to the Python range() method.  Returns the range [
start, stop) at the requested step.  Each element will be a
Epoch object.

= INPUT VARIABLES
- start     The starting value of the range.
- stop      The stop value of the range.
- step      Step to use.

= RETURN VALUE
- Returns a list containing the requested Epoch values.
)append)startstopstepelemsids   &&&   r   rangeEpoch.range   sB    " D Ay
  LLOFAr!   )r   r   r   g oP)NNNN)"__name__
__module____qualname____firstlineno__r   r   r%   r	   r-   r1   r6   	functoolspartialmethodoperatoreq__eq__ne__ne__lt__lt__le__le__gt__gt__ge__ge__r:   rC   rH   rL   staticmethodrV   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s      	8 	(	
G:1x>,*, $$T8;;7F$$T8;;7F$$T8;;7F$$T8;;7F$$T8;;7F$$T8;;7F+$8>F  r!   r   )__doc__r\   r^   r   r   r   
matplotlibr   matplotlib.datesr   r    r!   r   <module>rs      s&          %G Gr!   