mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-11-25 23:59:09 -06:00
Compare commits
3 Commits
dependabot
...
l10n_dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a49e2a3db8 | ||
|
|
1e61a6cd6a | ||
|
|
a76731ca89 |
@@ -8,14 +8,17 @@ ARG DEBIAN_FRONTEND=noninteractive
|
|||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
|
|
||||||
# Can be workflow provided, defaults set for manual building
|
# Can be workflow provided, defaults set for manual building
|
||||||
ARG JBIG2ENC_VERSION=0.29
|
ARG JBIG2ENC_VERSION=0.30
|
||||||
|
|
||||||
# Set Python environment variables
|
# Set Python environment variables
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1 \
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
||||||
PYTHONUNBUFFERED=1 \
|
PYTHONUNBUFFERED=1 \
|
||||||
# Ignore warning from Whitenoise
|
# Ignore warning from Whitenoise
|
||||||
PYTHONWARNINGS="ignore:::django.http.response:517" \
|
PYTHONWARNINGS="ignore:::django.http.response:517" \
|
||||||
PNGX_CONTAINERIZED=1
|
PNGX_CONTAINERIZED=1 \
|
||||||
|
# https://docs.astral.sh/uv/reference/settings/#link-mode
|
||||||
|
UV_LINK_MODE=copy \
|
||||||
|
UV_CACHE_DIR=/cache/uv/
|
||||||
|
|
||||||
#
|
#
|
||||||
# Begin installation and configuration
|
# Begin installation and configuration
|
||||||
@@ -81,7 +84,7 @@ RUN set -eux \
|
|||||||
&& apt-get update \
|
&& apt-get update \
|
||||||
&& apt-get install --yes --quiet ${PYTHON_PACKAGES}
|
&& apt-get install --yes --quiet ${PYTHON_PACKAGES}
|
||||||
|
|
||||||
COPY --from=ghcr.io/astral-sh/uv:0.7.8 /uv /bin/uv
|
COPY --from=ghcr.io/astral-sh/uv:0.9.10 /uv /bin/uv
|
||||||
|
|
||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
@@ -103,6 +106,7 @@ COPY [ \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& echo "Configuring ImageMagick" \
|
&& echo "Configuring ImageMagick" \
|
||||||
|
&& mkdir -p /etc/ImageMagick-6 \
|
||||||
&& mv paperless-policy.xml /etc/ImageMagick-6/policy.xml
|
&& mv paperless-policy.xml /etc/ImageMagick-6/policy.xml
|
||||||
|
|
||||||
|
|
||||||
@@ -118,7 +122,7 @@ ARG BUILD_PACKAGES="\
|
|||||||
pkg-config"
|
pkg-config"
|
||||||
|
|
||||||
# hadolint ignore=DL3042
|
# hadolint ignore=DL3042
|
||||||
RUN --mount=type=cache,target=/root/.cache/uv,id=pip-cache \
|
RUN --mount=type=cache,target=/cache/uv/,id=uv-cache \
|
||||||
set -eux \
|
set -eux \
|
||||||
&& echo "Installing build system packages" \
|
&& echo "Installing build system packages" \
|
||||||
&& apt-get update \
|
&& apt-get update \
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ dependencies = [
|
|||||||
"drf-writable-nested~=0.7.1",
|
"drf-writable-nested~=0.7.1",
|
||||||
"filelock~=3.20.0",
|
"filelock~=3.20.0",
|
||||||
"flower~=2.0.1",
|
"flower~=2.0.1",
|
||||||
"gotenberg-client~=0.13.0",
|
"gotenberg-client~=0.12.0",
|
||||||
"httpx-oauth~=0.16",
|
"httpx-oauth~=0.16",
|
||||||
"imap-tools~=1.11.0",
|
"imap-tools~=1.11.0",
|
||||||
"inotifyrecursive~=0.3",
|
"inotifyrecursive~=0.3",
|
||||||
@@ -80,7 +80,7 @@ optional-dependencies.postgres = [
|
|||||||
"psycopg[c,pool]==3.2.12",
|
"psycopg[c,pool]==3.2.12",
|
||||||
# Direct dependency for proper resolution of the pre-built wheels
|
# Direct dependency for proper resolution of the pre-built wheels
|
||||||
"psycopg-c==3.2.12",
|
"psycopg-c==3.2.12",
|
||||||
"psycopg-pool==3.2.8",
|
"psycopg-pool==3.2.7",
|
||||||
]
|
]
|
||||||
optional-dependencies.webserver = [
|
optional-dependencies.webserver = [
|
||||||
"granian[uvloop]~=2.5.1",
|
"granian[uvloop]~=2.5.1",
|
||||||
@@ -115,7 +115,7 @@ testing = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
lint = [
|
lint = [
|
||||||
"pre-commit~=4.5.0",
|
"pre-commit~=4.4.0",
|
||||||
"pre-commit-uv~=4.2.0",
|
"pre-commit-uv~=4.2.0",
|
||||||
"ruff~=0.14.0",
|
"ruff~=0.14.0",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -892,7 +892,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/admin/logs/logs.component.html</context>
|
<context context-type="sourcefile">src/app/components/admin/logs/logs.component.html</context>
|
||||||
<context context-type="linenumber">60</context>
|
<context context-type="linenumber">60</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Jump to bottom</target>
|
<target state="translated">Vés al final</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1255048712725285892" datatype="html">
|
<trans-unit id="1255048712725285892" datatype="html">
|
||||||
<source>Options to customize appearance, notifications and more. Settings apply to the <strong>current user only</strong>.</source>
|
<source>Options to customize appearance, notifications and more. Settings apply to the <strong>current user only</strong>.</source>
|
||||||
|
|||||||
@@ -6222,7 +6222,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
||||||
<context context-type="linenumber">9</context>
|
<context context-type="linenumber">9</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Select all pages</target>
|
<target state="translated">모든 페이지 선택</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="234610397929376642" datatype="html">
|
<trans-unit id="234610397929376642" datatype="html">
|
||||||
<source>Deselect all pages</source>
|
<source>Deselect all pages</source>
|
||||||
@@ -6230,7 +6230,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
||||||
<context context-type="linenumber">12</context>
|
<context context-type="linenumber">12</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Deselect all pages</target>
|
<target state="translated">모든 페이지 선택 해제</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2530246103796817298" datatype="html">
|
<trans-unit id="2530246103796817298" datatype="html">
|
||||||
<source>Rotate selected pages counter-clockwise</source>
|
<source>Rotate selected pages counter-clockwise</source>
|
||||||
@@ -6238,7 +6238,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
||||||
<context context-type="linenumber">17</context>
|
<context context-type="linenumber">17</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Rotate selected pages counter-clockwise</target>
|
<target state="translated">선택한 페이지 반시계방향으로 회전</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4787219034890830544" datatype="html">
|
<trans-unit id="4787219034890830544" datatype="html">
|
||||||
<source>Rotate selected pages clockwise</source>
|
<source>Rotate selected pages clockwise</source>
|
||||||
@@ -6246,7 +6246,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
||||||
<context context-type="linenumber">20</context>
|
<context context-type="linenumber">20</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Rotate selected pages clockwise</target>
|
<target state="translated">선택한 페이지 시계방향으로 회전</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="3441043765105475130" datatype="html">
|
<trans-unit id="3441043765105475130" datatype="html">
|
||||||
<source>Delete selected pages</source>
|
<source>Delete selected pages</source>
|
||||||
@@ -6254,7 +6254,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
||||||
<context context-type="linenumber">23</context>
|
<context context-type="linenumber">23</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Delete selected pages</target>
|
<target state="translated">선택한 페이지 삭제</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="3873740163706409154" datatype="html">
|
<trans-unit id="3873740163706409154" datatype="html">
|
||||||
<source>Rotate page counter-clockwise</source>
|
<source>Rotate page counter-clockwise</source>
|
||||||
@@ -6994,7 +6994,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/system-status-dialog/system-status-dialog.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/system-status-dialog/system-status-dialog.component.html</context>
|
||||||
<context context-type="linenumber">105</context>
|
<context context-type="linenumber">105</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Tasks Queue</target>
|
<target state="translated">작업 대기열</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6911698235105017958" datatype="html">
|
<trans-unit id="6911698235105017958" datatype="html">
|
||||||
<source>Redis Status</source>
|
<source>Redis Status</source>
|
||||||
@@ -7042,7 +7042,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/system-status-dialog/system-status-dialog.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/system-status-dialog/system-status-dialog.component.html</context>
|
||||||
<context context-type="linenumber">245</context>
|
<context context-type="linenumber">245</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Run Task</target>
|
<target state="translated">작업 실행</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4089509911694721896" datatype="html">
|
<trans-unit id="4089509911694721896" datatype="html">
|
||||||
<source>Last Updated</source>
|
<source>Last Updated</source>
|
||||||
@@ -7090,7 +7090,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/system-status-dialog/system-status-dialog.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/system-status-dialog/system-status-dialog.component.html</context>
|
||||||
<context context-type="linenumber">257</context>
|
<context context-type="linenumber">257</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">WebSocket Connection</target>
|
<target state="translated">WebSocket 연결</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="8998179362936748717" datatype="html">
|
<trans-unit id="8998179362936748717" datatype="html">
|
||||||
<source>OK</source>
|
<source>OK</source>
|
||||||
@@ -7480,7 +7480,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
|
||||||
<context context-type="linenumber">58</context>
|
<context context-type="linenumber">58</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Print</target>
|
<target state="translated">인쇄</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1418444397960583910" datatype="html">
|
<trans-unit id="1418444397960583910" datatype="html">
|
||||||
<source>More like this</source>
|
<source>More like this</source>
|
||||||
@@ -8036,7 +8036,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
|
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
|
||||||
<context context-type="linenumber">1096</context>
|
<context context-type="linenumber">1096</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Error downloading document</target>
|
<target state="translated">문서 다운로드 중 오류 발생</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4458954481601077369" datatype="html">
|
<trans-unit id="4458954481601077369" datatype="html">
|
||||||
<source>Page Fit</source>
|
<source>Page Fit</source>
|
||||||
@@ -8068,7 +8068,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
|
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
|
||||||
<context context-type="linenumber">1460</context>
|
<context context-type="linenumber">1460</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Print failed.</target>
|
<target state="translated">인쇄 실패.</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6457245677384603573" datatype="html">
|
<trans-unit id="6457245677384603573" datatype="html">
|
||||||
<source>Error loading document for printing.</source>
|
<source>Error loading document for printing.</source>
|
||||||
@@ -9848,7 +9848,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/manage/mail/processed-mail-dialog/processed-mail-dialog.component.html</context>
|
<context context-type="sourcefile">src/app/components/manage/mail/processed-mail-dialog/processed-mail-dialog.component.html</context>
|
||||||
<context context-type="linenumber">33</context>
|
<context context-type="linenumber">33</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Received</target>
|
<target state="translated">받음</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4749295647449765550" datatype="html">
|
<trans-unit id="4749295647449765550" datatype="html">
|
||||||
<source>Processed</source>
|
<source>Processed</source>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -3,7 +3,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-11-14 16:09+0000\n"
|
"POT-Creation-Date: 2025-11-14 16:09+0000\n"
|
||||||
"PO-Revision-Date: 2025-11-20 00:35\n"
|
"PO-Revision-Date: 2025-11-24 12:15\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Catalan\n"
|
"Language-Team: Catalan\n"
|
||||||
"Language: ca_ES\n"
|
"Language: ca_ES\n"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-11-14 16:09+0000\n"
|
"POT-Creation-Date: 2025-11-14 16:09+0000\n"
|
||||||
"PO-Revision-Date: 2025-11-14 16:11\n"
|
"PO-Revision-Date: 2025-11-25 00:35\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Korean\n"
|
"Language-Team: Korean\n"
|
||||||
"Language: ko_KR\n"
|
"Language: ko_KR\n"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-11-14 16:09+0000\n"
|
"POT-Creation-Date: 2025-11-14 16:09+0000\n"
|
||||||
"PO-Revision-Date: 2025-11-21 23:54\n"
|
"PO-Revision-Date: 2025-11-25 12:16\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Turkish\n"
|
"Language-Team: Turkish\n"
|
||||||
"Language: tr_TR\n"
|
"Language: tr_TR\n"
|
||||||
|
|||||||
@@ -38,10 +38,19 @@ def handle_social_account_updated(sender, request, sociallogin, **kwargs):
|
|||||||
"""
|
"""
|
||||||
from django.contrib.auth.models import Group
|
from django.contrib.auth.models import Group
|
||||||
|
|
||||||
social_account_groups = sociallogin.account.extra_data.get(
|
extra_data = sociallogin.account.extra_data or {}
|
||||||
|
social_account_groups = extra_data.get(
|
||||||
"groups",
|
"groups",
|
||||||
[],
|
[],
|
||||||
) # None if not found
|
) # pre-allauth 65.11.0 structure
|
||||||
|
|
||||||
|
if not social_account_groups:
|
||||||
|
# allauth 65.11.0+ nests claims under `userinfo`/`id_token`
|
||||||
|
social_account_groups = (
|
||||||
|
extra_data.get("userinfo", {}).get("groups")
|
||||||
|
or extra_data.get("id_token", {}).get("groups")
|
||||||
|
or []
|
||||||
|
)
|
||||||
if settings.SOCIAL_ACCOUNT_SYNC_GROUPS and social_account_groups is not None:
|
if settings.SOCIAL_ACCOUNT_SYNC_GROUPS and social_account_groups is not None:
|
||||||
groups = Group.objects.filter(name__in=social_account_groups)
|
groups = Group.objects.filter(name__in=social_account_groups)
|
||||||
logger.debug(
|
logger.debug(
|
||||||
|
|||||||
@@ -192,6 +192,68 @@ class TestSyncSocialLoginGroups(TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(list(user.groups.all()), [])
|
self.assertEqual(list(user.groups.all()), [])
|
||||||
|
|
||||||
|
@override_settings(SOCIAL_ACCOUNT_SYNC_GROUPS=True)
|
||||||
|
def test_userinfo_groups(self):
|
||||||
|
"""
|
||||||
|
GIVEN:
|
||||||
|
- Enabled group syncing, and `groups` nested under `userinfo`
|
||||||
|
WHEN:
|
||||||
|
- The social login is updated via signal after login
|
||||||
|
THEN:
|
||||||
|
- The user's groups are updated using `userinfo.groups`
|
||||||
|
"""
|
||||||
|
group = Group.objects.create(name="group1")
|
||||||
|
user = User.objects.create_user(username="testuser")
|
||||||
|
sociallogin = Mock(
|
||||||
|
user=user,
|
||||||
|
account=Mock(
|
||||||
|
extra_data={
|
||||||
|
"userinfo": {
|
||||||
|
"groups": ["group1"],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
handle_social_account_updated(
|
||||||
|
sender=None,
|
||||||
|
request=HttpRequest(),
|
||||||
|
sociallogin=sociallogin,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(list(user.groups.all()), [group])
|
||||||
|
|
||||||
|
@override_settings(SOCIAL_ACCOUNT_SYNC_GROUPS=True)
|
||||||
|
def test_id_token_groups_fallback(self):
|
||||||
|
"""
|
||||||
|
GIVEN:
|
||||||
|
- Enabled group syncing, and `groups` only under `id_token`
|
||||||
|
WHEN:
|
||||||
|
- The social login is updated via signal after login
|
||||||
|
THEN:
|
||||||
|
- The user's groups are updated using `id_token.groups`
|
||||||
|
"""
|
||||||
|
group = Group.objects.create(name="group1")
|
||||||
|
user = User.objects.create_user(username="testuser")
|
||||||
|
sociallogin = Mock(
|
||||||
|
user=user,
|
||||||
|
account=Mock(
|
||||||
|
extra_data={
|
||||||
|
"id_token": {
|
||||||
|
"groups": ["group1"],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
handle_social_account_updated(
|
||||||
|
sender=None,
|
||||||
|
request=HttpRequest(),
|
||||||
|
sociallogin=sociallogin,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(list(user.groups.all()), [group])
|
||||||
|
|
||||||
|
|
||||||
class TestUserGroupDeletionCleanup(TestCase):
|
class TestUserGroupDeletionCleanup(TestCase):
|
||||||
"""
|
"""
|
||||||
|
|||||||
32
uv.lock
generated
32
uv.lock
generated
@@ -331,15 +331,15 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "channels"
|
name = "channels"
|
||||||
version = "4.3.2"
|
version = "4.3.1"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "asgiref", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
{ name = "asgiref", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
||||||
{ name = "django", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
{ name = "django", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/74/92/b18d4bb54d14986a8b35215a1c9e6a7f9f4d57ca63ac9aee8290ebb4957d/channels-4.3.2.tar.gz", hash = "sha256:f2bb6bfb73ad7fb4705041d07613c7b4e69528f01ef8cb9fb6c21d9295f15667", size = 27023, upload-time = "2025-11-20T15:13:05.102Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/12/a0/46450fcf9e56af18a6b0440ba49db6635419bb7bc84142c35f4143b1a66c/channels-4.3.1.tar.gz", hash = "sha256:97413ffd674542db08e16a9ef09cd86ec0113e5f8125fbd33cf0854adcf27cdb", size = 26896, upload-time = "2025-08-01T13:25:19.952Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/16/34/c32915288b7ef482377b6adc401192f98c6a99b3a145423d3b8aed807898/channels-4.3.2-py3-none-any.whl", hash = "sha256:fef47e9055a603900cf16cef85f050d522d9ac4b3daccf24835bd9580705c176", size = 31313, upload-time = "2025-11-20T15:13:02.357Z" },
|
{ url = "https://files.pythonhosted.org/packages/89/1c/eae1c2a8c195760376e7f65d0bdcc3e966695d29cfbe5c54841ce5c71408/channels-4.3.1-py3-none-any.whl", hash = "sha256:b091d4b26f91d807de3e84aead7ba785314f27eaf5bac31dd51b1c956b883859", size = 31286, upload-time = "2025-08-01T13:25:18.845Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1073,15 +1073,15 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gotenberg-client"
|
name = "gotenberg-client"
|
||||||
version = "0.13.0"
|
version = "0.12.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "httpx", extra = ["http2"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
{ name = "httpx", extra = ["http2"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
||||||
{ name = "typing-extensions", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" },
|
{ name = "typing-extensions", marker = "(python_full_version < '3.11' and sys_platform == 'darwin') or (python_full_version < '3.11' and sys_platform == 'linux')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/ef/ad/a8ae34ad79918ee2691498e36882a8275603362316be1a57f26911f01d87/gotenberg_client-0.13.0.tar.gz", hash = "sha256:0fb2425d0e1e4f143285ecde90f7687f4d234d2b23316f5d42015337d336a4ab", size = 1211055, upload-time = "2025-11-18T16:15:33.735Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/61/6d/07ea213c146bbe91dffebff2d8f4dc61e7076d3dd34d4fd1467f9163e752/gotenberg_client-0.12.0.tar.gz", hash = "sha256:1ab50878024469fc003c414ee9810ceeb00d4d7d7c36bd2fb75318fbff139e9b", size = 1210884, upload-time = "2025-10-15T15:32:37.669Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/ce/7b/8b301f097027403d9b66fad83e2fd5a5b2bcccb592832473db895671a0ee/gotenberg_client-0.13.0-py3-none-any.whl", hash = "sha256:e787ee39d1d222629b2e2e153402853e84a1a76758b261859b0c81384cdec4e5", size = 51054, upload-time = "2025-11-18T16:15:32.294Z" },
|
{ url = "https://files.pythonhosted.org/packages/12/39/fcb24ff053b1be7e5124f56c3d358706a23a328f685c6db33bc9dbc5472d/gotenberg_client-0.12.0-py3-none-any.whl", hash = "sha256:a540b35ac518e902c2860a88fbe448c15fe5a56fe8ec8604e6a2c8c2228fd0cb", size = 51051, upload-time = "2025-10-15T15:32:36.32Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2281,7 +2281,7 @@ requires-dist = [
|
|||||||
{ name = "drf-writable-nested", specifier = "~=0.7.1" },
|
{ name = "drf-writable-nested", specifier = "~=0.7.1" },
|
||||||
{ name = "filelock", specifier = "~=3.20.0" },
|
{ name = "filelock", specifier = "~=3.20.0" },
|
||||||
{ name = "flower", specifier = "~=2.0.1" },
|
{ name = "flower", specifier = "~=2.0.1" },
|
||||||
{ name = "gotenberg-client", specifier = "~=0.13.0" },
|
{ name = "gotenberg-client", specifier = "~=0.12.0" },
|
||||||
{ name = "granian", extras = ["uvloop"], marker = "extra == 'webserver'", specifier = "~=2.5.1" },
|
{ name = "granian", extras = ["uvloop"], marker = "extra == 'webserver'", specifier = "~=2.5.1" },
|
||||||
{ name = "httpx-oauth", specifier = "~=0.16" },
|
{ name = "httpx-oauth", specifier = "~=0.16" },
|
||||||
{ name = "imap-tools", specifier = "~=1.11.0" },
|
{ name = "imap-tools", specifier = "~=1.11.0" },
|
||||||
@@ -2297,7 +2297,7 @@ requires-dist = [
|
|||||||
{ name = "psycopg-c", marker = "python_full_version == '3.12.*' and platform_machine == 'aarch64' and sys_platform == 'linux' and extra == 'postgres'", url = "https://github.com/paperless-ngx/builder/releases/download/psycopg-bookworm-3.2.12/psycopg_c-3.2.12-cp312-cp312-linux_aarch64.whl" },
|
{ name = "psycopg-c", marker = "python_full_version == '3.12.*' and platform_machine == 'aarch64' and sys_platform == 'linux' and extra == 'postgres'", url = "https://github.com/paperless-ngx/builder/releases/download/psycopg-bookworm-3.2.12/psycopg_c-3.2.12-cp312-cp312-linux_aarch64.whl" },
|
||||||
{ name = "psycopg-c", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra == 'postgres'", url = "https://github.com/paperless-ngx/builder/releases/download/psycopg-bookworm-3.2.12/psycopg_c-3.2.12-cp312-cp312-linux_x86_64.whl" },
|
{ name = "psycopg-c", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra == 'postgres'", url = "https://github.com/paperless-ngx/builder/releases/download/psycopg-bookworm-3.2.12/psycopg_c-3.2.12-cp312-cp312-linux_x86_64.whl" },
|
||||||
{ name = "psycopg-c", marker = "(python_full_version != '3.12.*' and platform_machine == 'aarch64' and extra == 'postgres') or (python_full_version != '3.12.*' and platform_machine == 'x86_64' and extra == 'postgres') or (platform_machine != 'aarch64' and platform_machine != 'x86_64' and extra == 'postgres') or (sys_platform != 'linux' and extra == 'postgres')", specifier = "==3.2.12" },
|
{ name = "psycopg-c", marker = "(python_full_version != '3.12.*' and platform_machine == 'aarch64' and extra == 'postgres') or (python_full_version != '3.12.*' and platform_machine == 'x86_64' and extra == 'postgres') or (platform_machine != 'aarch64' and platform_machine != 'x86_64' and extra == 'postgres') or (sys_platform != 'linux' and extra == 'postgres')", specifier = "==3.2.12" },
|
||||||
{ name = "psycopg-pool", marker = "extra == 'postgres'", specifier = "==3.2.8" },
|
{ name = "psycopg-pool", marker = "extra == 'postgres'", specifier = "==3.2.7" },
|
||||||
{ name = "python-dateutil", specifier = "~=2.9.0" },
|
{ name = "python-dateutil", specifier = "~=2.9.0" },
|
||||||
{ name = "python-dotenv", specifier = "~=1.2.1" },
|
{ name = "python-dotenv", specifier = "~=1.2.1" },
|
||||||
{ name = "python-gnupg", specifier = "~=0.5.4" },
|
{ name = "python-gnupg", specifier = "~=0.5.4" },
|
||||||
@@ -2326,7 +2326,7 @@ dev = [
|
|||||||
{ name = "imagehash" },
|
{ name = "imagehash" },
|
||||||
{ name = "mkdocs-glightbox", specifier = "~=0.5.1" },
|
{ name = "mkdocs-glightbox", specifier = "~=0.5.1" },
|
||||||
{ name = "mkdocs-material", specifier = "~=9.7.0" },
|
{ name = "mkdocs-material", specifier = "~=9.7.0" },
|
||||||
{ name = "pre-commit", specifier = "~=4.5.0" },
|
{ name = "pre-commit", specifier = "~=4.4.0" },
|
||||||
{ name = "pre-commit-uv", specifier = "~=4.2.0" },
|
{ name = "pre-commit-uv", specifier = "~=4.2.0" },
|
||||||
{ name = "pytest", specifier = "~=8.4.1" },
|
{ name = "pytest", specifier = "~=8.4.1" },
|
||||||
{ name = "pytest-cov", specifier = "~=7.0.0" },
|
{ name = "pytest-cov", specifier = "~=7.0.0" },
|
||||||
@@ -2344,7 +2344,7 @@ docs = [
|
|||||||
{ name = "mkdocs-material", specifier = "~=9.7.0" },
|
{ name = "mkdocs-material", specifier = "~=9.7.0" },
|
||||||
]
|
]
|
||||||
lint = [
|
lint = [
|
||||||
{ name = "pre-commit", specifier = "~=4.5.0" },
|
{ name = "pre-commit", specifier = "~=4.4.0" },
|
||||||
{ name = "pre-commit-uv", specifier = "~=4.2.0" },
|
{ name = "pre-commit-uv", specifier = "~=4.2.0" },
|
||||||
{ name = "ruff", specifier = "~=0.14.0" },
|
{ name = "ruff", specifier = "~=0.14.0" },
|
||||||
]
|
]
|
||||||
@@ -2625,7 +2625,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pre-commit"
|
name = "pre-commit"
|
||||||
version = "4.5.0"
|
version = "4.4.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "cfgv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
{ name = "cfgv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
||||||
@@ -2634,9 +2634,9 @@ dependencies = [
|
|||||||
{ name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
{ name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
||||||
{ name = "virtualenv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
{ name = "virtualenv", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/f4/9b/6a4ffb4ed980519da959e1cf3122fc6cb41211daa58dbae1c73c0e519a37/pre_commit-4.5.0.tar.gz", hash = "sha256:dc5a065e932b19fc1d4c653c6939068fe54325af8e741e74e88db4d28a4dd66b", size = 198428, upload-time = "2025-11-22T21:02:42.304Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/a6/49/7845c2d7bf6474efd8e27905b51b11e6ce411708c91e829b93f324de9929/pre_commit-4.4.0.tar.gz", hash = "sha256:f0233ebab440e9f17cabbb558706eb173d19ace965c68cdce2c081042b4fab15", size = 197501, upload-time = "2025-11-08T21:12:11.607Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/5d/c4/b2d28e9d2edf4f1713eb3c29307f1a63f3d67cf09bdda29715a36a68921a/pre_commit-4.5.0-py2.py3-none-any.whl", hash = "sha256:25e2ce09595174d9c97860a95609f9f852c0614ba602de3561e267547f2335e1", size = 226429, upload-time = "2025-11-22T21:02:40.836Z" },
|
{ url = "https://files.pythonhosted.org/packages/27/11/574fe7d13acf30bfd0a8dd7fa1647040f2b8064f13f43e8c963b1e65093b/pre_commit-4.4.0-py2.py3-none-any.whl", hash = "sha256:b35ea52957cbf83dcc5d8ee636cbead8624e3a15fbfa61a370e42158ac8a5813", size = 226049, upload-time = "2025-11-08T21:12:10.228Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2731,14 +2731,14 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "psycopg-pool"
|
name = "psycopg-pool"
|
||||||
version = "3.2.8"
|
version = "3.2.7"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
{ name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/b7/20/10064379ed363b7a2a6da3aca986a668c792a8145d7344854ab14c7d7292/psycopg_pool-3.2.8.tar.gz", hash = "sha256:854e17c2a637c3b9f8d8b24faad57d4cf850baf3fc03ca56ef7e5b4998e391b9", size = 29956, upload-time = "2025-11-21T22:34:35.453Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/9d/8f/3ec52b17087c2ed5fa32b64fd4814dde964c9aa4bd49d0d30fc24725ca6d/psycopg_pool-3.2.7.tar.gz", hash = "sha256:a77d531bfca238e49e5fb5832d65b98e69f2c62bfda3d2d4d833696bdc9ca54b", size = 29765, upload-time = "2025-10-26T00:46:10.379Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/e3/5f/947b4b4e51d67c4c9e97626c815caa9b241a62fd66ddd0d00a4a572013f5/psycopg_pool-3.2.8-py3-none-any.whl", hash = "sha256:5474137f3a58e697e0141d0311e70ec067fc4466031496d7f9ef3e2c28a1dc09", size = 38507, upload-time = "2025-11-21T22:34:31Z" },
|
{ url = "https://files.pythonhosted.org/packages/e7/59/74e752f605c6f0e351d4cf1c54fb9a1616dc800db4572b95bbfbb1a6225f/psycopg_pool-3.2.7-py3-none-any.whl", hash = "sha256:4b47bb59d887ef5da522eb63746b9f70e2faf967d34aac4f56ffc65e9606728f", size = 38232, upload-time = "2025-10-26T00:46:00.496Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
Reference in New Issue
Block a user