class EarthLocation(HeaderSchema): ''' Header cards for the observatory location, optional as it might be a sattelite ''' GEOLON = HeaderCard(required=False, type_=float) GEOLAT = HeaderCard(required=False, type_=float) ALTITUDE = HeaderCard(required=False, type_=float)
def test_invalid_arguments(): from fits_schema.header import HeaderCard with pytest.raises(ValueError): HeaderCard(allowed_values=[(1, 2, 3)]) with pytest.raises(TypeError): # allowed values does not match allowed type HeaderCard(type_=str, allowed_values=1)
class __header__(HDUClass): HDUCLAS1 = HeaderCard(allowed_values='RESPONSE') HDUCLAS2 = HeaderCard(allowed_values='EDISP') HDUCLAS3 = HeaderCard(allowed_values={'FULL-ENCLOSURE', 'POINT-LIKE'}) HDUCLAS4 = HeaderCard(allowed_values='EDISP_2D') RAD_MAX = HeaderCard(type_=float, required=False) OBS_ID = HeaderCard(type_=int, required=False) LO_THRES = HeaderCard(type_=float, required=False) HI_THRES = HeaderCard(type_=float, required=False)
class TimeDefinition(HeaderSchema): ''' Header keywords for the definition of time columns. All keywords are requred here. Add this to the headerschema when a table contains a time column ''' MJDREFI = HeaderCard(required=True, type_=int) MJDREFF = HeaderCard(required=True, type_=float) TIMEUNIT = HeaderCard(required=True, type_=str, allowed_values=['s']) TIMESYS = HeaderCard(required=True, type_=str, allowed_values=['UT1', 'UTC', 'TAI', 'TT']) TIMEREF = HeaderCard(required=True, type_=str, allowed_values=[ 'LOCAL', 'SOLARSYSTEM', 'HELIOCENTRIC', 'GEOCENTRIC', ])
class CoordinateSystem(HeaderSchema): EQUINOX = HeaderCard(type_=float, allowed_values=2000.0, required=False) RADECSYS = HeaderCard(type_=str, allowed_values={'ICRS', 'FK5'})
class Header(HeaderSchema): TEST = HeaderCard(type_=[str, int])
class Header(HeaderSchema): TEST = HeaderCard(empty=False)
class __header__(HDUClass): HDUCLAS1 = HeaderCard(allowed_values='RESPONSE') HDUCLAS2 = HeaderCard(allowed_values='RAD_MAX') HDUCLAS3 = HeaderCard(allowed_values='POINT-LIKE') HDUCLAS4 = HeaderCard(allowed_values='RAD_MAX_2D')
class __header__(HDUClass): HDUCLAS1 = HeaderCard(allowed_values='RESPONSE') HDUCLAS2 = HeaderCard(allowed_values='BKG') HDUCLAS3 = HeaderCard(allowed_values='FULL-ENCLOSURE') HDUCLAS4 = HeaderCard(allowed_values='BKG_3D') FOVALIGN = HeaderCard(allowed_values={'ALTAZ', 'RADEC'})
class HDUClass(HeaderSchema): '''Minimum HDU* headers for this standard''' HDUCLASS = HeaderCard(allowed_values='GADF') HDUDOC = HeaderCard(allowed_values=URL, case_insensitive=False) HDUVERS = HeaderCard(allowed_values={'v0.2', '0.2'})
class Header(HeaderSchema): TEST = HeaderCard(allowed_values={'foo'})
class Header(HeaderSchema): TEST = HeaderCard()
class LengthHeader(HeaderSchema): MORE_THAN_8 = HeaderCard()
class Header(BaseHeader): BAR = HeaderCard(type_=int)
class BaseHeader(HeaderSchema): FOO = HeaderCard() BAR = HeaderCard(type_=str)
class Object(HeaderSchema): '''Name and coordinates of observerd object, if any''' OBJECT = HeaderCard(required=False, type_=str) RA_OBJ = HeaderCard(required=False, type_=float) DEC_OBJ = HeaderCard(required=False, type_=float)
class Header(HeaderSchema): TEST = HeaderCard(allowed_values={'foo'}, case_insensitive=False)
class __header__(HeaderSchema): TEST = HeaderCard(type_=str)
class LowerHeader(HeaderSchema): lowercas = HeaderCard()
class DateHeader(HeaderSchema): DATE_OBS = HeaderCard(keyword='DATE-OBS')
class Header(HeaderSchema): TEST = HeaderCard(type_=str)
class __header__(HDUClass): HDUCLAS1 = HeaderCard(allowed_values='RESPONSE') HDUCLAS2 = HeaderCard(allowed_values='PSF') HDUCLAS3 = HeaderCard(allowed_values='FULL-ENCLOSURE') HDUCLAS4 = HeaderCard(allowed_values='PSF_TABLE')
class Header(HeaderSchema): TEST = HeaderCard(empty=True)