[PyMeeus] Add stubs (#14649)

This commit is contained in:
Semyon Moroz
2025-08-27 10:30:12 +00:00
committed by GitHub
parent 49facf2de3
commit dd31a8a879
21 changed files with 1024 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
version = "0.5.*"
upstream_repository = "https://github.com/architest/pymeeus"
+95
View File
@@ -0,0 +1,95 @@
from typing import overload
from typing_extensions import Self
class Angle:
@overload
def __init__(self, *, ra: bool = False) -> None: ...
@overload
def __init__(self, a: Angle, /, *, ra: bool = False) -> None: ...
@overload
def __init__(self, a: float, /, *, ra: bool = False, radians: bool = False) -> None: ...
@overload
def __init__(self, a: list[float] | tuple[float, ...], /, *, ra: bool = False, radians: bool = False) -> None: ...
@overload
def __init__(self, a1: float, a2: float, /, *, ra: bool = False) -> None: ...
@overload
def __init__(self, a1: float, a2: float, a3: float, /, *, ra: bool = False) -> None: ...
@overload
def __init__(self, a1: float, a2: float, a3: float, a4: float, /, *, ra: bool = False) -> None: ...
@staticmethod
def reduce_deg(deg: float | Angle) -> float: ...
@staticmethod
def reduce_dms(degrees: float, minutes: float, seconds: float = 0.0) -> tuple[int, int, float, float]: ...
@staticmethod
def deg2dms(deg: float | Angle) -> tuple[int, int, float, float]: ...
@staticmethod
def dms2deg(degrees: float, minutes: float, seconds: float = 0.0) -> float: ...
def get_tolerance(self) -> float: ...
def set_tolerance(self, tol: float) -> None: ...
def __call__(self) -> float: ...
@overload
def set(self, *, ra: bool = False) -> None: ...
@overload
def set(self, a: Angle, /, *, ra: bool = False) -> None: ...
@overload
def set(self, a: float, /, *, ra: bool = False, radians: bool = False) -> None: ...
@overload
def set(self, a: list[float] | tuple[float, ...], /, *, ra: bool = False, radians: bool = False) -> None: ...
@overload
def set(self, a1: float, a2: float, /, *, ra: bool = False) -> None: ...
@overload
def set(self, a1: float, a2: float, a3: float, /, *, ra: bool = False) -> None: ...
@overload
def set(self, a1: float, a2: float, a3: float, a4: float, /, *, ra: bool = False) -> None: ...
def set_radians(self, rads: float) -> None: ...
@overload
def set_ra(self) -> None: ...
@overload
def set_ra(self, a: float | Angle | list[float] | tuple[float, ...], /) -> None: ...
@overload
def set_ra(self, a1: float, a2: float, /) -> None: ...
@overload
def set_ra(self, a1: float, a2: float, a3: float, /) -> None: ...
@overload
def set_ra(self, a1: float, a2: float, a3: float, a4: float, /) -> None: ...
def dms_str(self, fancy: bool | None = True, n_dec: int = -1) -> str: ...
def get_ra(self) -> float: ...
def ra_str(self, fancy: bool | None = True, n_dec: int = -1) -> str: ...
def rad(self) -> float: ...
def dms_tuple(self) -> tuple[int, int, float, float]: ...
def ra_tuple(self) -> tuple[int, int, float, float]: ...
def to_positive(self) -> Self: ...
def __eq__(self, b: float | Angle) -> bool: ... # type: ignore[override]
def __ne__(self, b: float | Angle) -> bool: ... # type: ignore[override]
def __lt__(self, b: float | Angle) -> bool: ...
def __ge__(self, b: float | Angle) -> bool: ...
def __gt__(self, b: float | Angle) -> bool: ...
def __le__(self, b: float | Angle) -> bool: ...
def __neg__(self) -> Angle: ...
def __abs__(self) -> Angle: ...
def __mod__(self, b: float | Angle) -> Angle: ...
def __add__(self, b: float | Angle) -> Angle: ...
def __sub__(self, b: float | Angle) -> Angle: ...
def __mul__(self, b: float | Angle) -> Angle: ...
def __div__(self, b: float | Angle) -> Angle: ...
def __truediv__(self, b: float | Angle) -> Angle: ...
def __pow__(self, b: float | Angle) -> Angle: ...
def __imod__(self, b: float | Angle) -> Self: ...
def __iadd__(self, b: float | Angle) -> Self: ...
def __isub__(self, b: float | Angle) -> Self: ...
def __imul__(self, b: float | Angle) -> Self: ...
def __idiv__(self, b: float | Angle) -> Angle: ...
def __itruediv__(self, b: float | Angle) -> Self: ...
def __ipow__(self, b: float | Angle) -> Self: ...
def __rmod__(self, b: float | Angle) -> Angle: ...
def __radd__(self, b: float | Angle) -> Angle: ...
def __rsub__(self, b: float | Angle) -> Angle: ...
def __rmul__(self, b: float | Angle) -> Angle: ...
def __rdiv__(self, b: float | Angle) -> Angle: ...
def __rtruediv__(self, b: float | Angle) -> Angle: ...
def __rpow__(self, b: float | Angle) -> Angle: ...
def __float__(self) -> float: ...
def __int__(self) -> int: ...
def __round__(self, n: float = 0) -> Angle: ...
def main() -> None: ...
+192
View File
@@ -0,0 +1,192 @@
import datetime
from typing import Final, overload
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
NUTATION_ARG_TABLE: Final[list[list[int]]]
NUTATION_SINE_COEF_TABLE: Final[list[list[float]]]
NUTATION_COSINE_COEF_TABLE: Final[list[list[float]]]
@overload
def mean_obliquity(
a: Epoch | list[float] | tuple[float, ...] | datetime.date,
/,
*,
leap_seconds: float = 0,
local: bool = False,
utc: bool = False,
) -> Angle: ...
@overload
def mean_obliquity(
year: int, month: int, day: int, /, *, leap_seconds: float = 0, local: bool = False, utc: bool = False
) -> Angle: ...
@overload
def true_obliquity(
a: Epoch | list[float] | tuple[float, ...] | datetime.date,
/,
*,
leap_seconds: float = 0,
local: bool = False,
utc: bool = False,
) -> Angle: ...
@overload
def true_obliquity(
year: int, month: int, day: int, /, *, leap_seconds: float = 0, local: bool = False, utc: bool = False
) -> Angle: ...
@overload
def nutation_longitude(
a: Epoch | list[float] | tuple[float, ...] | datetime.date,
/,
*,
leap_seconds: float = 0,
local: bool = False,
utc: bool = False,
) -> Angle: ...
@overload
def nutation_longitude(
year: int, month: int, day: int, /, *, leap_seconds: float = 0, local: bool = False, utc: bool = False
) -> Angle: ...
@overload
def nutation_obliquity(
a: Epoch | list[float] | tuple[float, ...] | datetime.date,
/,
*,
leap_seconds: float = 0,
local: bool = False,
utc: bool = False,
) -> Angle: ...
@overload
def nutation_obliquity(
year: int, month: int, day: int, /, *, leap_seconds: float = 0, local: bool = False, utc: bool = False
) -> Angle: ...
def precession_equatorial(
start_epoch: Epoch,
final_epoch: Epoch,
start_ra: Angle,
start_dec: Angle,
p_motion_ra: float | Angle = 0.0,
p_motion_dec: float | Angle = 0.0,
) -> tuple[Angle, Angle]: ...
def precession_ecliptical(
start_epoch: Epoch,
final_epoch: Epoch,
start_lon: Angle,
start_lat: Angle,
p_motion_lon: float | Angle = 0.0,
p_motion_lat: float | Angle = 0.0,
) -> tuple[Angle, Angle]: ...
def p_motion_equa2eclip(
p_motion_ra: Angle, p_motion_dec: Angle, ra: Angle, dec: Angle, lat: Angle, epsilon: Angle
) -> tuple[float, float]: ...
def precession_newcomb(
start_epoch: Epoch,
final_epoch: Epoch,
start_ra: Angle,
start_dec: Angle,
p_motion_ra: float | Angle = 0.0,
p_motion_dec: float | Angle = 0.0,
) -> tuple[Angle, Angle]: ...
def motion_in_space(
start_ra: Angle,
start_dec: Angle,
distance: float,
velocity: float,
p_motion_ra: float | Angle,
p_motion_dec: float | Angle,
time: float,
) -> tuple[Angle, Angle]: ...
def equatorial2ecliptical(right_ascension: Angle, declination: Angle, obliquity: Angle) -> tuple[Angle, Angle]: ...
def ecliptical2equatorial(longitude: Angle, latitude: Angle, obliquity: Angle) -> tuple[Angle, Angle]: ...
def equatorial2horizontal(hour_angle: Angle, declination: Angle, geo_latitude: Angle) -> tuple[Angle, Angle]: ...
def horizontal2equatorial(azimuth: Angle, elevation: Angle, geo_latitude: Angle) -> tuple[Angle, Angle]: ...
def equatorial2galactic(right_ascension: Angle, declination: Angle) -> tuple[Angle, Angle]: ...
def galactic2equatorial(longitude: Angle, latitude: Angle) -> tuple[Angle, Angle]: ...
def parallactic_angle(hour_angle: Angle, declination: Angle, geo_latitude: Angle) -> Angle | None: ...
def ecliptic_horizon(local_sidereal_time: Angle, geo_latitude: Angle, obliquity: Angle) -> tuple[Angle, Angle, Angle]: ...
def ecliptic_equator(longitude: Angle, latitude: Angle, obliquity: Angle) -> Angle: ...
def diurnal_path_horizon(declination: Angle, geo_latitude: Angle) -> Angle: ...
def times_rise_transit_set(
longitude: Angle,
latitude: Angle,
alpha1: Angle,
delta1: Angle,
alpha2: Angle,
delta2: Angle,
alpha3: Angle,
delta3: Angle,
h0: Angle,
delta_t: float,
theta0: Angle,
) -> tuple[float, float, float] | tuple[None, None, None]: ...
def refraction_apparent2true(apparent_elevation: Angle, pressure: float = 1010.0, temperature: float = 10.0) -> Angle: ...
def refraction_true2apparent(true_elevation: Angle, pressure: float = 1010.0, temperature: float = 10.0) -> Angle: ...
def angular_separation(alpha1: Angle, delta1: Angle, alpha2: Angle, delta2: Angle) -> Angle: ...
def minimum_angular_separation(
alpha1_1: Angle,
delta1_1: Angle,
alpha1_2: Angle,
delta1_2: Angle,
alpha1_3: Angle,
delta1_3: Angle,
alpha2_1: Angle,
delta2_1: Angle,
alpha2_2: Angle,
delta2_2: Angle,
alpha2_3: Angle,
delta2_3: Angle,
) -> tuple[float, Angle]: ...
def relative_position_angle(alpha1: Angle, delta1: Angle, alpha2: Angle, delta2: Angle) -> Angle: ...
def planetary_conjunction(
alpha1_list: list[Angle] | tuple[Angle, ...],
delta1_list: list[Angle] | tuple[Angle, ...],
alpha2_list: list[Angle] | tuple[Angle, ...],
delta2_list: list[Angle] | tuple[Angle, ...],
) -> tuple[float, Angle]: ...
def planet_star_conjunction(
alpha_list: list[Angle] | tuple[Angle, ...], delta_list: list[Angle] | tuple[Angle, ...], alpha_star: Angle, delta_star: Angle
) -> tuple[float, Angle]: ...
def planet_stars_in_line(
alpha_list: list[Angle] | tuple[Angle, ...],
delta_list: list[Angle] | tuple[Angle, ...],
alpha_star1: Angle,
delta_star1: Angle,
alpha_star2: Angle,
delta_star2: Angle,
) -> float: ...
def straight_line(
alpha1: Angle, delta1: Angle, alpha2: Angle, delta2: Angle, alpha3: Angle, delta3: Angle
) -> tuple[Angle, Angle]: ...
def circle_diameter(alpha1: Angle, delta1: Angle, alpha2: Angle, delta2: Angle, alpha3: Angle, delta3: Angle) -> Angle: ...
def vsop_pos(
epoch: Epoch, vsop_l: list[list[list[float]]], vsop_b: list[list[list[float]]], vsop_r: list[list[list[float]]]
) -> tuple[Angle, Angle, float]: ...
def geometric_vsop_pos(
epoch: Epoch,
vsop_l: list[list[list[float]]],
vsop_b: list[list[list[float]]],
vsop_r: list[list[list[float]]],
tofk5: bool | None = True,
) -> tuple[Angle, Angle, float]: ...
def apparent_vsop_pos(
epoch: Epoch,
vsop_l: list[list[list[float]]],
vsop_b: list[list[list[float]]],
vsop_r: list[list[list[float]]],
nutation: bool | None = True,
) -> tuple[Angle, Angle, float]: ...
def apparent_position(epoch: Epoch, alpha: Angle, delta: Angle, sun_lon: Angle) -> tuple[Angle, Angle]: ...
def orbital_equinox2equinox(epoch0: Epoch, epoch: Epoch, i0: Angle, arg0: Angle, lon0: Angle) -> tuple[Angle, Angle, Angle]: ...
def kepler_equation(eccentricity: float, mean_anomaly: Angle) -> tuple[Angle, Angle]: ...
def orbital_elements(
epoch: Epoch, parameters1: list[list[float]], parameters2: list[list[float]]
) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
def velocity(r: float, a: float) -> float: ...
def velocity_perihelion(e: float, a: float) -> float: ...
def velocity_aphelion(e: float, a: float) -> float: ...
def length_orbit(e: float, a: float) -> float: ...
def passage_nodes_elliptic(omega: Angle, e: float, a: float, t: Epoch, ascending: bool | None = True) -> tuple[Epoch, float]: ...
def passage_nodes_parabolic(omega: Angle, q: float, t: Epoch, ascending: bool | None = True) -> tuple[Epoch, float]: ...
def phase_angle(sun_dist: float, earth_dist: float, sun_earth_dist: float) -> Angle: ...
def illuminated_fraction(sun_dist: float, earth_dist: float, sun_earth_dist: float) -> float: ...
def main() -> None: ...
+43
View File
@@ -0,0 +1,43 @@
from collections.abc import Callable
from typing import overload
from pymeeus.Angle import Angle
class CurveFitting:
@overload
def __init__(self) -> None: ...
@overload
def __init__(self, a: CurveFitting, /) -> None: ...
@overload
def __init__(self, a: list[float | Angle] | tuple[float | Angle, ...], /) -> None: ...
@overload
def __init__(
self, a1: list[float | Angle] | tuple[float | Angle, ...], a2: list[float | Angle] | tuple[float | Angle, ...], /
) -> None: ...
@overload
def __init__(
self, a1: float | Angle, a2: float | Angle, a3: float | Angle, a4: float | Angle, /, *rest: float | Angle
) -> None: ...
@overload
def set(self) -> None: ...
@overload
def set(self, a: CurveFitting, /) -> None: ...
@overload
def set(self, a: list[float | Angle] | tuple[float | Angle, ...], /) -> None: ...
@overload
def set(
self, a1: list[float | Angle] | tuple[float | Angle, ...], a2: list[float | Angle] | tuple[float | Angle, ...], /
) -> None: ...
@overload
def set(
self, a1: float | Angle, a2: float | Angle, a3: float | Angle, a4: float | Angle, /, *rest: float | Angle
) -> None: ...
def __len__(self) -> int: ...
def correlation_coeff(self) -> float: ...
def linear_fitting(self) -> tuple[float, float]: ...
def quadratic_fitting(self) -> tuple[float, float, float]: ...
def general_fitting(
self, f0: Callable[..., float], f1: Callable[..., float] = ..., f2: Callable[..., float] = ...
) -> tuple[float, float, float]: ...
def main() -> None: ...
+64
View File
@@ -0,0 +1,64 @@
from typing import Final
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
VSOP87_L: Final[list[list[list[float]]]]
VSOP87_B: Final[list[list[list[float]]]]
VSOP87_R: Final[list[list[list[float]]]]
VSOP87_L_J2000: Final[list[list[list[float]]]]
VSOP87_B_J2000: Final[list[list[list[float]]]]
ORBITAL_ELEM: Final[list[list[float]]]
ORBITAL_ELEM_J2000: Final[list[list[float]]]
class Ellipsoid:
def __init__(self, a: float, f: float, omega: float) -> None: ...
def b(self) -> float: ...
def e(self) -> float: ...
IAU76: Final[Ellipsoid]
WGS84: Final[Ellipsoid]
class Earth:
def __init__(self, ellipsoid: Ellipsoid = ...) -> None: ...
def set(self, ellipsoid: Ellipsoid) -> None: ...
def rho(self, latitude: float | Angle) -> float: ...
def rho_sinphi(self, latitude: float | Angle, height: float) -> float: ...
def rho_cosphi(self, latitude: float | Angle, height: float) -> float: ...
def rp(self, latitude: float | Angle) -> float: ...
def linear_velocity(self, latitude: float | Angle) -> float: ...
def rm(self, latitude: float | Angle) -> float: ...
def distance(
self, lon1: float | Angle, lat1: float | Angle, lon2: float | Angle, lat2: float | Angle
) -> tuple[float, float]: ...
@staticmethod
def geometric_heliocentric_position(epoch: Epoch, tofk5: bool = True) -> tuple[Angle, Angle, float]: ...
@staticmethod
def apparent_heliocentric_position(epoch: Epoch, nutation: bool = True) -> tuple[Angle, Angle, float]: ...
@staticmethod
def geometric_heliocentric_position_j2000(epoch: Epoch, tofk5: bool = True) -> tuple[Angle, Angle, float]: ...
@staticmethod
def orbital_elements_mean_equinox(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def orbital_elements_j2000(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def perihelion_aphelion(epoch: Epoch, perihelion: bool | None = True) -> Epoch: ...
@staticmethod
def passage_nodes(epoch: Epoch, ascending: bool = True) -> tuple[Epoch, float]: ...
@staticmethod
def parallax_correction(
right_ascension: Angle, declination: Angle, latitude: Angle, distance: float, hour_angle: Angle, height: float = 0.0
) -> tuple[Angle, Angle]: ...
@staticmethod
def parallax_ecliptical(
longitude: Angle,
latitude: Angle,
semidiameter: Angle,
obs_lat: Angle,
obliquity: Angle,
sidereal_time: Angle,
distance: float,
height: float = 0.0,
) -> tuple[Angle, Angle, Angle]: ...
def main() -> None: ...
+129
View File
@@ -0,0 +1,129 @@
import datetime
from typing import Final, Literal, overload
from typing_extensions import Self
from pymeeus.Angle import Angle
DAY2SEC: Final = 86400.0
DAY2MIN: Final = 1440.0
DAY2HOURS: Final = 24.0
LEAP_TABLE: Final[dict[float, int]]
class Epoch:
@overload
def __init__(self) -> None: ...
@overload
def __init__(
self, year: int, month: int, day: int, /, *time: float, leap_seconds: float = 0, local: bool = False, utc: bool = False
) -> None: ...
@overload
def __init__(
self,
a: float | Epoch | list[float] | tuple[float, ...] | datetime.date,
/,
*,
leap_seconds: float = 0,
local: bool = False,
utc: bool = False,
) -> None: ...
def __hash__(self) -> int: ...
@overload
def set(self) -> None: ...
@overload
def set(
self, year: int, month: int, day: int, /, *time: float, leap_seconds: float = 0, local: bool = False, utc: bool = False
) -> None: ...
@overload
def set(
self,
a: float | Epoch | list[float] | tuple[float, ...] | datetime.date,
/,
*,
leap_seconds: float = 0,
local: bool = False,
utc: bool = False,
) -> None: ...
@overload
@overload
@staticmethod
def check_input_date(
a: Epoch | list[float] | tuple[float, ...] | datetime.date,
/,
*,
leap_seconds: float = 0,
local: bool = False,
utc: bool = False,
) -> Epoch: ...
@overload
@staticmethod
def check_input_date(
year: int, month: int, day: int, /, *, leap_seconds: float = 0, local: bool = False, utc: bool = False
) -> Epoch: ...
@staticmethod
def is_julian(year: int, month: int, day: int) -> bool: ...
def julian(self) -> bool: ...
@overload
@staticmethod
def get_month(month: float | str, as_string: Literal[True]) -> str: ...
@overload
@staticmethod
def get_month(month: float | str, as_string: Literal[False] | None = False) -> int: ...
@staticmethod
def is_leap(year: float) -> bool: ...
def leap(self) -> bool: ...
@staticmethod
def get_doy(yyyy: int, mm: int, dd: int) -> float: ...
def doy(self) -> float: ...
@staticmethod
def doy2date(year: int, doy: float) -> tuple[int, int, float]: ...
@staticmethod
def leap_seconds(year: int, month: int) -> int: ...
@staticmethod
def get_last_leap_second() -> tuple[int, int, float, int]: ...
@staticmethod
def utc2local() -> float: ...
@staticmethod
def easter(year: float) -> tuple[int, int]: ...
@staticmethod
def jewish_pesach(year: float) -> tuple[int, int]: ...
@staticmethod
def moslem2gregorian(year: float, month: float, day: float) -> tuple[int, int, int]: ...
@staticmethod
def gregorian2moslem(year: float, month: float, day: float) -> tuple[int, int, int]: ...
def get_date(self, *, utc: bool = False, leap_seconds: float = 0.0, local: bool = ...) -> tuple[int, int, float]: ...
def get_full_date(
self, *, utc: bool = False, leap_seconds: float = 0.0, local: bool = ...
) -> tuple[int, int, int, int, int, float]: ...
@staticmethod
def tt2ut(year: int, month: int) -> float: ...
@overload
def dow(self, as_string: Literal[True]) -> str: ...
@overload
def dow(self, as_string: Literal[False] | None = False) -> int: ...
def mean_sidereal_time(self) -> float: ...
def apparent_sidereal_time(self, true_obliquity: float | Angle, nutation_longitude: float | Angle) -> float: ...
def mjd(self) -> float: ...
def jde(self) -> float: ...
def year(self) -> float: ...
def rise_set(self, latitude: Angle, longitude: Angle, altitude: float = 0.0) -> tuple[Epoch, Epoch]: ...
def __call__(self) -> float: ...
def __add__(self, b: float) -> Epoch: ...
@overload
def __sub__(self, b: float) -> Epoch: ...
@overload
def __sub__(self, b: Epoch) -> float: ...
def __iadd__(self, b: float) -> Self: ...
def __isub__(self, b: float) -> Self: ... # type: ignore[misc] # __sub__ and __isub__ are incompatible
def __radd__(self, b: float) -> Epoch: ...
def __int__(self) -> int: ...
def __float__(self) -> float: ...
def __eq__(self, b: float | Epoch) -> bool: ... # type: ignore[override]
def __ne__(self, b: float | Epoch) -> bool: ... # type: ignore[override]
def __lt__(self, b: float | Epoch) -> bool: ...
def __ge__(self, b: float | Epoch) -> bool: ...
def __gt__(self, b: float | Epoch) -> bool: ...
def __le__(self, b: float | Epoch) -> bool: ...
JDE2000: Epoch
def main() -> None: ...
+42
View File
@@ -0,0 +1,42 @@
from typing import overload
from pymeeus.Angle import Angle
class Interpolation:
@overload
def __init__(self) -> None: ...
@overload
def __init__(self, a: Interpolation, /) -> None: ...
@overload
def __init__(self, a: list[float | Angle] | tuple[float | Angle, ...], /) -> None: ...
@overload
def __init__(
self, a1: list[float | Angle] | tuple[float | Angle, ...], a2: list[float | Angle] | tuple[float | Angle, ...], /
) -> None: ...
@overload
def __init__(
self, a1: float | Angle, a2: float | Angle, a3: float | Angle, a4: float | Angle, /, *rest: float | Angle
) -> None: ...
@overload
def set(self) -> None: ...
@overload
def set(self, a: Interpolation, /) -> None: ...
@overload
def set(self, a: list[float | Angle] | tuple[float | Angle, ...], /) -> None: ...
@overload
def set(
self, a1: list[float | Angle] | tuple[float | Angle, ...], a2: list[float | Angle] | tuple[float | Angle, ...], /
) -> None: ...
@overload
def set(
self, a1: float | Angle, a2: float | Angle, a3: float | Angle, a4: float | Angle, /, *rest: float | Angle
) -> None: ...
def __len__(self) -> int: ...
def get_tolerance(self) -> float: ...
def set_tolerance(self, tol: float) -> None: ...
def __call__(self, x: float | Angle) -> float | Angle: ...
def derivative(self, x: float | Angle) -> float: ...
def root(self, xl: float | Angle = 0, xh: float | Angle = 0, max_iter: int = 1000) -> float | Angle: ...
def minmax(self, xl: float | Angle = 0, xh: float | Angle = 0, max_iter: int = 1000) -> float | Angle: ...
def main() -> None: ...
+38
View File
@@ -0,0 +1,38 @@
from typing import Final
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
VSOP87_L: Final[list[list[list[float]]]]
VSOP87_B: Final[list[list[list[float]]]]
VSOP87_R: Final[list[list[list[float]]]]
ORBITAL_ELEM: Final[list[list[float]]]
ORBITAL_ELEM_J2000: Final[list[list[float]]]
class Jupiter:
@staticmethod
def geometric_heliocentric_position(epoch: Epoch, tofk5: bool | None = True) -> tuple[Angle, Angle, float]: ...
@staticmethod
def apparent_heliocentric_position(epoch: Epoch) -> tuple[Angle, Angle, float]: ...
@staticmethod
def orbital_elements_mean_equinox(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def orbital_elements_j2000(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def geocentric_position(epoch: Epoch) -> tuple[Angle, Angle, Angle]: ...
@staticmethod
def conjunction(epoch: Epoch) -> Epoch: ...
@staticmethod
def opposition(epoch: Epoch) -> Epoch: ...
@staticmethod
def station_longitude_1(epoch: Epoch) -> Epoch: ...
@staticmethod
def station_longitude_2(epoch: Epoch) -> Epoch: ...
@staticmethod
def perihelion_aphelion(epoch: Epoch, perihelion: bool | None = True) -> Epoch: ...
@staticmethod
def passage_nodes(epoch: Epoch, ascending: bool = True) -> tuple[Epoch, float]: ...
@staticmethod
def magnitude(sun_dist: float, earth_dist: float) -> float: ...
def main() -> None: ...
+78
View File
@@ -0,0 +1,78 @@
from typing import Literal, overload
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
class JupiterMoons:
@staticmethod
def jupiter_system_angles(epoch: Epoch) -> tuple[float, float]: ...
@staticmethod
def rectangular_positions_jovian_equatorial(
epoch: Epoch, tofk5: bool = True, solar: bool = False, do_correction: bool = True
) -> tuple[
tuple[float, float, float], tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]
]: ...
@overload
@staticmethod
def apparent_rectangular_coordinates(
epoch: Epoch,
X: float,
Y: float,
Z: float,
OMEGA: float,
psi: float,
i: float,
lambda_0: float,
beta_0: float,
D: float = 0,
isFictional: Literal[True] = ...,
) -> float: ...
@overload
@staticmethod
def apparent_rectangular_coordinates(
epoch: Epoch,
X: float,
Y: float,
Z: float,
OMEGA: float,
psi: float,
i: float,
lambda_0: float,
beta_0: float,
D: float = 0,
isFictional: Literal[False] | None = False,
) -> tuple[float, float, float]: ...
@staticmethod
def calculate_delta(
epoch: Epoch,
) -> tuple[float, float, Angle, Angle, float] | tuple[float, float, Literal[0], Literal[0], Literal[0]]: ...
@overload
@staticmethod
def correct_rectangular_positions(
R: float, i_sat: int, DELTA: float, X_coordinate: list[float] | tuple[float, float, float]
) -> tuple[float, float, float]: ...
@overload
@staticmethod
def correct_rectangular_positions(
R: float, i_sat: int, DELTA: float, X_coordinate: float, Y_coordinate: float = 0, Z_coordinate: float = 0
) -> tuple[float, float, float]: ...
@overload
@staticmethod
def check_phenomena(epoch: Epoch, check_all: Literal[True] = True, i_sat: int = 0) -> list[list[float]]: ...
@overload
@staticmethod
def check_phenomena(epoch: Epoch, check_all: Literal[False] | None, i_sat: int = 0) -> tuple[float, float]: ...
@staticmethod
def is_phenomena(epoch: Epoch) -> list[list[bool]]: ...
@staticmethod
def check_coordinates(X: float, Y: float) -> float: ...
@staticmethod
def check_occultation(
X: float = 0, Y: float = 0, Z: float = 0, epoch: Epoch | None = None, i_sat: int | None = None
) -> float: ...
@staticmethod
def check_eclipse(
X_0: float = 0, Y_0: float = 0, Z_0: float = 0, epoch: Epoch | None = None, i_sat: int | None = None
) -> float: ...
def main() -> None: ...
+38
View File
@@ -0,0 +1,38 @@
from typing import Final
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
VSOP87_L: Final[list[list[list[float]]]]
VSOP87_B: Final[list[list[list[float]]]]
VSOP87_R: Final[list[list[list[float]]]]
ORBITAL_ELEM: Final[list[list[float]]]
ORBITAL_ELEM_J2000: Final[list[list[float]]]
class Mars:
@staticmethod
def geometric_heliocentric_position(epoch: Epoch, tofk5: bool | None = True) -> tuple[Angle, Angle, float]: ...
@staticmethod
def apparent_heliocentric_position(epoch: Epoch) -> tuple[Angle, Angle, float]: ...
@staticmethod
def orbital_elements_mean_equinox(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def orbital_elements_j2000(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def geocentric_position(epoch: Epoch) -> tuple[Angle, Angle, Angle]: ...
@staticmethod
def conjunction(epoch: Epoch) -> Epoch: ...
@staticmethod
def opposition(epoch: Epoch) -> Epoch: ...
@staticmethod
def station_longitude_1(epoch: Epoch) -> Epoch: ...
@staticmethod
def station_longitude_2(epoch: Epoch) -> Epoch: ...
@staticmethod
def perihelion_aphelion(epoch: Epoch, perihelion: bool = True) -> Epoch: ...
@staticmethod
def passage_nodes(epoch: Epoch, ascending: bool = True) -> tuple[Epoch, float]: ...
@staticmethod
def magnitude(sun_dist: float, earth_dist: float, phase_angle: float | Angle) -> float: ...
def main() -> None: ...
+42
View File
@@ -0,0 +1,42 @@
from typing import Final
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
VSOP87_L: Final[list[list[list[float]]]]
VSOP87_B: Final[list[list[list[float]]]]
VSOP87_R: Final[list[list[list[float]]]]
ORBITAL_ELEM: Final[list[list[float]]]
ORBITAL_ELEM_J2000: Final[list[list[float]]]
class Mercury:
@staticmethod
def geometric_heliocentric_position(epoch: Epoch, tofk5: bool | None = True) -> tuple[Angle, Angle, float]: ...
@staticmethod
def apparent_heliocentric_position(epoch: Epoch) -> tuple[Angle, Angle, float]: ...
@staticmethod
def orbital_elements_mean_equinox(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def orbital_elements_j2000(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def geocentric_position(epoch: Epoch) -> tuple[Angle, Angle, Angle]: ...
@staticmethod
def inferior_conjunction(epoch: Epoch) -> Epoch: ...
@staticmethod
def superior_conjunction(epoch: Epoch) -> Epoch: ...
@staticmethod
def western_elongation(epoch: Epoch) -> tuple[Epoch, Angle]: ...
@staticmethod
def eastern_elongation(epoch: Epoch) -> tuple[Epoch, Angle]: ...
@staticmethod
def station_longitude_1(epoch: Epoch) -> Epoch: ...
@staticmethod
def station_longitude_2(epoch: Epoch) -> Epoch: ...
@staticmethod
def perihelion_aphelion(epoch: Epoch, perihelion: bool | None = True) -> Epoch: ...
@staticmethod
def passage_nodes(epoch: Epoch, ascending: bool = True) -> tuple[Epoch, float]: ...
@staticmethod
def magnitude(sun_dist: float, earth_dist: float, phase_angle: float | Angle) -> float: ...
def main() -> None: ...
+10
View File
@@ -0,0 +1,10 @@
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
class Minor:
def __init__(self, q: float, e: float, i: Angle, omega: Angle, w: Angle, t: Epoch) -> None: ...
def set(self, q: float, e: float, i: Angle, omega: Angle, w: Angle, t: Epoch) -> None: ...
def geocentric_position(self, epoch: Epoch) -> tuple[Angle, Angle, Angle]: ...
def heliocentric_ecliptical_position(self, epoch: Epoch) -> tuple[Angle, Angle]: ...
def main() -> None: ...
+39
View File
@@ -0,0 +1,39 @@
from typing import Final, Literal
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
PERIODIC_TERMS_LR_TABLE: Final[list[list[float]]]
PERIODIC_TERMS_B_TABLE: Final[list[list[float]]]
class Moon:
@staticmethod
def geocentric_ecliptical_pos(epoch: Epoch) -> tuple[Angle, Angle, float, Angle]: ...
@staticmethod
def apparent_ecliptical_pos(epoch: Epoch) -> tuple[Angle, Angle, float, Angle]: ...
@staticmethod
def apparent_equatorial_pos(epoch: Epoch) -> tuple[Angle, Angle, float, Angle]: ...
@staticmethod
def longitude_mean_ascending_node(epoch: Epoch) -> Angle: ...
@staticmethod
def longitude_true_ascending_node(epoch: Epoch) -> Angle: ...
@staticmethod
def longitude_mean_perigee(epoch: Epoch) -> Angle: ...
@staticmethod
def illuminated_fraction_disk(epoch: Epoch) -> float: ...
@staticmethod
def position_bright_limb(epoch: Epoch) -> Angle: ...
@staticmethod
def moon_phase(epoch: Epoch, target: Literal["new", "first", "full", "last"] = "new") -> Epoch: ...
@staticmethod
def moon_perigee_apogee(epoch: Epoch, target: Literal["perigee", "apogee"] = "perigee") -> tuple[Epoch, Angle]: ...
@staticmethod
def moon_passage_nodes(epoch: Epoch, target: Literal["ascending", "descending"] = "ascending") -> Epoch: ...
@staticmethod
def moon_maximum_declination(epoch: Epoch, target: Literal["northern", "southern"] = "northern") -> tuple[Epoch, Angle]: ...
@staticmethod
def moon_librations(epoch: Epoch) -> tuple[Angle, Angle, Angle, Angle, Angle, Angle]: ...
@staticmethod
def moon_position_angle_axis(epoch: Epoch) -> Angle: ...
def main() -> None: ...
+30
View File
@@ -0,0 +1,30 @@
from typing import Final
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
VSOP87_L: Final[list[list[list[float]]]]
VSOP87_B: Final[list[list[list[float]]]]
VSOP87_R: Final[list[list[list[float]]]]
ORBITAL_ELEM: Final[list[list[float]]]
ORBITAL_ELEM_J2000: Final[list[list[float]]]
class Neptune:
@staticmethod
def geometric_heliocentric_position(epoch: Epoch, tofk5: bool | None = True) -> tuple[Angle, Angle, float]: ...
@staticmethod
def apparent_heliocentric_position(epoch: Epoch) -> tuple[Angle, Angle, float]: ...
@staticmethod
def orbital_elements_mean_equinox(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def orbital_elements_j2000(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def geocentric_position(epoch: Epoch) -> tuple[Angle, Angle, Angle]: ...
@staticmethod
def conjunction(epoch: Epoch) -> Epoch: ...
@staticmethod
def opposition(epoch: Epoch) -> Epoch: ...
@staticmethod
def magnitude(sun_dist: float, earth_dist: float) -> float: ...
def main() -> None: ...
+17
View File
@@ -0,0 +1,17 @@
from typing import Final
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
PLUTO_ARGUMENT: Final[list[tuple[float, float, float]]]
PLUTO_LONGITUDE: Final[list[tuple[float, float]]]
PLUTO_LATITUDE: Final[list[tuple[float, float]]]
PLUTO_RADIUS_VECTOR: Final[list[tuple[float, float]]]
class Pluto:
@staticmethod
def geometric_heliocentric_position(epoch: Epoch) -> tuple[Angle, Angle, float]: ...
@staticmethod
def geocentric_position(epoch: Epoch) -> tuple[Angle, Angle]: ...
def main() -> None: ...
+44
View File
@@ -0,0 +1,44 @@
from typing import Final
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
VSOP87_L: Final[list[list[list[float]]]]
VSOP87_B: Final[list[list[list[float]]]]
VSOP87_R: Final[list[list[list[float]]]]
ORBITAL_ELEM: Final[list[list[float]]]
ORBITAL_ELEM_J2000: Final[list[list[float]]]
class Saturn:
@staticmethod
def geometric_heliocentric_position(epoch: Epoch, tofk5: bool = True) -> tuple[Angle, Angle, float]: ...
@staticmethod
def apparent_heliocentric_position(epoch: Epoch) -> tuple[Angle, Angle, float]: ...
@staticmethod
def orbital_elements_mean_equinox(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def orbital_elements_j2000(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def geocentric_position(epoch: Epoch) -> tuple[Angle, Angle, Angle]: ...
@staticmethod
def conjunction(epoch: Epoch) -> Epoch: ...
@staticmethod
def opposition(epoch: Epoch) -> Epoch: ...
@staticmethod
def station_longitude_1(epoch: Epoch) -> Epoch: ...
@staticmethod
def station_longitude_2(epoch: Epoch) -> Epoch: ...
@staticmethod
def perihelion_aphelion(epoch: Epoch, perihelion: bool | None = True) -> Epoch: ...
@staticmethod
def passage_nodes(epoch: Epoch, ascending: bool = True) -> tuple[Epoch, float]: ...
@staticmethod
def magnitude(sun_dist: float, earth_dist: float, delta_U: float | Angle, B: float | Angle) -> float: ...
@staticmethod
def ring_inclination(epoch: Epoch) -> Angle: ...
@staticmethod
def ring_logitude_ascending_node(epoch: Epoch) -> Angle: ...
@staticmethod
def ring_parameters(epoch: Epoch) -> tuple[Angle, Angle, Angle, Angle, float, float]: ...
def main() -> None: ...
+35
View File
@@ -0,0 +1,35 @@
from typing import Literal
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
class Sun:
def __init__(self) -> None: ...
@staticmethod
def true_longitude_coarse(epoch: Epoch) -> tuple[Angle, float]: ...
@staticmethod
def apparent_longitude_coarse(epoch: Epoch) -> tuple[Angle, float]: ...
@staticmethod
def apparent_rightascension_declination_coarse(epoch: Epoch) -> tuple[Angle, Angle, float]: ...
@staticmethod
def geometric_geocentric_position(epoch: Epoch, tofk5: bool = True) -> tuple[Angle, Angle, float]: ...
@staticmethod
def apparent_geocentric_position(epoch: Epoch, nutation: bool = True) -> tuple[Angle, Angle, float]: ...
@staticmethod
def rectangular_coordinates_mean_equinox(epoch: Epoch) -> tuple[float, float, float]: ...
@staticmethod
def rectangular_coordinates_j2000(epoch: Epoch) -> tuple[float, float, float]: ...
@staticmethod
def rectangular_coordinates_b1950(epoch: Epoch) -> tuple[float, float, float]: ...
@staticmethod
def rectangular_coordinates_equinox(epoch: Epoch, equinox_epoch: Epoch) -> tuple[float, float, float]: ...
@staticmethod
def get_equinox_solstice(year: int, target: Literal["spring", "summer", "autumn", "winter"] = "spring") -> Epoch: ...
@staticmethod
def equation_of_time(epoch: Epoch) -> tuple[int, float]: ...
@staticmethod
def ephemeris_physical_observations(epoch: Epoch) -> tuple[Angle, Angle, Angle]: ...
@staticmethod
def beginning_synodic_rotation(number: int) -> Epoch: ...
def main() -> None: ...
+34
View File
@@ -0,0 +1,34 @@
from typing import Final
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
VSOP87_L: Final[list[list[list[float]]]]
VSOP87_B: Final[list[list[list[float]]]]
VSOP87_R: Final[list[list[list[float]]]]
ORBITAL_ELEM: Final[list[list[float]]]
ORBITAL_ELEM_J2000: Final[list[list[float]]]
class Uranus:
@staticmethod
def geometric_heliocentric_position(epoch: Epoch, tofk5: bool | None = True) -> tuple[Angle, Angle, float]: ...
@staticmethod
def apparent_heliocentric_position(epoch: Epoch) -> tuple[Angle, Angle, float]: ...
@staticmethod
def orbital_elements_mean_equinox(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def orbital_elements_j2000(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def geocentric_position(epoch: Epoch) -> tuple[Angle, Angle, Angle]: ...
@staticmethod
def conjunction(epoch: Epoch) -> Epoch: ...
@staticmethod
def opposition(epoch: Epoch) -> Epoch: ...
@staticmethod
def perihelion_aphelion(epoch: Epoch, perihelion: bool | None = True) -> Epoch: ...
@staticmethod
def passage_nodes(epoch: Epoch, ascending: bool = True) -> tuple[Epoch, float]: ...
@staticmethod
def magnitude(sun_dist: float, earth_dist: float) -> float: ...
def main() -> None: ...
+44
View File
@@ -0,0 +1,44 @@
from typing import Final
from pymeeus.Angle import Angle
from pymeeus.Epoch import Epoch
VSOP87_L: Final[list[list[list[float]]]]
VSOP87_B: Final[list[list[list[float]]]]
VSOP87_R: Final[list[list[list[float]]]]
ORBITAL_ELEM: Final[list[list[float]]]
ORBITAL_ELEM_J2000: Final[list[list[float]]]
class Venus:
@staticmethod
def geometric_heliocentric_position(epoch: Epoch, tofk5: bool | None = True) -> tuple[Angle, Angle, float]: ...
@staticmethod
def apparent_heliocentric_position(epoch: Epoch) -> tuple[Angle, Angle, float]: ...
@staticmethod
def orbital_elements_mean_equinox(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def orbital_elements_j2000(epoch: Epoch) -> tuple[Angle, float, float, Angle, Angle, Angle]: ...
@staticmethod
def geocentric_position(epoch: Epoch) -> tuple[Angle, Angle, Angle]: ...
@staticmethod
def inferior_conjunction(epoch: Epoch) -> Epoch: ...
@staticmethod
def superior_conjunction(epoch: Epoch) -> Epoch: ...
@staticmethod
def western_elongation(epoch: Epoch) -> tuple[Epoch, Angle]: ...
@staticmethod
def eastern_elongation(epoch: Epoch) -> tuple[Epoch, Angle]: ...
@staticmethod
def station_longitude_1(epoch: Epoch) -> Epoch: ...
@staticmethod
def station_longitude_2(epoch: Epoch) -> Epoch: ...
@staticmethod
def perihelion_aphelion(epoch: Epoch, perihelion: bool | None = True) -> Epoch: ...
@staticmethod
def passage_nodes(epoch: Epoch, ascending: bool = True) -> tuple[Epoch, float]: ...
@staticmethod
def illuminated_fraction(epoch: Epoch) -> float: ...
@staticmethod
def magnitude(sun_dist: float, earth_dist: float, phase_angle: float | Angle) -> float: ...
def main() -> None: ...
View File
+8
View File
@@ -0,0 +1,8 @@
from typing import Final, Literal
TOL: Final = 1e-10
def machine_accuracy() -> tuple[float, int]: ...
def get_ordinal_suffix(ordinal: float) -> Literal["st", "nd", "rd", "th"]: ...
def iint(number: float) -> int: ...
def main() -> None: ...