PlanOpticon

planopticon / video_processor / sources / __init__.py
Blame History Raw 63 lines
1
"""Cloud, web, and notes source integrations for fetching content from remote sources."""
2
3
from video_processor.sources.base import BaseSource, SourceFile
4
5
__all__ = [
6
"BaseSource",
7
"SourceFile",
8
"AppleNotesSource",
9
"ArxivSource",
10
"GitHubSource",
11
"GoogleDriveSource",
12
"GoogleKeepSource",
13
"GWSSource",
14
"HackerNewsSource",
15
"LogseqSource",
16
"M365Source",
17
"MeetRecordingSource",
18
"NotionSource",
19
"ObsidianSource",
20
"OneNoteSource",
21
"PodcastSource",
22
"TeamsRecordingSource",
23
"RedditSource",
24
"RSSSource",
25
"TwitterSource",
26
"WebSource",
27
"YouTubeSource",
28
"ZoomSource",
29
]
30
31
32
def __getattr__(name: str):
33
"""Lazy imports to avoid pulling in optional dependencies at import time."""
34
_lazy_map = {
35
"AppleNotesSource": "video_processor.sources.apple_notes_source",
36
"ArxivSource": "video_processor.sources.arxiv_source",
37
"GitHubSource": "video_processor.sources.github_source",
38
"GoogleDriveSource": "video_processor.sources.google_drive",
39
"GoogleKeepSource": "video_processor.sources.google_keep_source",
40
"GWSSource": "video_processor.sources.gws_source",
41
"HackerNewsSource": "video_processor.sources.hackernews_source",
42
"LogseqSource": "video_processor.sources.logseq_source",
43
"M365Source": "video_processor.sources.m365_source",
44
"MeetRecordingSource": "video_processor.sources.meet_recording_source",
45
"NotionSource": "video_processor.sources.notion_source",
46
"ObsidianSource": "video_processor.sources.obsidian_source",
47
"OneNoteSource": "video_processor.sources.onenote_source",
48
"PodcastSource": "video_processor.sources.podcast_source",
49
"TeamsRecordingSource": "video_processor.sources.teams_recording_source",
50
"RedditSource": "video_processor.sources.reddit_source",
51
"RSSSource": "video_processor.sources.rss_source",
52
"TwitterSource": "video_processor.sources.twitter_source",
53
"WebSource": "video_processor.sources.web_source",
54
"YouTubeSource": "video_processor.sources.youtube_source",
55
"ZoomSource": "video_processor.sources.zoom_source",
56
}
57
if name in _lazy_map:
58
import importlib
59
60
module = importlib.import_module(_lazy_map[name])
61
return getattr(module, name)
62
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
63

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button