Source code for pyvo.io.vosi.availability
# Licensed under a 3-clause BSD style license - see LICENSE.rst
from astropy.utils.collections import HomogeneousList
from ...utils.xml.elements import xmlelement, Element
from .exceptions import W32, W33, W34, W35
__all__ = ["Availability"]
######################################################################
# FACTORY FUNCTIONS
def _convert_boolean(value, default=None):
    return {
        'false': False,
        '0': False,
        'true': True,
        '1': True
    }.get(value, default)
######################################################################
# ELEMENT CLASSES
[docs]
class Availability(Element):
    def __init__(self, config=None, pos=None, _name='availability', **kwargs):
        super().__init__(config, pos, _name, **kwargs)
        self._available = None
        self._upsince = None
        self._downat = None
        self._backat = None
        self._notes = HomogeneousList(str)
    @xmlelement(plain=True, multiple_exc=W32)
    def available(self):
        return self._available
    @available.setter
    def available(self, available):
        self._available = _convert_boolean(available)
    @xmlelement(name='upSince', plain=True, multiple_exc=W33)
    def upsince(self):
        return self._upsince
    @upsince.setter
    def upsince(self, upsince):
        self._upsince = upsince
    @xmlelement(name='downAt', plain=True, multiple_exc=W34)
    def downat(self):
        return self._downat
    @downat.setter
    def downat(self, downat):
        self._downat = downat
    @xmlelement(name='backAt', plain=True, multiple_exc=W35)
    def backat(self):
        return self._backat
    @backat.setter
    def backat(self, backat):
        self._backat = backat
    @xmlelement(name='note', plain=True)
    def notes(self):
        return self._notes