Library API¶
Prefer the service classes for application code. The CLI-oriented
import_works(...) helper still exists for scripts: it prints status and
returns an exit code (0 / 1).
ImportClient¶
from kcworks_import_client import ImportClient
client = ImportClient(api_key="...")
result = client.import_works(
"my-collection",
metadata=[{"metadata": {"title": "Example"}}], # path, JSON str, list, or dict
files=["paper.pdf"], # paths or (filename, fileobj[, mime]) tuples
notify_owners=False,
id_scheme="import-recid",
alternate_id_scheme="",
no_updates=False,
progress=None, # optional callable("start"|"done")
)
if result.ok:
print(result.status_code, result.data, result.message)
else:
print(result.status_code, result.errors)
ImportClient constructor options¶
Argument |
Description |
|---|---|
|
Bearer token (required). |
|
Use |
|
Override import API base (no trailing slash). |
|
Override TLS verification. |
|
Optional |
KCWORKS_IMPORT_API_URL (when set) overrides the base URL and disables SSL
verification — useful for local mock servers and tests.
ImportClient results and errors¶
ImportResult—status_code,data,errors,message,body,ok(True for HTTP 201 or 207),exit_codeimport_works_or_raise(...)— same asimport_works, but raisesImportAPIErrorwhenokis FalseImportRequestError— transport / network failure before a usable response
MultiCollectionImporter¶
from kcworks_import_client import MultiCollectionImporter
importer = MultiCollectionImporter(api_key="...", log=print)
multi = importer.run_manifest(
"manifest.json",
assign_parents=True,
notify_owners=False,
id_scheme="import-recid",
no_updates=False,
)
assert multi.ok
print(multi.communities, multi.imports, multi.skipped)
MultiCollectionImporter constructor options¶
Argument |
Description |
|---|---|
|
Bearer token (required). |
|
Localhost communities/import bases when no env override. |
|
Optional preconfigured |
|
Override communities API base. |
|
Override TLS verification for communities calls. |
|
Shared |
|
Optional callback for progress lines (default: no-op). |
Environment overrides:
KCWORKS_IMPORT_API_URL— import base; communities base is derived by replacing a trailing/importwith/communitiesKCWORKS_COMMUNITIES_API_URL— communities base directly
MultiCollectionImporter results and errors¶
MultiCollectionImportResult—communities,imports(slug →ImportResult),skipped,ok,exit_codeManifestError— invalid or incomplete manifest / pathsCommunityError— communities API failures
Public exports¶
from kcworks_import_client import (
ImportClient,
MultiCollectionImporter,
ImportResult,
MultiCollectionImportResult,
import_works, # CLI-compatible helper
load_manifest,
ImportAPIError,
ImportRequestError,
ManifestError,
CommunityError,
KCWorksImportError,
)