Skip to main content

Tests

Papermerge REST API Server

This python package is the heart of Papermerge project. It consists of a set of reusable Django apps which are consumed across different bundles of Papermerge Document Management System (DMS).

Technically speaking, it contains following Django apps:

  • papermerge.core - the epicenter of Papermerge DMS project
  • papermerge.notifications - Django Channels app for sending notifications via websockets
  • papermerge.search - RESTful search. Supports four backends: Xapian, Whoosh, Elasticsearch, Solr.

What is Papermerge?

Papermerge is an open source document management system (DMS) primarily designed for archiving and retrieving your digital documents. Instead of having piles of paper documents all over your desk, office or drawers - you can quickly scan them and configure your scanner to directly upload to Papermerge DMS. Papermerge DMS on its turn will extract text data from the scanned documents using Optical Character Recognition (OCR) technology the index it and make it searchable. You will be able to quickly find any (scanned!) document using full text search capabilities.

Papermerge is perfect tool to manage documents in PDF, JPEG, TIFF and PNG formats.

Features Highlights

  • OpenAPI compliant REST API
  • Works well with PDF documents
  • OCR (Optical Character Recognition) of the documents (uses OCRmyPDF)
  • Full Text Search of the scanned documents (supports four search engine backends, uses Xapian by default)
  • Document Versions
  • Tags - assign colored tags to documents or folders
  • Documents and Folders - users can organize documents in folders
  • Multi-User (supports user groups)
  • User permissions management
  • Page Management - delete, reorder, cut & paste pages (uses PikePDF)

Documentation

For an overview on REST API is available here.

Detailed online REST API reference can be viewed as:

Note that REST API reference documentation is generated from OpenAPI schema. OpenAPI schema is stored in its own dedicated repository papermerge/openapi-schema.

Papermerge DMS documentation is available at https://docs.papermerge.io

Docker

In order to start Papermerge REST API server as docker image use following command:

docker run -p 8000:8000 \
    -e PAPERMERGE__MAIN__SECRET_KEY=abc \
    -e DJANGO_SUPERUSER_PASSWORD=123 \
    papermerge/papermerge:latest

If you want initial superuser to have another username (e.g. john), use DJANGO_SUPERUSER_USERNAME environment variable:

docker run -p 8000:8000 \
    -e PAPERMERGE__MAIN__SECRET_KEY=abc \
    -e DJANGO_SUPERUSER_PASSWORD=123 \
    -e DJANGO_SUPERUSER_USERNAME=john \
    papermerge/papermerge:latest

For full list of supported environment variables check online documentation.

Docker Compose

By default Papermerge REST API server uses sqlite3 database. In order to use PostgreSQL use following docker compose file:

version: '3.7'
services:
  app:
    image: papermerge/papermerge
    environment:
      - PAPERMERGE__MAIN__SECRET_KEY=abc
      - DJANGO_SUPERUSER_PASSWORD=12345
      - PAPERMERGE__DATABASE__TYPE=postgres
      - PAPERMERGE__DATABASE__USER=postgres
      - PAPERMERGE__DATABASE__PASSWORD=123
      - PAPERMERGE__DATABASE__NAME=postgres
      - PAPERMERGE__DATABASE__HOST=db
    ports:
      - 8000:8000
    depends_on:
      - db
  db:
    image: bitnami/postgresql:14.4.0
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    environment:
      - POSTGRES_PASSWORD=123
volumes:
    postgres_data:version: '3.7'

Above mentioned docker compose file can be used to start Papermerge REST API server which will use PostgreSQL database to store data.

For detailed description on how to start Papermerge DMS using docker compose read Docker Compose/Detailed Explanation section in online docs.

Tests

Test suite is divided into two big groups:

  1. tests.core
  2. tests.search

First group is concerned with tests which do not depend on elasticsearch while second one tests.search is concerned with tests for which depend on elasticsearch and as result run very slow (hence the grouping). In order to run tests.core tests you need to have redis up and running; in order to run test.search you need to both redis and elasticsearch up and running.

Before running core tests suite, make sure redis service is up and running. Run tests:

 poetry run task test-core

Before running search tests suite, make sure both redis and elasticsearch services are up and running:

 poetry run task test-search

In order to run all tests suite (core + search):

poetry run task test

Linting

Use following command to make sure that your code is formatted per PEP8 spec:

poetry run task lint

Metadata

Release files for papermerge-core 2.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for papermerge-core 2.1.5
File Size Uploaded Provenance
papermerge_core-2.1.5.tar.gz 98.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for papermerge-core 2.1.5
File Interpreter ABI Platform
papermerge_core-2.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 236.8 kB

Release files / papermerge_core-2.1.5.tar.gz

Download URL papermerge_core-2.1.5.tar.gz
Size 98.5 kB
Tags Source
SHA-256 checksum
How to use checksums
906565692a426b8eaaf29b5736d530c94d3a835f7bec1b3775c1997acbd8b102
BLAKE2b-256 checksum
How to use checksums
b97a8b1109a78059243b86b7fb983de249222e26cc6a684543e479b060bfc5c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.11.1 Linux/5.15.0-1031-azure

Release files / papermerge_core-2.1.5-py3-none-any.whl

Download URL papermerge_core-2.1.5-py3-none-any.whl
Size 138.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ee3f7f053be8ab5c223caa81d2b2c1c54ffc697bb15ddbafc8cb20af02922bae
BLAKE2b-256 checksum
How to use checksums
f8b27ce58ac3a060cb10dabc1746b9708d0ba2fc60bbaaeebb1f14aa6f6e1018
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.11.1 Linux/5.15.0-1031-azure

Security for papermerge-core 2.1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

2.1.5 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page