mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
Ensure all creations of directories create the parents too (#5711)
This commit is contained in:
parent
0b1523f4e5
commit
13201dbfff
@ -233,10 +233,10 @@ class Consumer(LoggingMixin):
|
|||||||
"""
|
"""
|
||||||
Ensure all required directories exist before attempting to use them
|
Ensure all required directories exist before attempting to use them
|
||||||
"""
|
"""
|
||||||
os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
|
settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
os.makedirs(settings.THUMBNAIL_DIR, exist_ok=True)
|
settings.THUMBNAIL_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
os.makedirs(settings.ORIGINALS_DIR, exist_ok=True)
|
settings.ORIGINALS_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
os.makedirs(settings.ARCHIVE_DIR, exist_ok=True)
|
settings.ARCHIVE_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
def pre_check_asn_value(self):
|
def pre_check_asn_value(self):
|
||||||
"""
|
"""
|
||||||
|
@ -88,7 +88,7 @@ def open_index(recreate=False) -> FileIndex:
|
|||||||
logger.exception("Error while opening the index, recreating.")
|
logger.exception("Error while opening the index, recreating.")
|
||||||
|
|
||||||
if not os.path.isdir(settings.INDEX_DIR):
|
if not os.path.isdir(settings.INDEX_DIR):
|
||||||
os.makedirs(settings.INDEX_DIR, exist_ok=True)
|
settings.INDEX_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
return create_in(settings.INDEX_DIR, get_schema())
|
return create_in(settings.INDEX_DIR, get_schema())
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import logging
|
import logging
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
import os
|
|
||||||
|
|
||||||
import tqdm
|
import tqdm
|
||||||
from django import db
|
from django import db
|
||||||
@ -52,7 +51,7 @@ class Command(MultiProcessMixin, ProgressBarMixin, BaseCommand):
|
|||||||
self.handle_processes_mixin(**options)
|
self.handle_processes_mixin(**options)
|
||||||
self.handle_progress_bar_mixin(**options)
|
self.handle_progress_bar_mixin(**options)
|
||||||
|
|
||||||
os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
|
settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
overwrite = options["overwrite"]
|
overwrite = options["overwrite"]
|
||||||
|
|
||||||
|
@ -182,7 +182,7 @@ class Command(BaseCommand):
|
|||||||
if self.zip_export:
|
if self.zip_export:
|
||||||
self.original_target = self.target
|
self.original_target = self.target
|
||||||
|
|
||||||
os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
|
settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
temp_dir = tempfile.TemporaryDirectory(
|
temp_dir = tempfile.TemporaryDirectory(
|
||||||
dir=settings.SCRATCH_DIR,
|
dir=settings.SCRATCH_DIR,
|
||||||
prefix="paperless-export",
|
prefix="paperless-export",
|
||||||
|
@ -243,9 +243,9 @@ class Command(BaseCommand):
|
|||||||
) from e
|
) from e
|
||||||
|
|
||||||
def _import_files_from_manifest(self, progress_bar_disable):
|
def _import_files_from_manifest(self, progress_bar_disable):
|
||||||
os.makedirs(settings.ORIGINALS_DIR, exist_ok=True)
|
settings.ORIGINALS_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
os.makedirs(settings.THUMBNAIL_DIR, exist_ok=True)
|
settings.THUMBNAIL_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
os.makedirs(settings.ARCHIVE_DIR, exist_ok=True)
|
settings.ARCHIVE_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
self.stdout.write("Copy files into paperless...")
|
self.stdout.write("Copy files into paperless...")
|
||||||
|
|
||||||
|
@ -322,7 +322,7 @@ class DocumentParser(LoggingMixin):
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
self.logging_group = logging_group
|
self.logging_group = logging_group
|
||||||
self.settings = self.get_settings()
|
self.settings = self.get_settings()
|
||||||
os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
|
settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
self.tempdir = Path(
|
self.tempdir = Path(
|
||||||
tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR),
|
tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR),
|
||||||
)
|
)
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import os
|
|
||||||
import shutil
|
|
||||||
from uuid import uuid4
|
|
||||||
|
|
||||||
from dateutil import tz
|
from dateutil import tz
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
@ -13,17 +10,6 @@ from documents.parsers import parse_date_generator
|
|||||||
|
|
||||||
|
|
||||||
class TestDate(TestCase):
|
class TestDate(TestCase):
|
||||||
SAMPLE_FILES = os.path.join(
|
|
||||||
os.path.dirname(__file__),
|
|
||||||
"../../paperless_tesseract/tests/samples",
|
|
||||||
)
|
|
||||||
SCRATCH = f"/tmp/paperless-tests-{str(uuid4())[:8]}"
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
os.makedirs(self.SCRATCH, exist_ok=True)
|
|
||||||
|
|
||||||
def tearDown(self):
|
|
||||||
shutil.rmtree(self.SCRATCH)
|
|
||||||
|
|
||||||
def test_date_format_1(self):
|
def test_date_format_1(self):
|
||||||
text = "lorem ipsum 130218 lorem ipsum"
|
text = "lorem ipsum 130218 lorem ipsum"
|
||||||
@ -93,7 +79,6 @@ class TestDate(TestCase):
|
|||||||
datetime.datetime(2020, 3, 1, 0, 0, tzinfo=tz.gettz(settings.TIME_ZONE)),
|
datetime.datetime(2020, 3, 1, 0, 0, tzinfo=tz.gettz(settings.TIME_ZONE)),
|
||||||
)
|
)
|
||||||
|
|
||||||
@override_settings(SCRATCH_DIR=SCRATCH)
|
|
||||||
def test_date_format_9(self):
|
def test_date_format_9(self):
|
||||||
text = "lorem ipsum\n27. Nullmonth 2020\nMärz 2020\nlorem ipsum"
|
text = "lorem ipsum\n27. Nullmonth 2020\nMärz 2020\nlorem ipsum"
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
|
@ -470,12 +470,12 @@ class TestFileHandling(DirectoriesMixin, FileSystemAssertsMixin, TestCase):
|
|||||||
|
|
||||||
def test_try_delete_empty_directories(self):
|
def test_try_delete_empty_directories(self):
|
||||||
# Create our working directory
|
# Create our working directory
|
||||||
tmp = os.path.join(settings.ORIGINALS_DIR, "test_delete_empty")
|
tmp: Path = settings.ORIGINALS_DIR / "test_delete_empty"
|
||||||
os.makedirs(tmp)
|
tmp.mkdir(exist_ok=True, parents=True)
|
||||||
|
|
||||||
os.makedirs(os.path.join(tmp, "notempty"))
|
(tmp / "notempty").mkdir(exist_ok=True, parents=True)
|
||||||
Path(os.path.join(tmp, "notempty", "file")).touch()
|
(tmp / "notempty" / "file").touch()
|
||||||
os.makedirs(os.path.join(tmp, "notempty", "empty"))
|
(tmp / "notempty" / "empty").mkdir(exist_ok=True, parents=True)
|
||||||
|
|
||||||
delete_empty_directories(
|
delete_empty_directories(
|
||||||
os.path.join(tmp, "notempty", "empty"),
|
os.path.join(tmp, "notempty", "empty"),
|
||||||
@ -647,7 +647,7 @@ class TestFileHandlingWithArchive(DirectoriesMixin, FileSystemAssertsMixin, Test
|
|||||||
existing_archive_file = os.path.join(settings.ARCHIVE_DIR, "none", "my_doc.pdf")
|
existing_archive_file = os.path.join(settings.ARCHIVE_DIR, "none", "my_doc.pdf")
|
||||||
Path(original).touch()
|
Path(original).touch()
|
||||||
Path(archive).touch()
|
Path(archive).touch()
|
||||||
os.makedirs(os.path.join(settings.ARCHIVE_DIR, "none"))
|
(settings.ARCHIVE_DIR / "none").mkdir(parents=True, exist_ok=True)
|
||||||
Path(existing_archive_file).touch()
|
Path(existing_archive_file).touch()
|
||||||
doc = Document.objects.create(
|
doc = Document.objects.create(
|
||||||
mime_type="application/pdf",
|
mime_type="application/pdf",
|
||||||
|
@ -904,7 +904,7 @@ class PostDocumentView(GenericAPIView):
|
|||||||
|
|
||||||
t = int(mktime(datetime.now().timetuple()))
|
t = int(mktime(datetime.now().timetuple()))
|
||||||
|
|
||||||
os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
|
settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
temp_file_path = Path(tempfile.mkdtemp(dir=settings.SCRATCH_DIR)) / Path(
|
temp_file_path = Path(tempfile.mkdtemp(dir=settings.SCRATCH_DIR)) / Path(
|
||||||
pathvalidate.sanitize_filename(doc_name),
|
pathvalidate.sanitize_filename(doc_name),
|
||||||
@ -1136,7 +1136,7 @@ class BulkDownloadView(GenericAPIView):
|
|||||||
content = serializer.validated_data.get("content")
|
content = serializer.validated_data.get("content")
|
||||||
follow_filename_format = serializer.validated_data.get("follow_formatting")
|
follow_filename_format = serializer.validated_data.get("follow_formatting")
|
||||||
|
|
||||||
os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
|
settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
temp = tempfile.NamedTemporaryFile(
|
temp = tempfile.NamedTemporaryFile(
|
||||||
dir=settings.SCRATCH_DIR,
|
dir=settings.SCRATCH_DIR,
|
||||||
suffix="-compressed-archive",
|
suffix="-compressed-archive",
|
||||||
|
@ -689,7 +689,7 @@ USE_TZ = True
|
|||||||
|
|
||||||
setup_logging_queues()
|
setup_logging_queues()
|
||||||
|
|
||||||
os.makedirs(LOGGING_DIR, exist_ok=True)
|
LOGGING_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
LOGROTATE_MAX_SIZE = os.getenv("PAPERLESS_LOGROTATE_MAX_SIZE", 1024 * 1024)
|
LOGROTATE_MAX_SIZE = os.getenv("PAPERLESS_LOGROTATE_MAX_SIZE", 1024 * 1024)
|
||||||
LOGROTATE_MAX_BACKUPS = os.getenv("PAPERLESS_LOGROTATE_MAX_BACKUPS", 20)
|
LOGROTATE_MAX_BACKUPS = os.getenv("PAPERLESS_LOGROTATE_MAX_BACKUPS", 20)
|
||||||
|
@ -710,7 +710,7 @@ class MailAccountHandler(LoggingMixin):
|
|||||||
f"{message.subject} from {message.from_}",
|
f"{message.subject} from {message.from_}",
|
||||||
)
|
)
|
||||||
|
|
||||||
os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
|
settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
temp_dir = Path(
|
temp_dir = Path(
|
||||||
tempfile.mkdtemp(
|
tempfile.mkdtemp(
|
||||||
@ -793,7 +793,7 @@ class MailAccountHandler(LoggingMixin):
|
|||||||
tag_ids,
|
tag_ids,
|
||||||
doc_type,
|
doc_type,
|
||||||
):
|
):
|
||||||
os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
|
settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
_, temp_filename = tempfile.mkstemp(
|
_, temp_filename = tempfile.mkstemp(
|
||||||
prefix="paperless-mail-",
|
prefix="paperless-mail-",
|
||||||
dir=settings.SCRATCH_DIR,
|
dir=settings.SCRATCH_DIR,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user