1#!/usr/bin/env python3 2 3# Kosmorrolib - The Library To Compute Your Ephemerides 4# Copyright (C) 2021 Jérôme Deuchnord <jerome@deuchnord.fr> 5# 6# This program is free software: you can redistribute it and/or modify 7# it under the terms of the GNU Affero General Public License as 8# published by the Free Software Foundation, either version 3 of the 9# License, or (at your option) any later version. 10# 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU Affero General Public License for more details. 15# 16# You should have received a copy of the GNU Affero General Public License 17# along with this program. If not, see <https://www.gnu.org/licenses/>. 18 19from enum import Enum 20 21 22class MoonPhaseType(Enum): 23 """An enumeration of moon phases.""" 24 25 NEW_MOON = 0 26 WAXING_CRESCENT = 1 27 FIRST_QUARTER = 2 28 WAXING_GIBBOUS = 3 29 FULL_MOON = 4 30 WANING_GIBBOUS = 5 31 LAST_QUARTER = 6 32 WANING_CRESCENT = 7 33 34 35class SeasonType(Enum): 36 MARCH_EQUINOX = 0 37 JUNE_SOLSTICE = 1 38 SEPTEMBER_EQUINOX = 2 39 DECEMBER_SOLSTICE = 3 40 41 42class EventType(Enum): 43 """An enumeration for the supported event types.""" 44 45 OPPOSITION = 1 46 CONJUNCTION = 2 47 OCCULTATION = 3 48 MAXIMAL_ELONGATION = 4 49 PERIGEE = 5 50 APOGEE = 6 51 SEASON_CHANGE = 7 52 LUNAR_ECLIPSE = 8 53 54 55class LunarEclipseType(Enum): 56 """An enumeration of lunar eclipse types""" 57 58 PENUMBRAL = 0 59 PARTIAL = 1 60 TOTAL = 2 61 62 63class ObjectType(Enum): 64 """An enumeration of object types""" 65 66 STAR = 0 67 PLANET = 1 68 DWARF_PLANET = 11 69 SATELLITE = 2 70 71 72class ObjectIdentifier(Enum): 73 """An enumeration of identifiers for objects""" 74 75 SUN = 0 76 EARTH = 1 77 MOON = 11 78 MERCURY = 2 79 VENUS = 3 80 MARS = 4 81 JUPITER = 5 82 SATURN = 6 83 URANUS = 7 84 NEPTUNE = 8 85 PLUTO = 9 86