This commit is contained in:
Your Name 2024-06-04 23:18:24 -04:00 committed by Henri Dickson
parent e7e2eabce2
commit e31e7f169a
6 changed files with 531 additions and 64 deletions

View file

@ -17,7 +17,7 @@ WORKDIR /neodb
RUN python -m venv /neodb-venv
RUN find misc/wheels-cache -type f | xargs -n 1 /neodb-venv/bin/python3 -m pip install || echo incompatible wheel ignored
RUN rm -rf misc/wheels-cache
RUN --mount=type=cache,sharing=locked,target=/root/.cache /neodb-venv/bin/python3 -m pip install --upgrade -r requirements.txt
RUN --mount=type=cache,sharing=locked,target=/root/.cache /neodb-venv/bin/python3 -m pip install --upgrade -r requirements.lock
WORKDIR /takahe
RUN python -m venv /takahe-venv

View file

@ -4,6 +4,71 @@ version = "0.9"
description = "🧩 self-hosted server tracking what you read/watch/listen/play, powering a global distributed community federating via ActivityPub."
readme = "README.md"
requires-python = ">= 3.12"
dependencies = [
"blurhash-python",
"cachetools",
"dateparser",
"discord.py",
"django~=4.2.11",
"django-anymail",
"django-auditlog>=3.0.0",
"django-bleach",
"django-compressor",
"django-cors-headers",
"django-environ",
"django-hijack",
"django-jsonform",
"django-maintenance-mode",
"django-markdownx",
"django-ninja",
"django-oauth-toolkit==2.3.0",
"django-polymorphic @ git+https://github.com/jazzband/django-polymorphic/@v4.0.0a",
"django-redis",
"django-rq",
"django-sass-processor",
"django-simple-history ",
"django-slack",
"django-tz-detect",
"django-user-messages",
"dnspython",
"easy-thumbnails",
"filetype",
"gunicorn",
"httpx",
"igdb-api-v4",
"langdetect",
"libsass",
"listparser",
"loguru",
"lxml",
"markdownify",
"mistune",
"openpyxl",
"podcastparser",
"psycopg2-binary",
"requests",
"rq",
"sentry-sdk",
"setproctitle",
"tqdm",
"typesense",
"urlman",
"validators",
]
[tool.rye]
managed = true
virtual = true
dev-dependencies = [
"pre-commit>=3.7.0",
"black~=24.4.2",
"django-stubs",
"djlint~=1.34.1",
"isort~=5.13.2",
"lxml-stubs",
"pyright==1.1.365",
"ruff",
]
[tool.pyright]
exclude = [ "media", ".venv", ".git", "playground", "catalog/*/tests.py", "journal/tests.py", "neodb", "**/migrations", "**/sites/douban_*", "neodb-takahe" ]
@ -17,10 +82,7 @@ indent=2
profile = "black"
[tool.mypy]
exclude = [
'^neodb-takahe/',
'^legacy/',
]
exclude = ['^neodb-takahe/', '^legacy/', '^media/', '^playground/', '^catalog/*/tests.py', '^journal/tests.py', '^neodb/', '.*migrations.*', '.*sites/douban_.*' ]
plugins = ["mypy_django_plugin.main"]
[tool.django-stubs]

264
requirements-dev.lock Normal file
View file

@ -0,0 +1,264 @@
# generated by rye
# use `rye lock` or `rye sync` to update this lockfile
#
# last locked with the following flags:
# pre: false
# features: []
# all-features: false
# with-sources: false
# generate-hashes: false
aiohttp==3.9.5
# via discord-py
aiosignal==1.3.1
# via aiohttp
annotated-types==0.7.0
# via pydantic
anyio==4.4.0
# via httpx
asgiref==3.8.1
# via django
# via django-cors-headers
# via django-stubs
attrs==23.2.0
# via aiohttp
beautifulsoup4==4.12.3
# via markdownify
black==24.4.2
bleach==5.0.1
# via django-bleach
blurhash-python==1.2.2
cachetools==5.3.3
certifi==2024.6.2
# via httpcore
# via httpx
# via requests
# via sentry-sdk
cffi==1.16.0
# via blurhash-python
# via cryptography
cfgv==3.4.0
# via pre-commit
charset-normalizer==3.3.2
# via requests
click==8.1.7
# via black
# via djlint
# via rq
colorama==0.4.6
# via djlint
cryptography==42.0.8
# via jwcrypto
cssbeautifier==1.15.1
# via djlint
dateparser==1.2.0
discord-py==2.3.2
distlib==0.3.8
# via virtualenv
django==4.2.13
# via django-anymail
# via django-appconf
# via django-auditlog
# via django-bleach
# via django-cors-headers
# via django-hijack
# via django-jsonform
# via django-markdownx
# via django-ninja
# via django-oauth-toolkit
# via django-polymorphic
# via django-redis
# via django-rq
# via django-simple-history
# via django-slack
# via django-stubs
# via django-stubs-ext
# via django-tz-detect
# via easy-thumbnails
django-anymail==10.3
django-appconf==1.0.6
# via django-compressor
django-auditlog==3.0.0
django-bleach==3.1.0
django-compressor==4.4
django-cors-headers==4.3.1
django-environ==0.11.2
django-hijack==3.5.0
django-jsonform==2.22.0
django-maintenance-mode==0.21.1
django-markdownx==4.0.7
django-ninja==1.1.0
django-oauth-toolkit==2.3.0
django-polymorphic @ git+https://github.com/jazzband/django-polymorphic/@1039f882b99f97bf657bd958c949ee6a3b00377a
django-redis==5.4.0
django-rq==2.10.2
django-sass-processor==1.4.1
django-simple-history==3.7.0
django-slack==5.19.0
django-stubs==5.0.2
django-stubs-ext==5.0.2
# via django-stubs
django-tz-detect==0.5.0
django-user-messages==1.0.0
djlint==1.34.1
dnspython==2.6.1
easy-thumbnails==2.8.5
editorconfig==0.12.4
# via cssbeautifier
# via jsbeautifier
et-xmlfile==1.1.0
# via openpyxl
filelock==3.14.0
# via virtualenv
filetype==1.2.0
frozenlist==1.4.1
# via aiohttp
# via aiosignal
gunicorn==22.0.0
h11==0.14.0
# via httpcore
html-tag-names==0.1.2
# via djlint
html-void-elements==0.1.0
# via djlint
httpcore==1.0.5
# via httpx
httpx==0.27.0
identify==2.5.36
# via pre-commit
idna==3.7
# via anyio
# via httpx
# via requests
# via yarl
igdb-api-v4==0.3.2
isort==5.13.2
jsbeautifier==1.15.1
# via cssbeautifier
# via djlint
json5==0.9.25
# via djlint
jwcrypto==1.5.6
# via django-oauth-toolkit
langdetect==1.0.9
libsass==0.23.0
listparser==0.20
loguru==0.7.2
lxml==5.2.2
lxml-stubs==0.5.1
markdown==3.6
# via django-markdownx
markdownify==0.12.1
mistune==3.0.2
multidict==6.0.5
# via aiohttp
# via yarl
mypy-extensions==1.0.0
# via black
nodeenv==1.9.1
# via pre-commit
# via pyright
oauthlib==3.2.2
# via django-oauth-toolkit
openpyxl==3.1.3
packaging==24.0
# via black
# via gunicorn
pathspec==0.12.1
# via black
# via djlint
pillow==10.3.0
# via blurhash-python
# via django-markdownx
# via easy-thumbnails
platformdirs==4.2.2
# via black
# via virtualenv
podcastparser==0.6.10
pre-commit==3.7.1
protobuf==5.27.0
# via igdb-api-v4
psycopg2-binary==2.9.9
pycparser==2.22
# via cffi
pydantic==2.7.3
# via django-ninja
pydantic-core==2.18.4
# via pydantic
pyright==1.1.365
python-dateutil==2.9.0.post0
# via dateparser
# via django-auditlog
python-fsutil==0.14.1
# via django-maintenance-mode
pytz==2024.1
# via dateparser
# via django-tz-detect
pyyaml==6.0.1
# via djlint
# via pre-commit
rcssmin==1.1.1
# via django-compressor
redis==5.0.4
# via django-redis
# via django-rq
# via rq
regex==2023.12.25
# via dateparser
# via djlint
requests==2.32.3
# via django-anymail
# via django-oauth-toolkit
# via django-slack
# via igdb-api-v4
# via typesense
rjsmin==1.2.1
# via django-compressor
rq==1.16.2
# via django-rq
ruff==0.4.7
sentry-sdk==2.4.0
setproctitle==1.3.3
six==1.16.0
# via bleach
# via blurhash-python
# via cssbeautifier
# via jsbeautifier
# via langdetect
# via markdownify
# via python-dateutil
sniffio==1.3.1
# via anyio
# via httpx
soupsieve==2.5
# via beautifulsoup4
sqlparse==0.5.0
# via django
tinycss2==1.1.1
# via bleach
tqdm==4.66.4
# via djlint
types-pyyaml==6.0.12.20240311
# via django-stubs
typesense==0.21.0
typing-extensions==4.12.1
# via django-stubs
# via django-stubs-ext
# via jwcrypto
# via pydantic
# via pydantic-core
tzlocal==5.2
# via dateparser
urllib3==2.2.1
# via django-anymail
# via requests
# via sentry-sdk
urlman==2.0.2
validators==0.28.3
virtualenv==20.26.2
# via pre-commit
webencodings==0.5.1
# via bleach
# via tinycss2
yarl==1.9.4
# via aiohttp

View file

@ -1,10 +0,0 @@
black~=24.4.2
#coverage
#django-debug-toolbar
django-stubs
djlint~=1.34.1
isort~=5.13.2
lxml-stubs
pre-commit
pyright==1.1.365
ruff

200
requirements.lock Normal file
View file

@ -0,0 +1,200 @@
# generated by rye
# use `rye lock` or `rye sync` to update this lockfile
#
# last locked with the following flags:
# pre: false
# features: []
# all-features: false
# with-sources: false
# generate-hashes: false
aiohttp==3.9.5
# via discord-py
aiosignal==1.3.1
# via aiohttp
annotated-types==0.7.0
# via pydantic
anyio==4.4.0
# via httpx
asgiref==3.8.1
# via django
# via django-cors-headers
attrs==23.2.0
# via aiohttp
beautifulsoup4==4.12.3
# via markdownify
bleach==5.0.1
# via django-bleach
blurhash-python==1.2.2
cachetools==5.3.3
certifi==2024.6.2
# via httpcore
# via httpx
# via requests
# via sentry-sdk
cffi==1.16.0
# via blurhash-python
# via cryptography
charset-normalizer==3.3.2
# via requests
click==8.1.7
# via rq
cryptography==42.0.8
# via jwcrypto
dateparser==1.2.0
discord-py==2.3.2
django==4.2.13
# via django-anymail
# via django-appconf
# via django-auditlog
# via django-bleach
# via django-cors-headers
# via django-hijack
# via django-jsonform
# via django-markdownx
# via django-ninja
# via django-oauth-toolkit
# via django-polymorphic
# via django-redis
# via django-rq
# via django-simple-history
# via django-slack
# via django-tz-detect
# via easy-thumbnails
django-anymail==10.3
django-appconf==1.0.6
# via django-compressor
django-auditlog==3.0.0
django-bleach==3.1.0
django-compressor==4.4
django-cors-headers==4.3.1
django-environ==0.11.2
django-hijack==3.5.0
django-jsonform==2.22.0
django-maintenance-mode==0.21.1
django-markdownx==4.0.7
django-ninja==1.1.0
django-oauth-toolkit==2.3.0
django-polymorphic @ git+https://github.com/jazzband/django-polymorphic/@1039f882b99f97bf657bd958c949ee6a3b00377a
django-redis==5.4.0
django-rq==2.10.2
django-sass-processor==1.4.1
django-simple-history==3.7.0
django-slack==5.19.0
django-tz-detect==0.5.0
django-user-messages==1.0.0
dnspython==2.6.1
easy-thumbnails==2.8.5
et-xmlfile==1.1.0
# via openpyxl
filetype==1.2.0
frozenlist==1.4.1
# via aiohttp
# via aiosignal
gunicorn==22.0.0
h11==0.14.0
# via httpcore
httpcore==1.0.5
# via httpx
httpx==0.27.0
idna==3.7
# via anyio
# via httpx
# via requests
# via yarl
igdb-api-v4==0.3.2
jwcrypto==1.5.6
# via django-oauth-toolkit
langdetect==1.0.9
libsass==0.23.0
listparser==0.20
loguru==0.7.2
lxml==5.2.2
markdown==3.6
# via django-markdownx
markdownify==0.12.1
mistune==3.0.2
multidict==6.0.5
# via aiohttp
# via yarl
oauthlib==3.2.2
# via django-oauth-toolkit
openpyxl==3.1.3
packaging==24.0
# via gunicorn
pillow==10.3.0
# via blurhash-python
# via django-markdownx
# via easy-thumbnails
podcastparser==0.6.10
protobuf==5.27.0
# via igdb-api-v4
psycopg2-binary==2.9.9
pycparser==2.22
# via cffi
pydantic==2.7.3
# via django-ninja
pydantic-core==2.18.4
# via pydantic
python-dateutil==2.9.0.post0
# via dateparser
# via django-auditlog
python-fsutil==0.14.1
# via django-maintenance-mode
pytz==2024.1
# via dateparser
# via django-tz-detect
rcssmin==1.1.1
# via django-compressor
redis==5.0.4
# via django-redis
# via django-rq
# via rq
regex==2024.5.15
# via dateparser
requests==2.32.3
# via django-anymail
# via django-oauth-toolkit
# via django-slack
# via igdb-api-v4
# via typesense
rjsmin==1.2.1
# via django-compressor
rq==1.16.2
# via django-rq
sentry-sdk==2.4.0
setproctitle==1.3.3
six==1.16.0
# via bleach
# via blurhash-python
# via langdetect
# via markdownify
# via python-dateutil
sniffio==1.3.1
# via anyio
# via httpx
soupsieve==2.5
# via beautifulsoup4
sqlparse==0.5.0
# via django
tinycss2==1.1.1
# via bleach
tqdm==4.66.4
typesense==0.21.0
typing-extensions==4.12.1
# via jwcrypto
# via pydantic
# via pydantic-core
tzlocal==5.2
# via dateparser
urllib3==2.2.1
# via django-anymail
# via requests
# via sentry-sdk
urlman==2.0.2
validators==0.28.3
webencodings==0.5.1
# via bleach
# via tinycss2
yarl==1.9.4
# via aiohttp

View file

@ -1,49 +0,0 @@
blurhash-python
cachetools
dateparser
discord.py
django~=4.2.11
django-anymail
django-auditlog>=3.0.0
django-bleach
django-compressor
django-cors-headers
django-environ
django-hijack
django-jsonform
django-maintenance-mode
django-markdownx
django-ninja
django-oauth-toolkit==2.3.0
django-polymorphic @ git+https://github.com/jazzband/django-polymorphic/@v4.0.0a
django-redis
django-rq
django-sass-processor
django-simple-history # no longer used but kept for migration code which is used by tests
django-slack
django-tz-detect
django-user-messages
dnspython
easy-thumbnails
filetype
gunicorn
httpx
igdb-api-v4
langdetect
libsass
listparser
loguru
lxml
markdownify
mistune
openpyxl
podcastparser
psycopg2-binary
requests
rq
sentry-sdk
setproctitle
tqdm
typesense
urlman
validators