Resources
This section contains documentation for the resources module.
METADATA:
- File: __init__.py
Project: paperap
- Created: 2025-03-04
Version: 0.0.9
Author: Jess Mann Email: jess@jmann.me
Copyright (c) 2025 Jess Mann
LAST MODIFIED:
2025-03-04 By Jess Mann
- class paperap.resources.DocumentNoteResource(client)[source]
Bases:
StandardResource[DocumentNote,DocumentNoteQuerySet]Resource for managing document notes.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'list': <string.Template object>}
- model_class
alias of
DocumentNote
- name: str = 'notes'
- queryset_class
alias of
DocumentNoteQuerySet
- client: PaperlessClient
- class paperap.resources.DocumentResource(client)[source]
Bases:
StandardResource[Document,DocumentQuerySet]Resource for managing documents.
- Parameters:
client (
PaperlessClient)
- bulk_action(action, ids, **kwargs)[source]
Perform a bulk action on multiple documents.
- Parameters:
- Return type:
- Returns:
The API response
- Raises:
ConfigurationError – If the bulk edit endpoint is not defined
- bulk_add_tag(ids, tag_id)[source]
Add a tag to multiple documents.
- bulk_delete(ids)[source]
Delete multiple documents at once.
- bulk_delete_pages(document_id, pages)[source]
Delete pages from a document.
- bulk_merge(ids, metadata_document_id=None, delete_originals=False)[source]
Merge multiple documents.
- Parameters:
- Return type:
- Returns:
True if submitting the merge was successful
- Raises:
BadResponseError – If the merge action returns an unexpected response
APIError – If the merge action fails
- bulk_modify_custom_fields(ids, add_custom_fields=None, remove_custom_fields=None)[source]
Modify custom fields on multiple documents.
- bulk_modify_tags(ids, add_tags=None, remove_tags=None)[source]
Modify tags on multiple documents.
- bulk_remove_tag(ids, tag_id)[source]
Remove a tag from multiple documents.
- bulk_reprocess(ids)[source]
Reprocess multiple documents.
- bulk_rotate(ids, degrees)[source]
Rotate documents.
- bulk_set_correspondent(ids, correspondent)[source]
Set correspondent for multiple documents.
- bulk_set_document_type(ids, document_type)[source]
Set document type for multiple documents.
- bulk_set_permissions(ids, permissions=None, owner_id=None, merge=False)[source]
Set permissions for multiple documents.
- Parameters:
- Return type:
- Returns:
The API response
- bulk_set_storage_path(ids, storage_path)[source]
Set storage path for multiple documents.
- bulk_split(document_id, pages, delete_originals=False)[source]
Split a document.
- download(document_id, *, original=False)[source]
- empty_trash()[source]
Empty the trash.
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'download': <string.Template object>, 'empty_trash': <string.Template object>, 'list': <string.Template object>, 'next_asn': <string.Template object>, 'preview': <string.Template object>, 'thumbnail': <string.Template object>, 'update': <string.Template object>, 'upload': <string.Template object>}
- model_class
alias of
Document
- name: str = 'documents'
- queryset_class
alias of
DocumentQuerySet
- upload_async(filepath, **metadata)[source]
Upload a document from a file to paperless ngx.
- Parameters:
filepath (
Path|str) – The path to the file to upload.- Return type:
- Returns:
A UUID string (task identifier) as returned by Paperless ngx. e.g. ca6a6dc8-b434-4fcd-8436-8b2546465622
- Raises:
FileNotFoundError – If the file does not exist.
ResourceNotFoundError – If the upload fails.
- upload_content(file_content, filename, **metadata)[source]
Upload a document with optional metadata.
- Parameters:
- Returns:
ca6a6dc8-b434-4fcd-8436-8b2546465622 This is likely a task id, or similar.
- Return type:
A string that looks like this
- Raises:
ResourceNotFoundError – If the upload fails
- upload_sync(filepath, max_wait=300, poll_interval=1.0, **metadata)[source]
Upload a document and wait until it has been processed.
- Parameters:
- Return type:
- Returns:
A Document instance once available.
- Raises:
APIError – If the document is not processed within the max_wait.
BadResponseError – If document processing succeeds but no document ID is returned.
- client: PaperlessClient
- class paperap.resources.CorrespondentResource(client)[source]
Bases:
StandardResource[Correspondent,CorrespondentQuerySet],BulkEditingResource for managing correspondents.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- model_class
alias of
Correspondent
- name: str = 'correspondents'
- queryset_class
alias of
CorrespondentQuerySet
- client: PaperlessClient
- class paperap.resources.TagResource(client)[source]
Bases:
StandardResource[Tag,TagQuerySet],BulkEditingResource for managing tags.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- model_class
alias of
Tag
- name: str = 'tags'
- queryset_class
alias of
TagQuerySet
- client: PaperlessClient
- class paperap.resources.DocumentTypeResource(client)[source]
Bases:
StandardResource[DocumentType,DocumentTypeQuerySet],BulkEditingResource for managing document types.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- model_class
alias of
DocumentType
- name: str = 'document_types'
- queryset_class
alias of
DocumentTypeQuerySet
- client: PaperlessClient
- class paperap.resources.DocumentMetadataResource(client)[source]
Bases:
StandardResource[DocumentMetadata,DocumentMetadataQuerySet]- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'detail': <string.Template object>}
- model_class
alias of
DocumentMetadata
- name: str = 'document_metadata'
- queryset_class
alias of
DocumentMetadataQuerySet
- client: PaperlessClient
- class paperap.resources.DocumentSuggestionsResource(client)[source]
Bases:
StandardResource[DocumentSuggestions,DocumentSuggestionsQuerySet]- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'detail': <string.Template object>}
- model_class
alias of
DocumentSuggestions
- name: str = 'document_suggestions'
- queryset_class
alias of
DocumentSuggestionsQuerySet
- client: PaperlessClient
- class paperap.resources.DownloadedDocumentResource(client)[source]
Bases:
StandardResource[DownloadedDocument,DownloadedDocumentQuerySet]Resource for managing downloaded document content.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {RetrieveFileMode.DOWNLOAD: <string.Template object>, RetrieveFileMode.PREVIEW: <string.Template object>, RetrieveFileMode.THUMBNAIL: <string.Template object>}
- load(downloaded_document)[source]
Load the document file content from the API.
This method fetches the binary content of the document file and updates the model with the response data.
- Parameters:
downloaded_document (
DownloadedDocument)- Return type:
- model_class
alias of
DownloadedDocument
- name: str = 'document'
- queryset_class
alias of
DownloadedDocumentQuerySet
- client: PaperlessClient
- class paperap.resources.ProfileResource(client)[source]
Bases:
StandardResource[Profile,ProfileQuerySet]Resource for managing profiles.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- model_class
alias of
Profile
- name: str = 'profile'
- queryset_class
alias of
ProfileQuerySet
- client: PaperlessClient
- class paperap.resources.ShareLinksResource(client)[source]
Bases:
StandardResource[ShareLinks,ShareLinksQuerySet]Resource for managing share links.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- model_class
alias of
ShareLinks
- name: str = 'share_links'
- queryset_class
alias of
ShareLinksQuerySet
- client: PaperlessClient
- class paperap.resources.StoragePathResource(client)[source]
Bases:
StandardResource[StoragePath,StoragePathQuerySet],BulkEditingResource for managing storage paths.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- model_class
alias of
StoragePath
- name: str = 'storage_paths'
- queryset_class
alias of
StoragePathQuerySet
- client: PaperlessClient
- class paperap.resources.CustomFieldResource(client)[source]
Bases:
StandardResource[CustomField,CustomFieldQuerySet]Resource for managing custom fields.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- model_class
alias of
CustomField
- name: str = 'custom_fields'
- queryset_class
alias of
CustomFieldQuerySet
- client: PaperlessClient
- class paperap.resources.UserResource(client)[source]
Bases:
StandardResource[User,UserQuerySet]Resource for managing users.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- get_current()[source]
Get the current authenticated user.
- Return type:
- Returns:
The current user.
- model_class
alias of
User
- queryset_class
alias of
UserQuerySet
- client: PaperlessClient
- name: str
- class paperap.resources.GroupResource(client)[source]
Bases:
StandardResource[Group,GroupQuerySet]Resource for managing groups.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- model_class
alias of
Group
- queryset_class
alias of
GroupQuerySet
- client: PaperlessClient
- name: str
- class paperap.resources.TaskResource(client)[source]
Bases:
StandardResource[Task,TaskQuerySet]Resource for managing tasks.
- Parameters:
client (
PaperlessClient)
- acknowledge(task_id)[source]
Acknowledge a task.
- bulk_acknowledge(task_ids)[source]
Acknowledge multiple tasks.
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- execute_task(method, endpoint, data=None, max_wait=300)[source]
Execute a task synchronously.
This is a helper method that executes a task and waits for its completion.
- Parameters:
- Return type:
- Returns:
The task object, once completed.
- Raises:
APIError – If the task fails or times out
- get_task_result(task_id, wait=True, max_wait=300)[source]
Get the result of a task.
- Parameters:
- Return type:
- Returns:
The result of the task.
- Raises:
APIError – If the task fails or times out.
ResourceNotFoundError – If the task cannot be found.
- model_class
alias of
Task
- queryset_class
alias of
TaskQuerySet
- wait_for_task(task_id, max_wait=300, poll_interval=1.0, success_callback=None, failure_callback=None)[source]
Wait for a task to complete.
- Parameters:
task_id (
str) – The task ID to wait for.max_wait (
int) – Maximum time (in seconds) to wait for completion.poll_interval (
float) – Seconds between polling attempts.success_callback (
Optional[Callable[[Task],None]]) – Optional callback to execute when task succeeds.failure_callback (
Optional[Callable[[Task],None]]) – Optional callback to execute when task fails.
- Return type:
- Returns:
The completed Task instance.
- Raises:
APIError – If the task fails or times out.
ResourceNotFoundError – If the task cannot be found.
- wait_for_tasks(task_ids, max_wait=300, poll_interval=1.0)[source]
Wait for multiple tasks to complete.
- Parameters:
- Return type:
- Returns:
Dictionary mapping task IDs to completed Task instances.
- Raises:
APIError – If any task fails or times out.
- client: PaperlessClient
- name: str
- class paperap.resources.SavedViewResource(client)[source]
Bases:
StandardResource[SavedView,SavedViewQuerySet]Resource for managing saved views.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- model_class
alias of
SavedView
- name: str = 'saved_views'
- queryset_class
alias of
SavedViewQuerySet
- client: PaperlessClient
- class paperap.resources.UISettingsResource(client)[source]
Bases:
StandardResource[UISettings,UISettingsQuerySet]Resource for managing UI settings.
- Parameters:
client (
PaperlessClient)
- delete(model_id)[source]
Delete a resource.
- Parameters:
model_id (
int|UISettings) – ID of the resource.- Return type:
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- get_current()[source]
Get the current user’s UI settings.
- Return type:
- Returns:
The current user’s UI settings.
- model_class
alias of
UISettings
- name: str = 'ui_settings'
- queryset_class
alias of
UISettingsQuerySet
- update_current(settings)[source]
Update the current user’s UI settings.
- Parameters:
- Return type:
- Returns:
The updated UI settings.
- client: PaperlessClient
- class paperap.resources.WorkflowResource(client)[source]
Bases:
StandardResource[Workflow,WorkflowQuerySet]Resource for managing workflows.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- model_class
alias of
Workflow
- name: str = 'workflows'
- queryset_class
alias of
WorkflowQuerySet
- client: PaperlessClient
- class paperap.resources.WorkflowTriggerResource(client)[source]
Bases:
StandardResource[WorkflowTrigger,WorkflowTriggerQuerySet]Resource for managing workflow triggers.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- model_class
alias of
WorkflowTrigger
- name: str = 'workflow_triggers'
- queryset_class
alias of
WorkflowTriggerQuerySet
- client: PaperlessClient
- class paperap.resources.WorkflowActionResource(client)[source]
Bases:
StandardResource[WorkflowAction,WorkflowActionQuerySet]Resource for managing workflow actions.
- Parameters:
client (
PaperlessClient)
- endpoints: ClassVar[Endpoints] = {'create': <string.Template object>, 'delete': <string.Template object>, 'detail': <string.Template object>, 'list': <string.Template object>, 'update': <string.Template object>}
- model_class
alias of
WorkflowAction
- name: str = 'workflow_actions'
- queryset_class
alias of
WorkflowActionQuerySet
- client: PaperlessClient