From 0bf9e55ca79983f4d5e5f42794f494f51f555345 Mon Sep 17 00:00:00 2001
From: Trenton Holmes <holmes.trenton@gmail.com>
Date: Thu, 1 Sep 2022 10:35:33 -0700
Subject: [PATCH] Fixes a minor TODO in settings, and enables flake8 for
 settings.py

---
 src/paperless/settings.py     | 37 +++++++++++++++++++----------------
 src/paperless_tika/apps.py    |  2 +-
 src/paperless_tika/parsers.py |  6 +++---
 src/setup.cfg                 |  2 +-
 4 files changed, 25 insertions(+), 22 deletions(-)

diff --git a/src/paperless/settings.py b/src/paperless/settings.py
index 7ec260b1a..515e2a05f 100644
--- a/src/paperless/settings.py
+++ b/src/paperless/settings.py
@@ -285,7 +285,7 @@ SECRET_KEY = os.getenv(
 
 AUTH_PASSWORD_VALIDATORS = [
     {
-        "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
+        "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",  # noqa: E501
     },
     {
         "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
@@ -445,13 +445,14 @@ LOGGING = {
 
 TASK_WORKERS = __get_int("PAPERLESS_TASK_WORKERS", 1)
 
-PAPERLESS_WORKER_TIMEOUT: Final[int] = __get_int("PAPERLESS_WORKER_TIMEOUT", 1800)
+WORKER_TIMEOUT: Final[int] = __get_int("PAPERLESS_WORKER_TIMEOUT", 1800)
 
 # Per django-q docs, timeout must be smaller than retry
-# We default retry to 10s more than the timeout
-PAPERLESS_WORKER_RETRY: Final[int] = __get_int(
+# We default retry to 10s more than the timeout to silence the
+# warning, as retry functionality isn't used.
+WORKER_RETRY: Final[int] = __get_int(
     "PAPERLESS_WORKER_RETRY",
-    PAPERLESS_WORKER_TIMEOUT + 10,
+    WORKER_TIMEOUT + 10,
 )
 
 Q_CLUSTER = {
@@ -459,8 +460,8 @@ Q_CLUSTER = {
     "guard_cycle": 5,
     "catch_up": False,
     "recycle": 1,
-    "retry": PAPERLESS_WORKER_RETRY,
-    "timeout": PAPERLESS_WORKER_TIMEOUT,
+    "retry": WORKER_RETRY,
+    "timeout": WORKER_TIMEOUT,
     "workers": TASK_WORKERS,
     "redis": os.getenv("PAPERLESS_REDIS", "redis://localhost:6379"),
     "log_level": "DEBUG" if DEBUG else "INFO",
@@ -507,7 +508,7 @@ CONSUMER_IGNORE_PATTERNS = list(
     json.loads(
         os.getenv(
             "PAPERLESS_CONSUMER_IGNORE_PATTERNS",
-            '[".DS_STORE/*", "._*", ".stfolder/*", ".stversions/*", ".localized/*", "desktop.ini"]',
+            '[".DS_STORE/*", "._*", ".stfolder/*", ".stversions/*", ".localized/*", "desktop.ini"]',  # noqa: E501
         ),
     ),
 )
@@ -589,7 +590,8 @@ DATE_ORDER = os.getenv("PAPERLESS_DATE_ORDER", "DMY")
 FILENAME_DATE_ORDER = os.getenv("PAPERLESS_FILENAME_DATE_ORDER")
 
 # Maximum number of dates taken from document start to end to show as suggestions for
-# `created` date in the frontend. Duplicates are removed, which can result in fewer dates shown.
+# `created` date in the frontend. Duplicates are removed, which can result in
+# fewer dates shown.
 NUMBER_OF_SUGGESTED_DATES = __get_int("PAPERLESS_NUMBER_OF_SUGGESTED_DATES", 3)
 
 # Transformations applied before filename parsing
@@ -600,7 +602,8 @@ for t in json.loads(os.getenv("PAPERLESS_FILENAME_PARSE_TRANSFORMS", "[]")):
 # Specify the filename format for out files
 FILENAME_FORMAT = os.getenv("PAPERLESS_FILENAME_FORMAT")
 
-# If this is enabled, variables in filename format will resolve to empty-string instead of 'none'.
+# If this is enabled, variables in filename format will resolve to
+# empty-string instead of 'none'.
 # Directories with 'empty names' are omitted, too.
 FILENAME_FORMAT_REMOVE_NONE = __get_boolean(
     "PAPERLESS_FILENAME_FORMAT_REMOVE_NONE",
@@ -612,16 +615,15 @@ THUMBNAIL_FONT_NAME = os.getenv(
     "/usr/share/fonts/liberation/LiberationSerif-Regular.ttf",
 )
 
-# TODO: this should not have a prefix.
 # Tika settings
-PAPERLESS_TIKA_ENABLED = __get_boolean("PAPERLESS_TIKA_ENABLED", "NO")
-PAPERLESS_TIKA_ENDPOINT = os.getenv("PAPERLESS_TIKA_ENDPOINT", "http://localhost:9998")
-PAPERLESS_TIKA_GOTENBERG_ENDPOINT = os.getenv(
+TIKA_ENABLED = __get_boolean("PAPERLESS_TIKA_ENABLED", "NO")
+TIKA_ENDPOINT = os.getenv("PAPERLESS_TIKA_ENDPOINT", "http://localhost:9998")
+TIKA_GOTENBERG_ENDPOINT = os.getenv(
     "PAPERLESS_TIKA_GOTENBERG_ENDPOINT",
     "http://localhost:3000",
 )
 
-if PAPERLESS_TIKA_ENABLED:
+if TIKA_ENABLED:
     INSTALLED_APPS.append("paperless_tika.apps.PaperlessTikaConfig")
 
 
@@ -634,8 +636,9 @@ def _parse_ignore_dates(
     user provided string(s) into dates
 
     Args:
-        env_ignore (str): The value of the environment variable, comma seperated dates
-        date_order (str, optional): The format of the date strings. Defaults to DATE_ORDER.
+        env_ignore (str): The value of the environment variable, comma separated dates
+        date_order (str, optional): The format of the date strings.
+                                    Defaults to DATE_ORDER.
 
     Returns:
         Set[datetime.datetime]: The set of parsed date objects
diff --git a/src/paperless_tika/apps.py b/src/paperless_tika/apps.py
index 5cab21427..012986543 100644
--- a/src/paperless_tika/apps.py
+++ b/src/paperless_tika/apps.py
@@ -9,6 +9,6 @@ class PaperlessTikaConfig(AppConfig):
     def ready(self):
         from documents.signals import document_consumer_declaration
 
-        if settings.PAPERLESS_TIKA_ENABLED:
+        if settings.TIKA_ENABLED:
             document_consumer_declaration.connect(tika_consumer_declaration)
         AppConfig.ready(self)
diff --git a/src/paperless_tika/parsers.py b/src/paperless_tika/parsers.py
index 0cd0caeab..e706e3aa5 100644
--- a/src/paperless_tika/parsers.py
+++ b/src/paperless_tika/parsers.py
@@ -27,7 +27,7 @@ class TikaDocumentParser(DocumentParser):
         )
 
     def extract_metadata(self, document_path, mime_type):
-        tika_server = settings.PAPERLESS_TIKA_ENDPOINT
+        tika_server = settings.TIKA_ENDPOINT
         try:
             parsed = parser.from_file(document_path, tika_server)
         except Exception as e:
@@ -49,7 +49,7 @@ class TikaDocumentParser(DocumentParser):
 
     def parse(self, document_path, mime_type, file_name=None):
         self.log("info", f"Sending {document_path} to Tika server")
-        tika_server = settings.PAPERLESS_TIKA_ENDPOINT
+        tika_server = settings.TIKA_ENDPOINT
 
         try:
             parsed = parser.from_file(document_path, tika_server)
@@ -73,7 +73,7 @@ class TikaDocumentParser(DocumentParser):
 
     def convert_to_pdf(self, document_path, file_name):
         pdf_path = os.path.join(self.tempdir, "convert.pdf")
-        gotenberg_server = settings.PAPERLESS_TIKA_GOTENBERG_ENDPOINT
+        gotenberg_server = settings.TIKA_GOTENBERG_ENDPOINT
         url = gotenberg_server + "/forms/libreoffice/convert"
 
         self.log("info", f"Converting {document_path} to PDF as {pdf_path}")
diff --git a/src/setup.cfg b/src/setup.cfg
index 3b50151a7..409c5c7cd 100644
--- a/src/setup.cfg
+++ b/src/setup.cfg
@@ -1,5 +1,5 @@
 [flake8]
-extend-exclude = */migrations/*, paperless/settings.py, */tests/*
+extend-exclude = */migrations/*, */tests/*
 # E203 - https://www.flake8rules.com/rules/E203.html
 # W503 - https://www.flake8rules.com/rules/W503.html
 ignore = E203,W503