- unified importer framework (app/services/importers/): normalized model, registry, common pipeline (hierarchy, attachments, collections, dedup), async jobs, dry-run preview, column->type mapping - Phase 1: Obsidian, Notion, Logseq/Roam, HTML (Apple Notes/Bear/Ulysses/ OneNote), Google Keep, generic Markdown - Phase 2: typed CSV/TSV, Excel (openpyxl), generic JSON - Phase 3: Word .docx (python-docx), PDF (pypdf), HTML folders - Phase 4: Raindrop, Pocket, Readwise, Shaarli, Netscape bookmarks, .ics, OPML, Standard Notes, Gitea/GitHub issues (+labels/milestones) - Phase 5: incremental re-sync (skip/update/duplicate), partial-error resume, forge repo files, URL web clipper (SSRF guard), batch multi-file + UI queue, Notion relation resolution, exportable JSON reports - /import wizard, API /api/import/*, migration 9 (import_items, import_jobs) - fix: property values stored by property id (correct DB view rendering) - deps: openpyxl, beautifulsoup4, PyYAML, python-docx, pypdf - 43 import tests; full suite 491 green; ruff clean - bump version 5.11.5
59 lines
1.2 KiB
Python
59 lines
1.2 KiB
Python
"""FlowDeck — importers package (v5.6.0).
|
|
|
|
Importing this package registers every built-in importer. Use
|
|
:func:`parse_upload` to detect a source and :func:`run_import` to persist it.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from app.services.importers import ( # noqa: F401 - registration side effects
|
|
bookmarks,
|
|
calendar,
|
|
docx,
|
|
html_notes,
|
|
markdown,
|
|
notion,
|
|
obsidian,
|
|
opml,
|
|
outline,
|
|
pdf,
|
|
standard_notes,
|
|
tabular,
|
|
)
|
|
from app.services.importers.base import ( # noqa: F401
|
|
ImportAttachment,
|
|
Importer,
|
|
ImportPage,
|
|
ImportResult,
|
|
all_importers,
|
|
detect_importer,
|
|
get_importer,
|
|
list_sources,
|
|
)
|
|
from app.services.importers.jobs import ( # noqa: F401
|
|
create_job,
|
|
get_job,
|
|
list_jobs,
|
|
parse_upload,
|
|
start_import_job,
|
|
)
|
|
from app.services.importers.pipeline import preview_result, resolve_relations, run_import # noqa: F401
|
|
|
|
__all__ = [
|
|
"ImportAttachment",
|
|
"ImportPage",
|
|
"ImportResult",
|
|
"Importer",
|
|
"all_importers",
|
|
"detect_importer",
|
|
"get_importer",
|
|
"list_sources",
|
|
"create_job",
|
|
"get_job",
|
|
"list_jobs",
|
|
"parse_upload",
|
|
"start_import_job",
|
|
"preview_result",
|
|
"run_import",
|
|
"resolve_relations",
|
|
]
|