Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 42 additions & 16 deletions services/meteor_tracking/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,20 @@
"""

# Core modules (no external dependencies beyond stdlib)
from .hopi_circles import (
SearchCircle,
SearchPattern,
generate_hopi_circles,
)
from .lexicon_prayers import (
LexiconFormatter,
generate_prayer_of_finding,
generate_prayer_of_watching,
generate_status_prayer,
)
from .shower_calendar import (
ShowerCalendar,
MeteorShower,
ShowerCalendar,
get_current_shower,
get_next_major_shower,
)
Expand All @@ -21,38 +32,53 @@
calculate_trajectory,
is_visible_from,
)
from .hopi_circles import (
SearchPattern,
SearchCircle,
generate_hopi_circles,
)
from .watch_manager import (
WatchWindow,
WatchManager,
WatchIntensity,
WatchManager,
WatchRequestParser,
)
from .lexicon_prayers import (
generate_prayer_of_finding,
generate_prayer_of_watching,
generate_status_prayer,
LexiconFormatter,
WatchWindow,
)


# Lazy imports for aiohttp-dependent modules
def get_fireball_clients():
"""Get fireball API clients (requires aiohttp)."""
from .fireball_client import CNEOSClient, Fireball, AMSClient, AMSFireball
from .fireball_client import AMSClient, AMSFireball, CNEOSClient, Fireball
return CNEOSClient, Fireball, AMSClient, AMSFireball


def get_meteor_service():
"""Get meteor tracking service (requires aiohttp)."""
from .meteor_service import MeteorTrackingService, MeteorConfig, MeteorAlert
from .meteor_service import MeteorAlert, MeteorConfig, MeteorTrackingService
return MeteorTrackingService, MeteorConfig, MeteorAlert


def get_close_approach_client():
"""Get NASA/JPL CNEOS Close Approach Data client (requires aiohttp)."""
from .close_approach_client import (
CADClient,
CloseApproach,
ThreatLevel,
estimate_diameter_from_h,
fetch_upcoming_approaches,
generate_approach_prayer,
)
return (
CADClient,
CloseApproach,
ThreatLevel,
estimate_diameter_from_h,
fetch_upcoming_approaches,
generate_approach_prayer,
)


def get_neo_feed_client():
"""Get NASA NEO Feed API client (requires aiohttp)."""
from .neo_feed_client import NEOFeedClient
return NEOFeedClient


__all__ = [
# Shower calendar
'ShowerCalendar',
Expand Down
Loading
Loading