[tool.poetry] name = "funkwhale-api" version = "1.2.9" description = "Funkwhale API" authors = ["Funkwhale Collective"] homepage = "https://funkwhale.audio" repository = "https://dev.funkwhale.audio/funkwhale/funkwhale" documentation = "https://docs.funkwhale.audio" license = "AGPL-3.0-only" packages = [ { include = "funkwhale_api" }, { include = "config" }, ] include = [ { path = "*.html" }, { path = "*.json" }, { path = "*.png" }, { path = "*.txt" }, ] exclude = ["tests"] [tool.poetry.scripts] funkwhale-manage = 'funkwhale_api.main:main' [tool.poetry.dependencies] python = "^3.7" Django = "==3.2.16" django-environ = "==0.9.0" Pillow = "==9.3.0" django-allauth = "==0.42.0" psycopg2 = "==2.9.5" pytz = "==2022.7" django-redis = "==5.2.0" redis = "==4.4.0" kombu = "==5.2.4" celery = "==5.2.7" django-cors-headers = "==3.13.0" musicbrainzngs = "==0.7.1" djangorestframework = "==3.14.0" arrow = "==1.2.3" persisting-theory = "==1.0" django-versatileimagefield = "==2.2" django-filter = "==22.1" mutagen = "==1.46.0" django-dynamic-preferences = "==1.14.0" python-magic = "==0.4.27" channels = {extras = ["daphne"], version = "==4.0.0"} channels-redis = "==4.0.0" gunicorn = "==20.1.0" cryptography = "==38.0.4" django-cleanup = "==6.0.0" requests = "==2.28.1" pydub = "==0.25.1" PyLD = "==2.0.3" aiohttp = "==3.8.3" django-oauth-toolkit = "2.2.0" django-storages = "==1.13.1" boto3 = "==1.26.32" unicode-slugify = "==0.1.5" django-cacheops = "==6.1" service-identity = "==21.1.0" click = "==8.1.3" Markdown = "==3.4.1" bleach = "==5.0.1" feedparser = "==6.0.10" watchdog = "==2.2.0" asgiref = "==3.5.2" #1516 ipython = "==7.34.0" python-ldap = "==3.4.3" django-auth-ldap = "==4.1.0" uvicorn = {version = "==0.20.0", extras = ["standard"]} django-cache-memoize = "0.1.10" requests-http-message-signatures = "==0.3.1" drf-spectacular = "==0.25.1" sentry-sdk = "==1.12.0" pluralizer = "==1.2.0" importlib_metadata = {version = "==4.13.0", python = "<=3.7"} # Keep support python 3.7, can be removed if we drop support dj-rest-auth = {extras = ["with_social"], version = "2.2.5"} [tool.poetry.dev-dependencies] flake8 = "==3.9.2" pytest = "==7.2.0" pytest-cov = "==4.0.0" pytest-django = "==4.5.2" pytest-env = "==0.8.1" pytest-mock = "==3.10.0" pytest-randomly = "==3.12.0" pytest-sugar = "==0.9.6" pytest-asyncio = "==0.20.3" requests-mock = "==1.10.0" Faker = "==15.3.4" coverage = { version = "==6.5.0", extras = ["toml"] } django-coverage-plugin = "==3.0.0" factory-boy = "==3.2.1" django-debug-toolbar = "==3.8.1" asynctest = "==0.13.0" aioresponses = "==0.7.4" prompt-toolkit = "==3.0.36" black = "==22.12.0" ipdb = "==0.13.11" debugpy = "==1.6.4" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.pylint.master] load-plugins = [ "pylint_common", "pylint_django", "pylint_celery", ] [tool.pylint.messages_control] disable = [ "invalid-name", "missing-class-docstring", "missing-function-docstring", "missing-module-docstring", ] [tool.pylint.design] max-parents = 13 [tool.pylint.format] max-line-length = 120 [tool.pytest.ini_options] python_files = [ "tests.py", "test_*.py", "*_tests.py", ] testpaths = ["tests"] addopts = "-p no:warnings" env = [ "SECRET_KEY=test", "EMAIL_CONFIG=consolemail://", "CELERY_BROKER_URL=memory://", "CELERY_TASK_ALWAYS_EAGER=True", "FUNKWHALE_HOSTNAME_SUFFIX=", "FUNKWHALE_HOSTNAME_PREFIX=", "FUNKWHALE_HOSTNAME=test.federation", "FEDERATION_HOSTNAME=test.federation", "FUNKWHALE_URL=https://test.federation", "DEBUG_TOOLBAR_ENABLED=False", "DEBUG=False", "WEAK_PASSWORDS=True", "CREATE_IMAGE_THUMBNAILS=False", "FORCE_HTTPS_URLS=False", "FUNKWHALE_SPA_HTML_ROOT=http://noop/", "PROXY_MEDIA=true", "MUSIC_USE_DENORMALIZATION=true", "EXTERNAL_MEDIA_PROXY_ENABLED=true", "DISABLE_PASSWORD_VALIDATORS=false", "DISABLE_PASSWORD_VALIDATORS=false", "FUNKWHALE_PLUGINS=", "MUSIC_DIRECTORY_PATH=/music", ] [tool.coverage.run] plugins = ["django_coverage_plugin"] include = ["funkwhale_api/*"] omit = [ "*migrations*", "*tests*", "funkwhale_api/schema.py", ]