# Path: aerofiles/xcsoar/constants.py
# class ObservationZoneType:
#     BGA_START = 'BGAStartSector'
#     BGA_FIXED = 'BGAFixedCourse'
#     BGA_ENHANCED = 'BGAEnhancedOption'
#     CUSTOM_KEYHOLE = 'CustomKeyhole'
#     CYLINDER = 'Cylinder'
#     FAI_SECTOR = 'FAISector'
#     KEYHOLE = 'Keyhole'
#     LINE = 'Line'
#     MAT_CYLINDER = 'MatCylinder'
#     SECTOR = 'Sector'
#     SYMMETRIC_QUADRANT = 'SymmetricQuadrant'


import datetime
from contextlib import contextmanager
from .constants import ObservationZoneType
        :param inner_radius: inner radius of the observation zone
            (only used with type
            :const:`~aerofiles.xcsoar.constants.ObservationZoneType.CUSTOM_KEYHOLE`)
        :param angle: angle of the observation zone
            (only used with type
            :const:`~aerofiles.xcsoar.constants.ObservationZoneType.CUSTOM_KEYHOLE`)
        :param start_radial: start radial of the observation zone
            (only used with type
            :const:`~aerofiles.xcsoar.constants.ObservationZoneType.SECTOR`)
        :param end_radial: end radial of the observation zone
            (only used with type
            :const:`~aerofiles.xcsoar.constants.ObservationZoneType.SECTOR`)
        """

        assert 'type' in kw

        if kw['type'] == ObservationZoneType.LINE:
            assert 'length' in kw

        elif kw['type'] == ObservationZoneType.CYLINDER:
            assert 'radius' in kw

        elif kw['type'] == ObservationZoneType.SECTOR:
            assert 'radius' in kw
            assert 'start_radial' in kw
            assert 'end_radial' in kw

        elif kw['type'] == ObservationZoneType.SYMMETRIC_QUADRANT:
            assert 'radius' in kw


# Path: aerofiles/xcsoar/constants.py
# class ObservationZoneType:
#     BGA_START = 'BGAStartSector'
#     BGA_FIXED = 'BGAFixedCourse'
#     BGA_ENHANCED = 'BGAEnhancedOption'
#     CUSTOM_KEYHOLE = 'CustomKeyhole'
#     CYLINDER = 'Cylinder'
#     FAI_SECTOR = 'FAISector'
#     KEYHOLE = 'Keyhole'
#     LINE = 'Line'
#     MAT_CYLINDER = 'MatCylinder'
#     SECTOR = 'Sector'
#     SYMMETRIC_QUADRANT = 'SymmetricQuadrant'


# Path: aerofiles/xcsoar/writer.py
import datetime
from contextlib import contextmanager
from .constants import ObservationZoneType

        :param inner_radius: inner radius of the observation zone
            (only used with type
            :const:`~aerofiles.xcsoar.constants.ObservationZoneType.CUSTOM_KEYHOLE`)
        :param angle: angle of the observation zone
            (only used with type
            :const:`~aerofiles.xcsoar.constants.ObservationZoneType.CUSTOM_KEYHOLE`)
        :param start_radial: start radial of the observation zone
            (only used with type
            :const:`~aerofiles.xcsoar.constants.ObservationZoneType.SECTOR`)
        :param end_radial: end radial of the observation zone
            (only used with type
            :const:`~aerofiles.xcsoar.constants.ObservationZoneType.SECTOR`)
        """

        assert 'type' in kw

        if kw['type'] == ObservationZoneType.LINE:
            assert 'length' in kw

        elif kw['type'] == ObservationZoneType.CYLINDER:
            assert 'radius' in kw

        elif kw['type'] == ObservationZoneType.SECTOR:
            assert 'radius' in kw
            assert 'start_radial' in kw
            assert 'end_radial' in kw

        elif kw['type'] == ObservationZoneType.SYMMETRIC_QUADRANT:
            assert 'radius' in kw


        elif kw['type'] == ObservationZoneType.CUSTOM_KEYHOLE: