From bcb58c669021aa6ec16273a8126aaa5a73d56008 Mon Sep 17 00:00:00 2001 From: Peter Dwyer Date: Wed, 31 Aug 2022 14:35:09 +0100 Subject: [PATCH] pylint fixes --- comic/admin.py | 2 +- comic/errors.py | 2 +- comic/feeds.py | 4 +- comic/models.py | 43 ++++---- comic/processing.py | 8 +- comic/rest.py | 95 +++++++--------- comic/util.py | 10 +- poetry.lock | 260 +++++++++++++++++++++++++++++++++++++++++++- pyproject.toml | 13 +++ 9 files changed, 346 insertions(+), 91 deletions(-) diff --git a/comic/admin.py b/comic/admin.py index 29e5865..a8d00a8 100644 --- a/comic/admin.py +++ b/comic/admin.py @@ -49,4 +49,4 @@ class ComicStatusAdmin(admin.ModelAdmin): @admin.register(UserMisc) class UserMiscAdmin(admin.ModelAdmin): list_display = ('user', 'feed_id', 'allowed_to_read') - list_filter = ('user',) \ No newline at end of file + list_filter = ('user',) diff --git a/comic/errors.py b/comic/errors.py index 580f161..02cdcc5 100644 --- a/comic/errors.py +++ b/comic/errors.py @@ -1,2 +1,2 @@ class NotCompatibleArchive(Exception): - pass \ No newline at end of file + pass diff --git a/comic/feeds.py b/comic/feeds.py index 6c2be96..65b6f4e 100644 --- a/comic/feeds.py +++ b/comic/feeds.py @@ -13,8 +13,8 @@ class RecentComicsAPI(Feed): description = "Recently added Comics" user: User - def get_object(self, request: HttpRequest, user_selector: str, *args, **kwargs) -> UserMisc: - user_misc = get_object_or_404(UserMisc, feed_id=user_selector) + def get_object(self, request: HttpRequest, *args, **kwargs) -> UserMisc: + user_misc = get_object_or_404(UserMisc, feed_id=kwargs["user_selector"]) self.user = user_misc.user return user_misc.user diff --git a/comic/models.py b/comic/models.py index 30388d7..dde8aa3 100644 --- a/comic/models.py +++ b/comic/models.py @@ -13,7 +13,7 @@ import rarfile from PIL import Image, UnidentifiedImageError from PIL.Image import Image as Image_type from django.conf import settings -from django.contrib.auth.models import User, AbstractUser +from django.contrib.auth.models import User from django.core.files.uploadedfile import InMemoryUploadedFile from django.db import models from django.db.models import UniqueConstraint @@ -54,7 +54,7 @@ class Directory(models.Model): ordering = ['name'] def __str__(self): - return "Directory: {0}; {1}".format(self.name, self.parent) + return f"Directory: {self.name}; {self.parent}" @property def title(self) -> str: @@ -81,25 +81,25 @@ class Directory(models.Model): path_items = self.get_path_items() path_items.reverse() if len(path_items) >= 2: + # pylint: disable=unnecessary-lambda return reduce(lambda x, y: Path(x, y), path_items) - else: - return Path(path_items[0]) + return Path(path_items[0]) - def get_path_items(self, p: Optional[List] = None) -> List[Path]: - if p is None: - p = [] - p.append(self.name) + def get_path_items(self, path_items: Optional[List] = None) -> List[Path]: + if path_items is None: + path_items = [] + path_items.append(self.name) if self.parent: - self.parent.get_path_items(p) - return p + self.parent.get_path_items(path_items) + return path_items - def get_path_objects(self, p=None) -> List["Directory"]: - if p is None: - p = [] - p.append(self) + def get_path_objects(self, path_items=None) -> List["Directory"]: + if path_items is None: + path_items = [] + path_items.append(self) if self.parent: - self.parent.get_path_objects(p) - return p + self.parent.get_path_objects(path_items) + return path_items class ComicBook(models.Model): @@ -135,8 +135,7 @@ class ComicBook(models.Model): base_dir = settings.COMIC_BOOK_VOLUME if self.directory: return Path(base_dir, self.directory.get_path(), self.file_name) - else: - return Path(base_dir, self.file_name) + return Path(base_dir, self.file_name) def get_image(self, page: int) -> Union[Tuple[io.BytesIO, Image_type], Tuple[bool, bool]]: base_dir = settings.COMIC_BOOK_VOLUME @@ -147,6 +146,7 @@ class ComicBook(models.Model): try: archive = rarfile.RarFile(archive_path) except rarfile.NotRarFile: + # pylint: disable=consider-using-with archive = zipfile.ZipFile(archive_path) except zipfile.BadZipfile: return False, False @@ -171,9 +171,9 @@ class ComicBook(models.Model): img, content_type = self.get_image(page_index) pil_data = Image.open(img) else: - for x in range(ComicPage.objects.filter(Comic=self).count()): + for page_number in range(ComicPage.objects.filter(Comic=self).count()): try: - img, content_type = self.get_image(x) + img, content_type = self.get_image(page_number) pil_data = Image.open(img) break except UnidentifiedImageError: @@ -248,8 +248,7 @@ class ComicBook(models.Model): def get_archive_path(self) -> Path: if self.directory: return Path(settings.COMIC_BOOK_VOLUME, self.directory.get_path(), self.file_name) - else: - return Path(settings.COMIC_BOOK_VOLUME, self.file_name) + return Path(settings.COMIC_BOOK_VOLUME, self.file_name) def get_archive(self) -> Tuple[Union[rarfile.RarFile, zipfile.ZipFile, fitz.Document], str]: archive_path = self.get_archive_path diff --git a/comic/processing.py b/comic/processing.py index 5971f62..3c77fd2 100644 --- a/comic/processing.py +++ b/comic/processing.py @@ -61,8 +61,8 @@ def generate_directory(user: User, directory=None): def clean_directories(directories, dir_path, directory=None): - dir_db_set = set([Path(settings.COMIC_BOOK_VOLUME, x.path) for x in directories]) - dir_list = set([x for x in sorted(dir_path.glob('*')) if x.is_dir()]) + dir_db_set = set(Path(settings.COMIC_BOOK_VOLUME, x.path) for x in directories) + dir_list = set(x for x in sorted(dir_path.glob('*')) if x.is_dir()) # Create new directories db instances for new_directory in dir_list - dir_db_set: models.Directory(name=new_directory.name, parent=directory).save() @@ -73,8 +73,8 @@ def clean_directories(directories, dir_path, directory=None): def clean_files(files, user, dir_path, directory=None): - file_list = set([x for x in sorted(dir_path.glob('*')) if x.is_file()]) - files_db_set = set([Path(dir_path, x.file_name) for x in files]) + file_list = set(x for x in sorted(dir_path.glob('*')) if x.is_file()) + files_db_set = set(Path(dir_path, x.file_name) for x in files) # Parse new comics books_to_add = [] diff --git a/comic/rest.py b/comic/rest.py index d655660..1390b4c 100644 --- a/comic/rest.py +++ b/comic/rest.py @@ -44,7 +44,7 @@ class ClassificationSerializer(serializers.Serializer): raise serializers.ValidationError('Invalid Classification sent.') -class UserViewSet(viewsets.ModelViewSet): +class UserViewSet(viewsets.ModelViewSet): # pylint: disable=too-many-ancestors """ API endpoint that allows users to be viewed or edited. """ @@ -82,8 +82,7 @@ class UserViewSet(viewsets.ModelViewSet): misc.allowed_to_read = serializer.data['classification'] misc.save() return Response(data={'classification': misc.allowed_to_read}) - else: - return Response(serializer.errors, status.HTTP_400_BAD_REQUEST) + return Response(serializer.errors, status.HTTP_400_BAD_REQUEST) class BrowseFileField(serializers.FileField): @@ -217,19 +216,20 @@ class ReadViewSet(viewsets.GenericViewSet): @swagger_auto_schema(responses={status.HTTP_200_OK: ReadSerializer()}) def retrieve(self, request: Request, selector: UUID) -> Response: comic = get_object_or_404(models.ComicBook, selector=selector) - misc, _ = models.UserMisc.objects.get_or_create(user=request.user) + _, _ = models.UserMisc.objects.get_or_create(user=request.user) pages = models.ComicPage.objects.filter(Comic=comic) comic_status, _ = models.ComicStatus.objects.get_or_create(comic=comic, user=request.user) comic_list = list(models.ComicBook.objects.filter(directory=comic.directory).order_by('file_name')) comic_index = comic_list.index(comic) try: prev_comic = {'route': 'browse', 'selector': comic.directory.selector} if comic_index == 0 else \ - {'route': 'read', 'selector': comic_list[comic_index-1].selector} + {'route': 'read', 'selector': comic_list[comic_index - 1].selector} except AttributeError: prev_comic = {'route': 'browse'} try: - next_comic = {'route': 'browse', 'selector': comic.directory.selector} if comic_index+1 == len(comic_list) \ - else {'route': 'read', 'selector': comic_list[comic_index+1].selector} + next_comic = {'route': 'browse', 'selector': comic.directory.selector} \ + if comic_index + 1 == len(comic_list) \ + else {'route': 'read', 'selector': comic_list[comic_index + 1].selector} except AttributeError: next_comic = {'route': 'browse'} data = { @@ -269,22 +269,21 @@ class ReadViewSet(viewsets.GenericViewSet): serializer = self.get_serializer(data=request.data) if serializer.is_valid(): - comic_status, _ = models.ComicStatus.objects.annotate(page_count=Count('comic__comicpage'))\ + comic_status, _ = models.ComicStatus.objects.annotate(page_count=Count('comic__comicpage')) \ .get_or_create(comic_id=selector, user=request.user) comic_status.last_read_page = serializer.data['page'] comic_status.unread = False - if comic_status.page_count-1 == comic_status.last_read_page: + if comic_status.page_count - 1 == comic_status.last_read_page: comic_status.finished = True else: comic_status.finished = False comic_status.save() return Response(self.get_serializer(comic_status).data) - else: - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) -class PassthroughRenderer(renderers.BaseRenderer): +class PassthroughRenderer(renderers.BaseRenderer): # pylint: disable=too-few-public-methods """ Return data as-is. View should supply a Response. """ @@ -373,7 +372,7 @@ class ActionViewSet(viewsets.GenericViewSet): comic_status = comic_status.annotate(total_pages=Count('comic__comicpage')) status_to_update = [] for c_status in comic_status: - c_status.last_read_page = c_status.total_pages-1 + c_status.last_read_page = c_status.total_pages - 1 c_status.unread = False c_status.finished = True status_to_update.append(c_status) @@ -388,37 +387,33 @@ class ActionViewSet(viewsets.GenericViewSet): status_to_update.append(obj) models.ComicStatus.objects.bulk_update(status_to_update, ['unread', 'finished', 'last_read_page']) return Response({'status': 'marked_read'}) - else: - return Response(serializer.errors, - status=status.HTTP_400_BAD_REQUEST) + return Response(serializer.errors, + status=status.HTTP_400_BAD_REQUEST) @action(detail=False, methods=['PUT']) def mark_unread(self, request): serializer = ActionSerializer(data=request.data) if serializer.is_valid(): - serializer = ActionSerializer(data=request.data) - if serializer.is_valid(): - comics = self.get_comics(serializer.data['selectors']) - comic_status = models.ComicStatus.objects.filter(comic__selector__in=comics, user=request.user) - status_to_update = [] - for c_status in comic_status: - c_status.last_read_page = 0 - c_status.unread = True - c_status.finished = False - status_to_update.append(c_status) - comics.remove(str(c_status.comic_id)) - for new_status in comics: - comic = models.ComicBook.objects.get(selector=new_status) - obj, _ = models.ComicStatus.objects.get_or_create(comic=comic, user=request.user) - obj.unread = True - obj.finished = False - obj.last_read_page = 0 - status_to_update.append(obj) - models.ComicStatus.objects.bulk_update(status_to_update, ['unread', 'finished', 'last_read_page']) - return Response({'status': 'marked_unread'}) - else: - return Response(serializer.errors, - status=status.HTTP_400_BAD_REQUEST) + comics = self.get_comics(serializer.data['selectors']) + comic_status = models.ComicStatus.objects.filter(comic__selector__in=comics, user=request.user) + status_to_update = [] + for c_status in comic_status: + c_status.last_read_page = 0 + c_status.unread = True + c_status.finished = False + status_to_update.append(c_status) + comics.remove(str(c_status.comic_id)) + for new_status in comics: + comic = models.ComicBook.objects.get(selector=new_status) + obj, _ = models.ComicStatus.objects.get_or_create(comic=comic, user=request.user) + obj.unread = True + obj.finished = False + obj.last_read_page = 0 + status_to_update.append(obj) + models.ComicStatus.objects.bulk_update(status_to_update, ['unread', 'finished', 'last_read_page']) + return Response({'status': 'marked_unread'}) + return Response(serializer.errors, + status=status.HTTP_400_BAD_REQUEST) def get_comics(self, selectors): data = set() @@ -461,8 +456,8 @@ class PasswordResetSerializer(serializers.Serializer): return data try: validate_password(data) - except ValidationError as e: - raise serializers.ValidationError(e) + except ValidationError as err: + raise serializers.ValidationError(err) return data def validate(self, attrs): @@ -489,8 +484,7 @@ class AccountViewSet(viewsets.GenericViewSet): request.user.set_password(serializer.data['new_password']) request.user.save() return Response(AccountSerializer(request.user).data) - else: - return Response({"errors": serializer.errors}, status.HTTP_400_BAD_REQUEST) + return Response({"errors": serializer.errors}, status.HTTP_400_BAD_REQUEST) def list(self, request): serializer = self.get_serializer(request.user) @@ -509,8 +503,7 @@ class AccountViewSet(viewsets.GenericViewSet): request.user.save() account = AccountSerializer(request.user) return Response(account.data) - else: - return Response(serializer.errors, status.HTTP_400_BAD_REQUEST) + return Response(serializer.errors, status.HTTP_400_BAD_REQUEST) @swagger_auto_schema(responses={status.HTTP_200_OK: RSSSerializer()}) @action(methods=['get'], detail=False, serializer_class=RSSSerializer) @@ -524,7 +517,6 @@ class AccountViewSet(viewsets.GenericViewSet): class DirectorySerializer(serializers.ModelSerializer): - class Meta: model = models.Directory fields = ['selector', 'classification'] @@ -540,7 +532,7 @@ class DirectoryViewSet(mixins.UpdateModelMixin, viewsets.GenericViewSet): lookup_field = 'selector' @swagger_auto_schema(responses={200: DirectorySerializer(many=True)}) - def update(self, request: Request, selector: UUID) -> Response: + def update(self, request: Request, selector: UUID) -> Response: # pylint: disable=arguments-differ """ This will set the classification of a directory and all it's children. """ @@ -563,8 +555,7 @@ class DirectoryViewSet(mixins.UpdateModelMixin, viewsets.GenericViewSet): data = models.Directory.objects.filter(directory__in=to_update) response = self.get_serializer(data, many=True) return Response(response.data) - else: - return Response(serializer.errors, status.HTTP_400_BAD_REQUEST) + return Response(serializer.errors, status.HTTP_400_BAD_REQUEST) def partial_update(self, request, *args, **kwargs): """ @@ -607,7 +598,5 @@ class InitialSetup(viewsets.GenericViewSet): admin.set_password(serializer.data['password']) admin.save() return Response(serializer.data, status.HTTP_201_CREATED) - else: - return Response(serializer.errors, status.HTTP_400_BAD_REQUEST) - else: - return Response({}, status.HTTP_400_BAD_REQUEST) + return Response(serializer.errors, status.HTTP_400_BAD_REQUEST) + return Response({}, status.HTTP_400_BAD_REQUEST) diff --git a/comic/util.py b/comic/util.py index 65f333f..0dbf78c 100644 --- a/comic/util.py +++ b/comic/util.py @@ -1,6 +1,7 @@ from dataclasses import dataclass +from typing import Optional -from .models import ComicBook, Directory +from comic.models import ComicBook, Directory @dataclass() @@ -9,12 +10,7 @@ class Breadcrumb: selector: str = '' -def generate_breadcrumbs_from_path(directory=False, book=False): - """ - - :type directory: Directory - :type book: ComicBook - """ +def generate_breadcrumbs_from_path(directory: Optional[Directory] = None, book: Optional[ComicBook] = None): output = [Breadcrumb()] if directory: folders = directory.get_path_objects() diff --git a/poetry.lock b/poetry.lock index e28e86e..43c83a1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -17,6 +17,21 @@ python-versions = ">=3.7" [package.extras] tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] +[[package]] +name = "astroid" +version = "2.12.5" +description = "An abstract syntax tree for Python with inference support." +category = "dev" +optional = false +python-versions = ">=3.7.2" + +[package.dependencies] +lazy-object-proxy = ">=1.4.0" +wrapt = [ + {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, + {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, +] + [[package]] name = "asttokens" version = "2.0.8" @@ -175,6 +190,17 @@ category = "dev" optional = false python-versions = ">=3.5" +[[package]] +name = "dill" +version = "0.3.5.1" +description = "serialize all of python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" + +[package.extras] +graph = ["objgraph (>=1.7.2)"] + [[package]] name = "distlib" version = "0.3.6" @@ -533,6 +559,20 @@ qtconsole = ["qtconsole"] test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] test_extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.19)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] +[[package]] +name = "isort" +version = "5.10.1" +description = "A Python utility / library to sort Python imports." +category = "dev" +optional = false +python-versions = ">=3.6.1,<4.0" + +[package.extras] +colors = ["colorama (>=0.4.3,<0.5.0)"] +pipfile_deprecated_finder = ["pipreqs", "requirementslib"] +plugins = ["setuptools"] +requirements_deprecated_finder = ["pip-api", "pipreqs"] + [[package]] name = "itypes" version = "1.2.0" @@ -570,6 +610,14 @@ MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] +[[package]] +name = "lazy-object-proxy" +version = "1.7.1" +description = "A fast and thorough lazy object proxy." +category = "dev" +optional = false +python-versions = ">=3.6" + [[package]] name = "loguru" version = "0.6.0" @@ -604,6 +652,14 @@ python-versions = ">=3.5" [package.dependencies] traitlets = "*" +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +category = "dev" +optional = false +python-versions = ">=3.6" + [[package]] name = "mypy" version = "0.971" @@ -818,6 +874,55 @@ dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.3.1)", "mypy", "pre-commit docs = ["sphinx", "sphinx-rtd-theme", "zope-interface"] tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] +[[package]] +name = "pylint" +version = "2.15.0" +description = "python code static checker" +category = "dev" +optional = false +python-versions = ">=3.7.2" + +[package.dependencies] +astroid = ">=2.12.4,<=2.14.0-dev0" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +dill = ">=0.2" +isort = ">=4.2.5,<6" +mccabe = ">=0.6,<0.8" +platformdirs = ">=2.2.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.10.1" + +[package.extras] +spelling = ["pyenchant (>=3.2,<4.0)"] +testutils = ["gitpython (>3)"] + +[[package]] +name = "pylint-django" +version = "2.5.3" +description = "A Pylint plugin to help Pylint understand the Django web framework" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +pylint = ">=2.0,<3" +pylint-plugin-utils = ">=0.7" + +[package.extras] +for_tests = ["coverage", "django-tables2", "django-tastypie", "factory-boy", "pylint (>=2.13)", "pytest", "wheel"] +with_django = ["django"] + +[[package]] +name = "pylint-plugin-utils" +version = "0.7" +description = "Utilities and helpers for writing Pylint plugins" +category = "dev" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +pylint = ">=1.7" + [[package]] name = "pymupdf" version = "1.18.19" @@ -1008,6 +1113,14 @@ category = "dev" optional = false python-versions = ">=3.7" +[[package]] +name = "tomlkit" +version = "0.11.4" +description = "Style preserving TOML library" +category = "dev" +optional = false +python-versions = ">=3.6,<4.0" + [[package]] name = "traitlets" version = "5.3.0" @@ -1122,10 +1235,18 @@ python-versions = ">=3.5" [package.extras] dev = ["black (>=19.3b0)", "pytest (>=4.6.2)"] +[[package]] +name = "wrapt" +version = "1.14.1" +description = "Module for decorators, wrappers and monkey patching." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + [metadata] lock-version = "1.1" python-versions = "^3.10" -content-hash = "377ee229258dba2a08a07c860e2ad313e71bab4ff3daa2e0f5a5a8c2ae6e2c62" +content-hash = "9195bf3e7c3308fb256f1d782360971ec6c6df5454dec454d995bf9f4237e667" [metadata.files] appnope = [ @@ -1136,6 +1257,10 @@ asgiref = [ {file = "asgiref-3.5.2-py3-none-any.whl", hash = "sha256:1d2880b792ae8757289136f1db2b7b99100ce959b2aa57fd69dab783d05afac4"}, {file = "asgiref-3.5.2.tar.gz", hash = "sha256:4a29362a6acebe09bf1d6640db38c1dc3d9217c68e6f9f6204d72667fc19a424"}, ] +astroid = [ + {file = "astroid-2.12.5-py3-none-any.whl", hash = "sha256:d612609242996c4365aeb0345e61edba34363eaaba55f1c0addf6a98f073bef6"}, + {file = "astroid-2.12.5.tar.gz", hash = "sha256:396c88d0a58d7f8daadf730b2ce90838bf338c6752558db719ec6f99c18ec20e"}, +] asttokens = [ {file = "asttokens-2.0.8-py2.py3-none-any.whl", hash = "sha256:e3305297c744ae53ffa032c45dc347286165e4ffce6875dc662b205db0623d86"}, {file = "asttokens-2.0.8.tar.gz", hash = "sha256:c61e16246ecfb2cde2958406b4c8ebc043c9e6d73aaa83c941673b35e5d3a76b"}, @@ -1322,6 +1447,10 @@ decorator = [ {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, ] +dill = [ + {file = "dill-0.3.5.1-py2.py3-none-any.whl", hash = "sha256:33501d03270bbe410c72639b350e941882a8b0fd55357580fbc873fba0c59302"}, + {file = "dill-0.3.5.1.tar.gz", hash = "sha256:d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86"}, +] distlib = [ {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, @@ -1430,6 +1559,10 @@ ipython = [ {file = "ipython-8.4.0-py3-none-any.whl", hash = "sha256:7ca74052a38fa25fe9bedf52da0be7d3fdd2fb027c3b778ea78dfe8c212937d1"}, {file = "ipython-8.4.0.tar.gz", hash = "sha256:f2db3a10254241d9b447232cec8b424847f338d9d36f9a577a6192c332a46abd"}, ] +isort = [ + {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, + {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, +] itypes = [ {file = "itypes-1.2.0-py2.py3-none-any.whl", hash = "sha256:03da6872ca89d29aef62773672b2d408f490f80db48b23079a4b194c86dd04c6"}, {file = "itypes-1.2.0.tar.gz", hash = "sha256:af886f129dea4a2a1e3d36595a2d139589e4dd287f5cab0b40e799ee81570ff1"}, @@ -1442,6 +1575,45 @@ jinja2 = [ {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, ] +lazy-object-proxy = [ + {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, + {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, +] loguru = [ {file = "loguru-0.6.0-py3-none-any.whl", hash = "sha256:4e2414d534a2ab57573365b3e6d0234dfb1d84b68b7f3b948e6fb743860a77c3"}, {file = "loguru-0.6.0.tar.gz", hash = "sha256:066bd06758d0a513e9836fd9c6b5a75bfb3fd36841f4b996bc60b547a309d41c"}, @@ -1492,6 +1664,10 @@ matplotlib-inline = [ {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, ] +mccabe = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] mypy = [ {file = "mypy-0.971-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c"}, {file = "mypy-0.971-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5"}, @@ -1662,6 +1838,18 @@ pyjwt = [ {file = "PyJWT-2.4.0-py3-none-any.whl", hash = "sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf"}, {file = "PyJWT-2.4.0.tar.gz", hash = "sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba"}, ] +pylint = [ + {file = "pylint-2.15.0-py3-none-any.whl", hash = "sha256:4b124affc198b7f7c9b5f9ab690d85db48282a025ef9333f51d2d7281b92a6c3"}, + {file = "pylint-2.15.0.tar.gz", hash = "sha256:4f3f7e869646b0bd63b3dfb79f3c0f28fc3d2d923ea220d52620fd625aed92b0"}, +] +pylint-django = [ + {file = "pylint-django-2.5.3.tar.gz", hash = "sha256:0ac090d106c62fe33782a1d01bda1610b761bb1c9bf5035ced9d5f23a13d8591"}, + {file = "pylint_django-2.5.3-py3-none-any.whl", hash = "sha256:56b12b6adf56d548412445bd35483034394a1a94901c3f8571980a13882299d5"}, +] +pylint-plugin-utils = [ + {file = "pylint-plugin-utils-0.7.tar.gz", hash = "sha256:ce48bc0516ae9415dd5c752c940dfe601b18fe0f48aa249f2386adfa95a004dd"}, + {file = "pylint_plugin_utils-0.7-py3-none-any.whl", hash = "sha256:b3d43e85ab74c4f48bb46ae4ce771e39c3a20f8b3d56982ab17aa73b4f98d535"}, +] pymupdf = [ {file = "PyMuPDF-1.18.19-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ee8cc8aadaa818c9a5e2fb2a944c99a98822a7a3bc618d9c5d32f126874c0635"}, {file = "PyMuPDF-1.18.19-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:03ebf6fce6889df4708061a499b912909ead5e7bf1066f05b94458dcf164e3c3"}, @@ -1815,6 +2003,10 @@ tomli = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] +tomlkit = [ + {file = "tomlkit-0.11.4-py3-none-any.whl", hash = "sha256:25d4e2e446c453be6360c67ddfb88838cfc42026322770ba13d1fbd403a93a5c"}, + {file = "tomlkit-0.11.4.tar.gz", hash = "sha256:3235a9010fae54323e727c3ac06fb720752fe6635b3426e379daec60fbd44a83"}, +] traitlets = [ {file = "traitlets-5.3.0-py3-none-any.whl", hash = "sha256:65fa18961659635933100db8ca120ef6220555286949774b9cfc106f941d1c7a"}, {file = "traitlets-5.3.0.tar.gz", hash = "sha256:0bb9f1f9f017aa8ec187d8b1b2a7a6626a2a1d877116baba52a129bfa124f8e2"}, @@ -1859,3 +2051,69 @@ win32-setctime = [ {file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"}, {file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"}, ] +wrapt = [ + {file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"}, + {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"}, + {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28"}, + {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ddaea91abf8b0d13443f6dac52e89051a5063c7d014710dcb4d4abb2ff811a59"}, + {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:36f582d0c6bc99d5f39cd3ac2a9062e57f3cf606ade29a0a0d6b323462f4dd87"}, + {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7ef58fb89674095bfc57c4069e95d7a31cfdc0939e2a579882ac7d55aadfd2a1"}, + {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e2f83e18fe2f4c9e7db597e988f72712c0c3676d337d8b101f6758107c42425b"}, + {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ee2b1b1769f6707a8a445162ea16dddf74285c3964f605877a20e38545c3c462"}, + {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:833b58d5d0b7e5b9832869f039203389ac7cbf01765639c7309fd50ef619e0b1"}, + {file = "wrapt-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:80bb5c256f1415f747011dc3604b59bc1f91c6e7150bd7db03b19170ee06b320"}, + {file = "wrapt-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07f7a7d0f388028b2df1d916e94bbb40624c59b48ecc6cbc232546706fac74c2"}, + {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02b41b633c6261feff8ddd8d11c711df6842aba629fdd3da10249a53211a72c4"}, + {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fe803deacd09a233e4762a1adcea5db5d31e6be577a43352936179d14d90069"}, + {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:257fd78c513e0fb5cdbe058c27a0624c9884e735bbd131935fd49e9fe719d310"}, + {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4fcc4649dc762cddacd193e6b55bc02edca674067f5f98166d7713b193932b7f"}, + {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:11871514607b15cfeb87c547a49bca19fde402f32e2b1c24a632506c0a756656"}, + {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c"}, + {file = "wrapt-1.14.1-cp310-cp310-win32.whl", hash = "sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8"}, + {file = "wrapt-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164"}, + {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907"}, + {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3"}, + {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3"}, + {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:a85d2b46be66a71bedde836d9e41859879cc54a2a04fad1191eb50c2066f6e9d"}, + {file = "wrapt-1.14.1-cp35-cp35m-win32.whl", hash = "sha256:dbcda74c67263139358f4d188ae5faae95c30929281bc6866d00573783c422b7"}, + {file = "wrapt-1.14.1-cp35-cp35m-win_amd64.whl", hash = "sha256:b21bb4c09ffabfa0e85e3a6b623e19b80e7acd709b9f91452b8297ace2a8ab00"}, + {file = "wrapt-1.14.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:9e0fd32e0148dd5dea6af5fee42beb949098564cc23211a88d799e434255a1f4"}, + {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9736af4641846491aedb3c3f56b9bc5568d92b0692303b5a305301a95dfd38b1"}, + {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b02d65b9ccf0ef6c34cba6cf5bf2aab1bb2f49c6090bafeecc9cd81ad4ea1c1"}, + {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21ac0156c4b089b330b7666db40feee30a5d52634cc4560e1905d6529a3897ff"}, + {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:9f3e6f9e05148ff90002b884fbc2a86bd303ae847e472f44ecc06c2cd2fcdb2d"}, + {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:6e743de5e9c3d1b7185870f480587b75b1cb604832e380d64f9504a0535912d1"}, + {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d79d7d5dc8a32b7093e81e97dad755127ff77bcc899e845f41bf71747af0c569"}, + {file = "wrapt-1.14.1-cp36-cp36m-win32.whl", hash = "sha256:81b19725065dcb43df02b37e03278c011a09e49757287dca60c5aecdd5a0b8ed"}, + {file = "wrapt-1.14.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b014c23646a467558be7da3d6b9fa409b2c567d2110599b7cf9a0c5992b3b471"}, + {file = "wrapt-1.14.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:88bd7b6bd70a5b6803c1abf6bca012f7ed963e58c68d76ee20b9d751c74a3248"}, + {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5901a312f4d14c59918c221323068fad0540e34324925c8475263841dbdfe68"}, + {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d77c85fedff92cf788face9bfa3ebaa364448ebb1d765302e9af11bf449ca36d"}, + {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d649d616e5c6a678b26d15ece345354f7c2286acd6db868e65fcc5ff7c24a77"}, + {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7d2872609603cb35ca513d7404a94d6d608fc13211563571117046c9d2bcc3d7"}, + {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:ee6acae74a2b91865910eef5e7de37dc6895ad96fa23603d1d27ea69df545015"}, + {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2b39d38039a1fdad98c87279b48bc5dce2c0ca0d73483b12cb72aa9609278e8a"}, + {file = "wrapt-1.14.1-cp37-cp37m-win32.whl", hash = "sha256:60db23fa423575eeb65ea430cee741acb7c26a1365d103f7b0f6ec412b893853"}, + {file = "wrapt-1.14.1-cp37-cp37m-win_amd64.whl", hash = "sha256:709fe01086a55cf79d20f741f39325018f4df051ef39fe921b1ebe780a66184c"}, + {file = "wrapt-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8c0ce1e99116d5ab21355d8ebe53d9460366704ea38ae4d9f6933188f327b456"}, + {file = "wrapt-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e3fb1677c720409d5f671e39bac6c9e0e422584e5f518bfd50aa4cbbea02433f"}, + {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:642c2e7a804fcf18c222e1060df25fc210b9c58db7c91416fb055897fc27e8cc"}, + {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b7c050ae976e286906dd3f26009e117eb000fb2cf3533398c5ad9ccc86867b1"}, + {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef3f72c9666bba2bab70d2a8b79f2c6d2c1a42a7f7e2b0ec83bb2f9e383950af"}, + {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:01c205616a89d09827986bc4e859bcabd64f5a0662a7fe95e0d359424e0e071b"}, + {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5a0f54ce2c092aaf439813735584b9537cad479575a09892b8352fea5e988dc0"}, + {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2cf71233a0ed05ccdabe209c606fe0bac7379fdcf687f39b944420d2a09fdb57"}, + {file = "wrapt-1.14.1-cp38-cp38-win32.whl", hash = "sha256:aa31fdcc33fef9eb2552cbcbfee7773d5a6792c137b359e82879c101e98584c5"}, + {file = "wrapt-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1967f46ea8f2db647c786e78d8cc7e4313dbd1b0aca360592d8027b8508e24d"}, + {file = "wrapt-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3232822c7d98d23895ccc443bbdf57c7412c5a65996c30442ebe6ed3df335383"}, + {file = "wrapt-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:988635d122aaf2bdcef9e795435662bcd65b02f4f4c1ae37fbee7401c440b3a7"}, + {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cca3c2cdadb362116235fdbd411735de4328c61425b0aa9f872fd76d02c4e86"}, + {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d52a25136894c63de15a35bc0bdc5adb4b0e173b9c0d07a2be9d3ca64a332735"}, + {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40e7bc81c9e2b2734ea4bc1aceb8a8f0ceaac7c5299bc5d69e37c44d9081d43b"}, + {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b9b7a708dd92306328117d8c4b62e2194d00c365f18eff11a9b53c6f923b01e3"}, + {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6a9a25751acb379b466ff6be78a315e2b439d4c94c1e99cb7266d40a537995d3"}, + {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:34aa51c45f28ba7f12accd624225e2b1e5a3a45206aa191f6f9aac931d9d56fe"}, + {file = "wrapt-1.14.1-cp39-cp39-win32.whl", hash = "sha256:dee0ce50c6a2dd9056c20db781e9c1cfd33e77d2d569f5d1d9321c641bb903d5"}, + {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"}, + {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"}, +] diff --git a/pyproject.toml b/pyproject.toml index 3704be4..eb68736 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,15 @@ [tool.black] line_length = 119 +[tool.pylint] +max-line-length=120 +ignore-paths=".*/migrations" +load-plugins = ["pylint_django "] +disable = ["missing-class-docstring", "missing-function-docstring", "abstract-method", "missing-module-docstring", +"imported-auth-user"] +good-names=["pk"] + + [tool.poetry] name = "cbwebreader" version = "1.0.5" @@ -44,6 +53,10 @@ ipython = "^8.4.0" coverage = "^6.2" pre-commit = "^2.20.0" +[tool.poetry.group.dev.dependencies] +pylint = "^2.15.0" +pylint-django = "^2.5.3" + [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"