diff --git a/pyproject.toml b/pyproject.toml index db0ebe5..4249ff0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,24 +9,23 @@ dependencies = [ 'celery~=5.0', 'psycopg~=3.1.10', - 'django-axes', + 'django-axes~=6.0.4', 'django-celery-beat~=2.5.0', 'django-registration-redux~=2.12.0', - 'django-rest-framework', - 'drf-yasg', + 'djangorestframework~=3.14.0', - 'python-memcached', + 'pymemcache~=4.0.0', 'python-dotenv~=1.0.0', 'ftfy~=6.1.1', - 'requests', - 'requests_oauthlib', + 'requests~=2.31.0', + 'requests_oauthlib~=1.3.1', - 'feedparser', - 'bleach', - 'beautifulsoup4', - 'lxml' + 'feedparser~=6.0.10', + 'bleach~=6.0.0', + 'beautifulsoup4~=4.12.2', + 'lxml~=4.9.2' ] [project.optional-dependencies] diff --git a/requirements/base.txt b/requirements/base.txt index 7d5df49..fcfa3a2 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -42,7 +42,6 @@ django==4.2.4 # django-celery-beat # django-timezone-field # djangorestframework - # drf-yasg # newsreader (pyproject.toml) django-axes==6.0.4 # via newsreader (pyproject.toml) @@ -50,15 +49,9 @@ django-celery-beat==2.5.0 # via newsreader (pyproject.toml) django-registration-redux==2.12 # via newsreader (pyproject.toml) -django-rest-framework==0.1.0 - # via newsreader (pyproject.toml) django-timezone-field==5.1 # via django-celery-beat djangorestframework==3.14.0 - # via - # django-rest-framework - # drf-yasg -drf-yasg==1.21.6 # via newsreader (pyproject.toml) feedparser==6.0.10 # via newsreader (pyproject.toml) @@ -66,20 +59,18 @@ ftfy==6.1.1 # via newsreader (pyproject.toml) idna==3.4 # via requests -inflection==0.5.1 - # via drf-yasg kombu==5.3.1 # via celery lxml==4.9.2 # via newsreader (pyproject.toml) oauthlib==3.2.2 # via requests-oauthlib -packaging==23.1 - # via drf-yasg prompt-toolkit==3.0.38 # via click-repl psycopg==3.1.10 # via newsreader (pyproject.toml) +pymemcache==4.0.0 + # via newsreader (pyproject.toml) python-crontab==2.7.1 # via django-celery-beat python-dateutil==2.8.2 @@ -88,15 +79,10 @@ python-dateutil==2.8.2 # python-crontab python-dotenv==1.0.0 # via newsreader (pyproject.toml) -python-memcached==1.59 - # via newsreader (pyproject.toml) pytz==2023.3 # via # django-timezone-field # djangorestframework - # drf-yasg -pyyaml==6.0 - # via drf-yasg requests==2.31.0 # via # newsreader (pyproject.toml) @@ -109,7 +95,6 @@ six==1.16.0 # via # bleach # python-dateutil - # python-memcached soupsieve==2.4.1 # via beautifulsoup4 sqlparse==0.4.4 @@ -123,8 +108,6 @@ tzdata==2023.3 # via # celery # django-celery-beat -uritemplate==4.1.1 - # via drf-yasg urllib3==2.0.3 # via requests vine==5.0.0 diff --git a/requirements/ci.txt b/requirements/ci.txt index d543eab..39dba8e 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -88,7 +88,6 @@ django==4.2.4 # django-celery-beat # django-timezone-field # djangorestframework - # drf-yasg # newsreader (pyproject.toml) django-axes==6.0.4 # via @@ -102,22 +101,12 @@ django-registration-redux==2.12 # via # -r requirements/base.txt # newsreader (pyproject.toml) -django-rest-framework==0.1.0 - # via - # -r requirements/base.txt - # newsreader (pyproject.toml) django-timezone-field==5.1 # via # -r requirements/base.txt # -r requirements/testing.txt # django-celery-beat djangorestframework==3.14.0 - # via - # -r requirements/base.txt - # -r requirements/testing.txt - # django-rest-framework - # drf-yasg -drf-yasg==1.21.6 # via # -r requirements/base.txt # newsreader (pyproject.toml) @@ -146,11 +135,6 @@ idna==3.4 # -r requirements/base.txt # -r requirements/testing.txt # requests -inflection==0.5.1 - # via - # -r requirements/base.txt - # -r requirements/testing.txt - # drf-yasg isort==5.12.0 # via # -r requirements/testing.txt @@ -175,10 +159,8 @@ oauthlib==3.2.2 # requests-oauthlib packaging==23.1 # via - # -r requirements/base.txt # -r requirements/testing.txt # black - # drf-yasg pathspec==0.11.1 # via # -r requirements/testing.txt @@ -200,6 +182,10 @@ pyflakes==3.0.1 # via # -r requirements/testing.txt # autoflake +pymemcache==4.0.0 + # via + # -r requirements/base.txt + # newsreader (pyproject.toml) python-crontab==2.7.1 # via # -r requirements/base.txt @@ -217,22 +203,12 @@ python-dotenv==1.0.0 # via # -r requirements/base.txt # newsreader (pyproject.toml) -python-memcached==1.59 - # via - # -r requirements/base.txt - # newsreader (pyproject.toml) pytz==2023.3 # via # -r requirements/base.txt # -r requirements/testing.txt # django-timezone-field # djangorestframework - # drf-yasg -pyyaml==6.0 - # via - # -r requirements/base.txt - # -r requirements/testing.txt - # drf-yasg requests==2.31.0 # via # -r requirements/base.txt @@ -253,7 +229,6 @@ six==1.16.0 # -r requirements/testing.txt # bleach # python-dateutil - # python-memcached soupsieve==2.4.1 # via # -r requirements/base.txt @@ -287,11 +262,6 @@ tzdata==2023.3 # -r requirements/testing.txt # celery # django-celery-beat -uritemplate==4.1.1 - # via - # -r requirements/base.txt - # -r requirements/testing.txt - # drf-yasg urllib3==2.0.3 # via # -r requirements/base.txt diff --git a/requirements/development.txt b/requirements/development.txt index 3388870..b2f2013 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -91,7 +91,6 @@ django==4.2.4 # django-extensions # django-timezone-field # djangorestframework - # drf-yasg # newsreader (pyproject.toml) django-axes==6.0.4 # via @@ -109,22 +108,12 @@ django-registration-redux==2.12 # via # -r requirements/base.txt # newsreader (pyproject.toml) -django-rest-framework==0.1.0 - # via - # -r requirements/base.txt - # newsreader (pyproject.toml) django-timezone-field==5.1 # via # -r requirements/base.txt # -r requirements/testing.txt # django-celery-beat djangorestframework==3.14.0 - # via - # -r requirements/base.txt - # -r requirements/testing.txt - # django-rest-framework - # drf-yasg -drf-yasg==1.21.6 # via # -r requirements/base.txt # newsreader (pyproject.toml) @@ -153,11 +142,6 @@ idna==3.4 # -r requirements/base.txt # -r requirements/testing.txt # requests -inflection==0.5.1 - # via - # -r requirements/base.txt - # -r requirements/testing.txt - # drf-yasg isort==5.12.0 # via # -r requirements/testing.txt @@ -182,11 +166,9 @@ oauthlib==3.2.2 # requests-oauthlib packaging==23.1 # via - # -r requirements/base.txt # -r requirements/testing.txt # black # build - # drf-yasg pathspec==0.11.1 # via # -r requirements/testing.txt @@ -210,6 +192,10 @@ pyflakes==3.0.1 # via # -r requirements/testing.txt # autoflake +pymemcache==4.0.0 + # via + # -r requirements/base.txt + # newsreader (pyproject.toml) pyproject-hooks==1.0.0 # via build python-crontab==2.7.1 @@ -229,22 +215,12 @@ python-dotenv==1.0.0 # via # -r requirements/base.txt # newsreader (pyproject.toml) -python-memcached==1.59 - # via - # -r requirements/base.txt - # newsreader (pyproject.toml) pytz==2023.3 # via # -r requirements/base.txt # -r requirements/testing.txt # django-timezone-field # djangorestframework - # drf-yasg -pyyaml==6.0 - # via - # -r requirements/base.txt - # -r requirements/testing.txt - # drf-yasg requests==2.31.0 # via # -r requirements/base.txt @@ -265,7 +241,6 @@ six==1.16.0 # -r requirements/testing.txt # bleach # python-dateutil - # python-memcached soupsieve==2.4.1 # via # -r requirements/base.txt @@ -302,11 +277,6 @@ tzdata==2023.3 # -r requirements/testing.txt # celery # django-celery-beat -uritemplate==4.1.1 - # via - # -r requirements/base.txt - # -r requirements/testing.txt - # drf-yasg urllib3==2.0.3 # via # -r requirements/base.txt diff --git a/requirements/production.txt b/requirements/production.txt index 0d7221e..4d9c40a 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -68,7 +68,6 @@ django==4.2.4 # django-celery-beat # django-timezone-field # djangorestframework - # drf-yasg # newsreader (pyproject.toml) django-axes==6.0.4 # via @@ -82,20 +81,11 @@ django-registration-redux==2.12 # via # -r requirements/base.txt # newsreader (pyproject.toml) -django-rest-framework==0.1.0 - # via - # -r requirements/base.txt - # newsreader (pyproject.toml) django-timezone-field==5.1 # via # -r requirements/base.txt # django-celery-beat djangorestframework==3.14.0 - # via - # -r requirements/base.txt - # django-rest-framework - # drf-yasg -drf-yasg==1.21.6 # via # -r requirements/base.txt # newsreader (pyproject.toml) @@ -113,10 +103,6 @@ idna==3.4 # via # -r requirements/base.txt # requests -inflection==0.5.1 - # via - # -r requirements/base.txt - # drf-yasg kombu==5.3.1 # via # -r requirements/base.txt @@ -130,10 +116,7 @@ oauthlib==3.2.2 # -r requirements/base.txt # requests-oauthlib packaging==23.1 - # via - # -r requirements/base.txt - # drf-yasg - # gunicorn + # via gunicorn prompt-toolkit==3.0.38 # via # -r requirements/base.txt @@ -142,6 +125,10 @@ psycopg==3.1.10 # via # -r requirements/base.txt # newsreader (pyproject.toml) +pymemcache==4.0.0 + # via + # -r requirements/base.txt + # newsreader (pyproject.toml) python-crontab==2.7.1 # via # -r requirements/base.txt @@ -155,20 +142,11 @@ python-dotenv==1.0.0 # via # -r requirements/base.txt # newsreader (pyproject.toml) -python-memcached==1.59 - # via - # -r requirements/base.txt - # newsreader (pyproject.toml) pytz==2023.3 # via # -r requirements/base.txt # django-timezone-field # djangorestframework - # drf-yasg -pyyaml==6.0 - # via - # -r requirements/base.txt - # drf-yasg requests==2.31.0 # via # -r requirements/base.txt @@ -189,7 +167,6 @@ six==1.16.0 # -r requirements/base.txt # bleach # python-dateutil - # python-memcached soupsieve==2.4.1 # via # -r requirements/base.txt @@ -209,10 +186,6 @@ tzdata==2023.3 # -r requirements/base.txt # celery # django-celery-beat -uritemplate==4.1.1 - # via - # -r requirements/base.txt - # drf-yasg urllib3==2.0.3 # via # -r requirements/base.txt diff --git a/requirements/testing.txt b/requirements/testing.txt index 7daf95c..9ebb208 100644 --- a/requirements/testing.txt +++ b/requirements/testing.txt @@ -72,7 +72,6 @@ django==4.2.4 # django-celery-beat # django-timezone-field # djangorestframework - # drf-yasg # newsreader (pyproject.toml) django-axes==6.0.4 # via @@ -86,20 +85,11 @@ django-registration-redux==2.12 # via # -r requirements/base.txt # newsreader (pyproject.toml) -django-rest-framework==0.1.0 - # via - # -r requirements/base.txt - # newsreader (pyproject.toml) django-timezone-field==5.1 # via # -r requirements/base.txt # django-celery-beat djangorestframework==3.14.0 - # via - # -r requirements/base.txt - # django-rest-framework - # drf-yasg -drf-yasg==1.21.6 # via # -r requirements/base.txt # newsreader (pyproject.toml) @@ -121,10 +111,6 @@ idna==3.4 # via # -r requirements/base.txt # requests -inflection==0.5.1 - # via - # -r requirements/base.txt - # drf-yasg isort==5.12.0 # via newsreader (pyproject.toml) kombu==5.3.1 @@ -142,10 +128,7 @@ oauthlib==3.2.2 # -r requirements/base.txt # requests-oauthlib packaging==23.1 - # via - # -r requirements/base.txt - # black - # drf-yasg + # via black pathspec==0.11.1 # via black platformdirs==3.8.0 @@ -160,6 +143,10 @@ psycopg==3.1.10 # newsreader (pyproject.toml) pyflakes==3.0.1 # via autoflake +pymemcache==4.0.0 + # via + # -r requirements/base.txt + # newsreader (pyproject.toml) python-crontab==2.7.1 # via # -r requirements/base.txt @@ -175,20 +162,11 @@ python-dotenv==1.0.0 # via # -r requirements/base.txt # newsreader (pyproject.toml) -python-memcached==1.59 - # via - # -r requirements/base.txt - # newsreader (pyproject.toml) pytz==2023.3 # via # -r requirements/base.txt # django-timezone-field # djangorestframework - # drf-yasg -pyyaml==6.0 - # via - # -r requirements/base.txt - # drf-yasg requests==2.31.0 # via # -r requirements/base.txt @@ -207,7 +185,6 @@ six==1.16.0 # -r requirements/base.txt # bleach # python-dateutil - # python-memcached soupsieve==2.4.1 # via # -r requirements/base.txt @@ -234,10 +211,6 @@ tzdata==2023.3 # -r requirements/base.txt # celery # django-celery-beat -uritemplate==4.1.1 - # via - # -r requirements/base.txt - # drf-yasg urllib3==2.0.3 # via # -r requirements/base.txt diff --git a/src/newsreader/accounts/admin.py b/src/newsreader/accounts/admin.py index 02d372c..686d898 100644 --- a/src/newsreader/accounts/admin.py +++ b/src/newsreader/accounts/admin.py @@ -2,7 +2,7 @@ from django import forms from django.contrib import admin from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin from django.contrib.auth.forms import UserChangeForm -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from newsreader.accounts.models import User diff --git a/src/newsreader/news/collection/tasks.py b/src/newsreader/news/collection/tasks.py index 799a101..4e0cca9 100644 --- a/src/newsreader/news/collection/tasks.py +++ b/src/newsreader/news/collection/tasks.py @@ -1,7 +1,7 @@ from django.conf import settings from django.core.exceptions import ObjectDoesNotExist from django.core.mail import send_mail -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ import requests diff --git a/src/newsreader/news/collection/twitter.py b/src/newsreader/news/collection/twitter.py index 7170c12..5167d22 100644 --- a/src/newsreader/news/collection/twitter.py +++ b/src/newsreader/news/collection/twitter.py @@ -8,7 +8,7 @@ from django.conf import settings from django.core.mail import send_mail from django.utils import timezone from django.utils.html import format_html, urlize -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ import pytz diff --git a/src/newsreader/news/core/filters.py b/src/newsreader/news/core/filters.py index ba3ea48..349f63e 100644 --- a/src/newsreader/news/core/filters.py +++ b/src/newsreader/news/core/filters.py @@ -1,5 +1,5 @@ -from django.utils.encoding import force_text -from django.utils.translation import ugettext_lazy as _ +from django.utils.encoding import force_str +from django.utils.translation import gettext_lazy as _ from rest_framework import filters from rest_framework.compat import coreapi, coreschema @@ -25,8 +25,8 @@ class ReadFilter(filters.BaseFilterBackend): required=False, location="query", schema=coreschema.String( - title=force_text(self.query_param), - description=force_text(_("Wether posts should be read or not")), + title=force_str(self.query_param), + description=force_str(_("Wether posts should be read or not")), ), ) ] @@ -52,8 +52,8 @@ class SavedFilter(filters.BaseFilterBackend): required=False, location="query", schema=coreschema.String( - title=force_text(self.query_param), - description=force_text(_("Wether posts should be saved or not")), + title=force_str(self.query_param), + description=force_str(_("Wether posts should be saved or not")), ), ) ] diff --git a/src/newsreader/urls.py b/src/newsreader/urls.py index 0779b29..2e4c9c3 100644 --- a/src/newsreader/urls.py +++ b/src/newsreader/urls.py @@ -3,9 +3,6 @@ from django.contrib import admin from django.contrib.auth.decorators import login_required from django.urls import include, path -from drf_yasg import openapi -from drf_yasg.views import get_schema_view - from newsreader.accounts.urls import urlpatterns as login_urls from newsreader.news.core.views import NewsView from newsreader.news.urls import endpoints as news_endpoints @@ -14,16 +11,12 @@ from newsreader.news.urls import urlpatterns as news_patterns api_patterns = [path("api/", include((news_endpoints, "news")))] -schema_info = openapi.Info(title="Newsreader API", default_version="v1") -schema_view = get_schema_view(schema_info, patterns=api_patterns) - urlpatterns = [ path("", login_required(NewsView.as_view()), name="index"), path("", include((news_patterns, "news"))), path("", include((api_patterns, "api"))), path("accounts/", include((login_urls, "accounts")), name="accounts"), path("admin/", admin.site.urls, name="admin"), - path("api/", schema_view.with_ui("swagger"), name="api"), path("api/auth/", include("rest_framework.urls"), name="rest_framework"), ]