관리-도구
편집 파일: METADATA
Metadata-Version: 2.1 Name: pylint-django Version: 2.5.3 Summary: A Pylint plugin to help Pylint understand the Django web framework Home-page: https://github.com/PyCQA/pylint-django Author: landscape.io Author-email: code@landscape.io License: GPLv2 Project-URL: Changelog, https://github.com/PyCQA/pylint-django/blob/master/CHANGELOG.rst Keywords: pylint,django,plugin Platform: UNKNOWN Classifier: Environment :: Console Classifier: Intended Audience :: Developers Classifier: Operating System :: Unix Classifier: Topic :: Software Development :: Quality Assurance Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Framework :: Django :: 1.11 Classifier: Framework :: Django :: 2.0 Classifier: Framework :: Django :: 2.2 Classifier: Framework :: Django :: 3.0 Classifier: Framework :: Django :: 3.1 Classifier: Framework :: Django :: 3.2 License-File: LICENSE Requires-Dist: pylint-plugin-utils (>=0.7) Requires-Dist: pylint (<3,>=2.0) Provides-Extra: for_tests Requires-Dist: django-tables2 ; extra == 'for_tests' Requires-Dist: factory-boy ; extra == 'for_tests' Requires-Dist: coverage ; extra == 'for_tests' Requires-Dist: pytest ; extra == 'for_tests' Requires-Dist: wheel ; extra == 'for_tests' Requires-Dist: django-tastypie ; extra == 'for_tests' Requires-Dist: pylint (>=2.13) ; extra == 'for_tests' Provides-Extra: with_django Requires-Dist: Django ; extra == 'with_django' pylint-django ============= .. image:: https://github.com/PyCQA/pylint-django/actions/workflows/build.yml/badge.svg :target: https://github.com/PyCQA/pylint-django/actions/workflows/build.yml .. image:: https://coveralls.io/repos/github/PyCQA/pylint-django/badge.svg?branch=master :target: https://coveralls.io/github/PyCQA/pylint-django?branch=master .. image:: https://img.shields.io/pypi/v/pylint-django.svg :target: https://pypi.python.org/pypi/pylint-django About ----- ``pylint-django`` is a `Pylint <http://pylint.org>`__ plugin for improving code analysis when analysing code using Django. It is also used by the `Prospector <https://github.com/landscapeio/prospector>`__ tool. Installation ------------ To install:: pip install pylint-django **WARNING:** ``pylint-django`` will not install ``Django`` by default because this causes more trouble than good, `see discussion <https://github.com/PyCQA/pylint-django/pull/132>`__. If you wish to automatically install the latest version of ``Django`` then:: pip install pylint-django[with_django] otherwise sort out your testing environment and please **DO NOT** report issues about missing Django! Usage ----- Ensure ``pylint-django`` is installed and on your path. In order to access some of the internal Django features to improve pylint inspections, you should also provide a Django settings module appropriate to your project. This can be done either with an environment variable:: DJANGO_SETTINGS_MODULE=your.app.settings pylint --load-plugins pylint_django [..other options..] <path_to_your_sources> Alternatively, this can be passed in as a commandline flag:: pylint --load-plugins pylint_django --django-settings-module=your.app.settings [..other options..] <path_to_your_sources> If you do not configure Django, default settings will be used but this will not include, for example, which applications to include in `INSTALLED_APPS` and so the linting and type inference will be less accurate. It is recommended to specify a settings module. Prospector ---------- If you have ``prospector`` installed, then ``pylint-django`` will already be installed as a dependency, and will be activated automatically if Django is detected:: prospector [..other options..] Features -------- * Prevents warnings about Django-generated attributes such as ``Model.objects`` or ``Views.request``. * Prevents warnings when using ``ForeignKey`` attributes ("Instance of ForeignKey has no <x> member"). * Fixes pylint's knowledge of the types of Model and Form field attributes * Validates ``Model.__unicode__`` methods. * ``Meta`` informational classes on forms and models do not generate errors. * Flags dangerous use of the exclude attribute in ModelForm.Meta. * Uses Django's internal machinery to try and resolve models referenced as strings in ForeignKey fields. That relies on ``django.setup()`` which needs the appropriate project settings defined! Additional plugins ------------------ ``pylint_django.checkers.migrations`` looks for migrations which: - add new model fields and these fields have a default value. According to `Django docs <https://docs.djangoproject.com/en/2.0/topics/migrations/#postgresql>`_ this may have performance penalties especially on large tables. The preferred way is to add a new DB column with ``null=True`` because it will be created instantly and then possibly populate the table with the desired default values. Only the last migration from a sub-directory will be examined; - are ``migrations.RunPython()`` without a reverse callable - these will result in non reversible data migrations; This plugin is disabled by default! To enable it:: pylint --load-plugins pylint_django --load-plugins pylint_django.checkers.migrations Contributing ------------ Please feel free to add your name to the ``CONTRIBUTORS.rst`` file if you want to be credited when pull requests get merged. You can also add to the ``CHANGELOG.rst`` file if you wish, although we'll also do that when merging. Tests ----- The structure of the test package follows that from pylint itself. It is fairly simple: create a module starting with ``func_`` followed by a test name, and insert into it some code. The tests will run pylint against these modules. If the idea is that no messages now occur, then that is fine, just check to see if it works by running ``scripts/test.sh``. Any command line argument passed to ``scripts/test.sh`` will be passed to the internal invocation of ``pytest``. For example if you want to debug the tests you can execute ``scripts/test.sh --capture=no``. A specific test case can be run by filtering based on the file name of the test case ``./scripts/test.sh -k 'func_noerror_views'``. Ideally, add some pylint error suppression messages to the file to prevent spurious warnings, since these are all tiny little modules not designed to do anything so there's no need to be perfect. It is possible to make tests with expected error output, for example, if adding a new message or simply accepting that pylint is supposed to warn. A ``test_file_name.txt`` file contains a list of expected error messages in the format ``error-type:line number:class name or empty:1st line of detailed error text:confidence or empty``. License ------- ``pylint-django`` is available under the GPLv2 license. Changelog ========= Version 2.5.3 (25 Mär 2022) --------------------------- Bugfixes ~~~~~~~~ - Fixed compatibility issue between pylint `2.12` and `2.13` to construct `ScopeConsumer` tuples correctly depending on version (`#358 <https://github.com/PyCQA/pylint-django/issues/358>`_) Other ~~~~~ - pylint version is now pinned to `<3` to give breathing space to update pylint-django before the major update lands Version 2.5.2 (18 Feb 2022) --------------------------- Bugfixes ~~~~~~~~ - Fixed crash with assigning a class to a variable, and referencing the variable when subclassing (`#349 <https://github.com/PyCQA/pylint-django/issues/349>`_) Other ~~~~~ - CI now tests against Django 4.0 Version 2.5.1 (16 Feb 2022) --------------------------- Bugfixes ~~~~~~~~ - Fixed pickling for `augment_visit` (`#276 <https://github.com/PyCQA/pylint-django/issues/276>`_) Version 2.5.0 (02 Jan 2022) --------------------------- Bugfixes ~~~~~~~~ - Fixed compatibility with astroid 2.9.1 (`#343 <https://github.com/PyCQA/pylint-django/issues/343>`_) New ~~~ - Removed false positive error of missing member in TextChoices tuples `#298 <https://github.com/PyCQA/pylint-django/issues/298>`_ (see pulls `#330 <https://github.com/PyCQA/pylint-django/pull/330>`_ and `#345 <https://github.com/PyCQA/pylint-django/pull/345>`_) - Moved from Travis CI to GitHub Actions (`#366 <https://github.com/PyCQA/pylint-django/pull/366>`_ and `#340 <https://github.com/PyCQA/pylint-django/pull/340>`_) - Added pre-commit configuration and began enforcing black/isort code formatting - Multiple test fixes (including `#338 <https://github.com/PyCQA/pylint-django/issues/338>`_) - newer versions of pylint expect a different format for the expected messages txt files. - Bumped dependency for pylint-django-utils to get `multi-threaded pylint support <https://github.com/PyCQA/pylint-plugin-utils/pull/21>`_ Version 2.4.4 (26 Apr 2021) --------------------------- - Fix compatibility issues with pylint >= 2.8. Fixes `#322 <https://github.com/PyCQA/pylint-django/issues/322>`_ and `#323 <https://github.com/PyCQA/pylint-django/issues/323>`_ Version 2.4.3 (09 Apr 2021) --------------------------- - Start testing with Django 3.2 on Python 3.9 (Michael K.) - Teach pylint-django about all HTTP methods from the View class, not only ``get`` and ``post`` (Nicolás Quiroz) - Typo fixes for `#314 <https://github.com/PyCQA/pylint-django/issues/314>`_ (John Sandall) - Ignore ``unused-argument`` for ``*args``, ``**kwards`` in view method signatures Version 2.4.2 (08 Jan 2021) --------------------------- - Moved `Faker` dependencies to test-only `#304 <https://github.com/PyCQA/pylint-django/issues/304>`_ Version 2.4.1 (07 Jan 2021) --------------------------- - Relaxed Faker package versioning requirement for ``Faker`` (Robin Chow) Version 2.4.0 (06 Jan 2021) --------------------------- - Allowed configuration of the Django settings module to be used via a commandline argument `#286 <https://github.com/PyCQA/pylint-django/issues/286>`_ - If Django settings are not specified via a commandline argument or environment variable, an error is issued but defaults are loaded from Django, removing the fatal error behaviour. `#277 <https://github.com/PyCQA/pylint-django/issues/277>`_ and `#243 <https://github.com/PyCQA/pylint-django/issues/243>`_ - Fixed tests to work with pylint>2.6 - Fixed ``AttributeError: 'Subscript' object has no attribute 'name'`` error. Closes `#284 <https://github.com/PyCQA/pylint-django/issues/284>`_ (@uy-rrodriguez) - Pin Faker version to Prevent Asteroid Crash (James Pulec) - Remove Python 3.5 Support (EOL since Sept 2020 and Faker requires 3.6 anyway) (James Pulec) - Fixed reverse manager ``update_or_create`` calls (James Pulec) Version 2.3.0 (05 Aug 2020) --------------------------- - Improvement in error message for ``missing-backwards-migration-callable`` (Bryan Mutai) - Start testing with Django 3.1 on Python 3.8 - Better error message when Django is not configured. Closes `#277 <https://github.com/PyCQA/pylint-django/issues/277>`_ Version 2.2.0 (22 Jul 2020) --------------------------- - Rely on Django to resolve string references in ForeignKey fields. Refs `#243 <https://github.com/PyCQA/pylint-django/issues/243>`_ (Alejandro Angulo) - Suppress ``unused-argument`` for functions in migration modules. Fix `#267 <https://github.com/PyCQA/pylint-django/issues/267>`_ - New checker for hard-coded ``auth.User``. Fix `#244 <https://github.com/PyCQA/pylint-django/issues/244>`_ Version 2.1.0 (12 Jul 2020) --------------------------- - New checker to warn about missing backwards data migrations (Bryan Mutai) - Rename ``pylint_django.checkers.db_performance`` to ``pylint_django.checkers.migrations`` - Add URL to project Changelog for PyPI (Ville Skyttä) - Fix failing test suite b/c of missing CSV dialect. Fix `#268 <https://github.com/PyCQA/pylint-django/issues/268>`_ (Alejandro Angulo) Version 2.0.15 (14 Apr 2020) ---------------------------- - Do not report error for ``gettext_lazy`` (Antonin MOREL) Version 2.0.14 (25 Feb 2020) ---------------------------- - Add support for Django 3.0 and Python 3.8 (Wayne Lambert) - Support ASGI. Fix `#258 <https://github.com/PyCQA/pylint-django/issues/258>`_ (Sander Maijers) Version 2.0.13 (23 Nov 2019), HackBulgaria edition -------------------------------------------------- - Suppress ``too-many-ancestors`` for class-based generic views - Add ``handler400``, ``handler403``, ``handler404`` to good_names. Fix `#248 <https://github.com/PyCQA/pylint-django/issues/248>`_ Version 2.0.12 (04 Nov 2019) ---------------------------- - Fix too broad suppression of ``unused-argument`` warnings for functions and methods where the first argument is named ``request``. Now issues warnings for the rest of the arguments if they are unused. Fix `#249 <https://github.com/PyCQA/pylint-django/issues/249>`_ (Pascal Urban) - Pass arguments of ``scripts/test.sh`` to ``test_func/pytest`` to ease development (Pascal Urban) - Document behavior when ForeignKey fields are referenced as strings. Fix `#241 <https://github.com/PyCQA/pylint-django/issues/241>`_ Version 2.0.11 (10 July 2019) ----------------------------- - Use ``functools.wrap`` to preserve ``leave_module`` info (Mohit Solanki) Version 2.0.10 (07 July 2019), Novi Sad edition ----------------------------------------------- - Suppress ``no-member`` for ``ManyToManyField``. Fix `#192 <https://github.com/PyCQA/pylint-django/issues/192>`_ and `#237 <https://github.com/PyCQA/pylint-django/issues/237>`_ (Pierre Chiquet) - Fix ``UnboundLocalError`` with ``ForeignKey(to=)``. Fix `#232 <https://github.com/PyCQA/pylint-django/issues/232>`_ (Sardorbek Imomaliev) Version 2.0.9 (26 April 2019) ----------------------------- - Fix ``UnboundLocalError: local variable 'key_cls' referenced before assignment`` for cases when models is a python package, the ``to`` argument is a string that is used in this pattern ``app.Model`` and also there is some other ``bool`` const like ``null=True`` right after ``to``. (Sardorbek Imomaliev) - Don't crash if ForeignKey field doesn't have keyword arguments Fix `#230 <https://github.com/PyCQA/pylint-django/issues/230>`_ Version 2.0.8 (18 April 2019) ----------------------------- - Support recursive (self) ForeignKey relations. Fix `#208 <https://github.com/PyCQA/pylint-django/issues/208>`_ (Daniil Kharkov) Version 2.0.7 (16 April 2019) ----------------------------- - Fixed ``AstroidImportError`` for ``DecimalField``. Fix `#221 <https://github.com/PyCQA/pylint-django/issues/221>`_ (Daniil Kharkov) - Add ``load_configuration()`` in ``pylint_django/__init__.py``. Fix #222 `#222 <https://github.com/PyCQA/pylint-django/issues/222>`_ - Support ForeignKey relations with ``to`` keyword. Fix `#223 <https://github.com/PyCQA/pylint-django/issues/223>`_ (Daniil Kharkov) Version 2.0.6 (27 Feb 2019) --------------------------- - Updating dependency version of pylint-plugin-utils as pylint 2.3 release was not compatible `#220 <https://github.com/PyCQA/pylint-django/issues/220>`_ - Improvements to tox.ini: `#217 <https://github.com/PyCQA/pylint-django/issues/217>`_ and `#216 <https://github.com/PyCQA/pylint-django/issues/216>`_ (@aerostitch) - Add support for new load_configuration hook of pylint `#214 <https://github.com/PyCQA/pylint-django/issues/214>`_ (@matusvalo) - 'urlpatterns' no longer reported as an invalid constant name Version 2.0.5 (17 Dec 2018) --------------------------- Bumping the version number because there's been a mix-up between GitHub tags and the versions pushed to PyPI for 2.0.3 and 2.0.4. Please use 2.0.5 which includes the changes mentioned below! Version 2.0.4 (do not use) -------------------------- - Avoid traceback with concurrent execution. Fix `#197 <https://github.com/PyCQA/pylint-django/issues/197>`_ - Suppress ``no-member`` errors for ``LazyFunction`` in factories - Suppress ``no-member`` errors for ``RelatedManager`` fields - Clean up compatibility code: `PR #207 <http://github.com/PyCQA/pylint-django/pull/207>`_ Version 2.0.3 (do not use) -------------------------- - Fixing compatability between ranges of astroid (2.0.4 -> 2.1) and pylint (2.1.1 -> 2.2). `#201 <https://github.com/PyCQA/pylint-django/issues/201>`_ and `#202 <https://github.com/PyCQA/pylint-django/issues/202>`_ Version 2.0.2 (26 Aug 2018) --------------------------- - Suppress false-positive no-self-argument in factory.post_generation. Fix `#190 <https://github.com/PyCQA/pylint-django/issues/190>`_ (Federico Bond) Version 2.0.1 (20 Aug 2018) --------------------------- - Enable testing with Django 2.1 - Add test for Model.objects.get_or_create(). Close `#156 <https://github.com/PyCQA/pylint-django/issues/156>`__ - Add test for objects.exclude(). Close `#177 <https://github.com/PyCQA/pylint-django/issues/177>`__ - Fix Instance of 'Model' has no 'id' member (no-member), fix Class 'UserCreationForm' has no 'declared_fields' member. Close `#184 <https://github.com/PyCQA/pylint-django/issues/184>`__ - Fix for Instance of 'ManyToManyField' has no 'add' member. Close `#163 <https://github.com/PyCQA/pylint-django/issues/163>`__ - Add test & fix for unused arguments on class based views Version 2.0 (25 July 2018) -------------------------- - Requires pylint >= 2.0 which doesn't support Python 2 anymore! - Add modelform-uses-unicode check to flag dangerous use of the exclude attribute in ModelForm.Meta (Federico Bond). Version 0.11.1 (25 May 2018), the DjangoCon Heidelberg edition -------------------------------------------------------------- - Enable test case for ``urlpatterns`` variable which was previously disabled - Disable ``unused-argument`` message for the ``request`` argument passed to view functions. Fix `#155 <https://github.com/PyCQA/pylint-django/issues/155>`__ - Add transformations for ``model_utils`` managers instead of special-casing them. Fix `#160 <https://github.com/PyCQA/pylint-django/issues/160>`__ Version 0.11 (18 April 2018), the TestCon Moscow edition -------------------------------------------------------- - New ``JsonResponseChecker`` that looks for common anti-patterns with http responses returning JSON. This includes:: HttpResponse(json.dumps(data)) HttpResponse(data, content_type='application/json') JsonResponse(data, content_type=...) Version 0.10.0 (10 April 2018) ------------------------------ - Remove the compatibility layer for older astroid versions - Make flake8 happy. Fix `#102 <https://github.com/PyCQA/pylint-django/issues/102>`__ - Fix: compatibility with Python < 3.6 caused by ``ModuleNotFoundError`` not available on older versions of Python (Juan Rial) - Show README and CHANGELOG on PyPI. Fix `#122 <https://github.com/PyCQA/pylint-django/issues/122>`__ - Fix explicit unicode check with ``python_2_unicode_compatible`` base models (Federico Bond) - Suppress ``not-an-iterable`` message for 'objects'. Fix `#117 <https://github.com/PyCQA/pylint-django/issues/117>`__ - Teach pylint_django that ``objects.all()`` is subscriptable. Fix `#144 <https://github.com/PyCQA/pylint-django/issues/144>`__ - Suppress ``invalid-name`` for ``wsgi.application``. Fix `#77 <https://github.com/PyCQA/pylint-django/issues/77>`__ - Add test for ``WSGIRequest.context``. Closes `#78 <https://github.com/PyCQA/pylint-django/issues/78>`__ - Register transforms for ``FileField``. Fix `#60 <https://github.com/PyCQA/pylint-django/issues/60>`__ - New checker ``pylint_django.checkers.db_performance``. Enables checking of migrations and reports when there's an ``AddField`` operation with a default value which may slow down applying migrations on large tables. This may also lead to production tables being locked while migrations are being applied. Fix `#118 <https://github.com/PyCQA/pylint-django/issues/118>`__ - Suppress ``no-member`` for ``factory.SubFactory`` objects. Useful when model factories use ``factory.SubFactory()`` for foreign key relations. Version 0.9.4 (12 March 2018) ----------------------------- - Add an optional dependency on Django - Fix the ``DjangoInstalledChecker`` so it can actually warn when Django isn't available - Fix `#136 <https://github.com/PyCQA/pylint-django/issues/136>`__ by adding automated build and sanity test scripts Version 0.9.3 (removed from PyPI) --------------------------------- - Fix `#133 <https://github.com/PyCQA/pylint-django/issues/133>`__ and `#134 <https://github.com/PyCQA/pylint-django/issues/134>`__ by including package data when building wheel and tar.gz packages for PyPI (Joseph Herlant) Version 0.9.2 (broken) ---------------------- - Fix `#129 <https://github.com/PyCQA/pylint-django/issues/129>`__ - Move tests under ``site-packages/pylint_django`` (Mr. Senko) - Fix `#96 <https://github.com/PyCQA/pylint-django/issues/96>`__ - List Django as a dependency (Mr. Senko) Version 0.9.1 (26 Feb 2018) --------------------------- - Fix `#123 <https://github.com/PyCQA/pylint-django/issues/123>`__ - Update links after the move to PyCQA (Mr. Senko) - Add test for Meta class from django\_tables2 (Mr. Senko) - Fix flake8 complaints (Peter Bittner) - Add missing .txt and .rc test files to MANIFEST.in (Joseph Herlant) Version 0.9 (25 Jan 2018) ------------------------- - Fix `#120 <https://github.com/PyCQA/pylint-django/issues/120>`__ - TypeError: 'NamesConsumer' object does not support indexing (Simone Basso) - Fix `#110 <https://github.com/PyCQA/pylint-django/issues/120>`__ and `#35 <https://github.com/PyCQA/pylint-django/issues/120>`__ - resolve ForeignKey models specified as strings instead of class names (Mr. Senko) Version 0.8.0 (20 Jan 2018) --------------------------- - This is the last version to support Python 2. Issues a deprecation warning! - `#109 <http://github.com/PyCQA/pylint-django/pull/109>`__, adding 'urlpatterns', 'register', 'app\_name' to good names. Obsoletes `#111 <http://github.com/PyCQA/pylint-django/pull/111>`__, fixes `#108 <http://github.com/PyCQA/pylint-django/issues/108>`__ (Vinay Pai) - Add 'handler500' to good names (Mr. Senko) - `#103 <http://github.com/PyCQA/pylint-django/pull/103>`__: Support factory\_boy's DjangoModelFactory Meta class (Konstantinos Koukopoulos) - `#100 <https://github.com/PyCQA/pylint-django/pull/100>`__: Fix E1101:Instance of '**proxy**\ ' has no 'format' member' when using .format() on a ugettext\_lazy translation. Fixes `#80 <https://github.com/PyCQA/pylint-django/issues/80>`__ (canarduck) - `#99 <https://github.com/PyCQA/pylint-django/pull/99>`__: Add tests and transforms for DurationField, fixes `#95 <https://github.com/PyCQA/pylint-django/issues/95>`__ (James M. Allen) - `#92 <https://github.com/PyCQA/pylint-django/pull/92>`__: Add json field to WSGIRequest proxy (sjk4sc) - `#84 <https://github.com/PyCQA/pylint-django/pull/84>`__: Add support for django.contrib.postgres.fields and UUIDField (Villiers Strauss) - Stop testing with older Django versions. Currently testing with Django 1.11.x and 2.0 - Stop testing on Python 2, no functional changes in the source code though - Update tests and require latest version of pylint (>=1.8), fixes `#53 <https://github.com/PyCQA/pylint-django/issues/53>`__, `#97 <https://github.com/PyCQA/pylint-django/issues/97>`__ - `#81 <https://github.com/PyCQA/pylint-django/issues/81>`__ Fix 'duplicate-except' false negative for except blocks which catch the ``DoesNotExist`` exception. Version 0.7.4 ------------- - `#88 <https://github.com/PyCQA/pylint-django/pull/88>`__ Fixed builds with Django 1.10 (thanks to `federicobond <https://github.com/federicobond>`__) - `#91 <https://github.com/PyCQA/pylint-django/pull/91>`__ Fixed race condition when running with pylint parallel execution mode (thanks to `jeremycarroll <https://github.com/jeremycarroll>`__) - `#64 <https://github.com/PyCQA/pylint-django/issues/64>`__ "Meta is old style class" now suppressed on BaseSerializer too (thanks to `unklphil <https://github.com/unklphil>`__) - `#70 <https://github.com/PyCQA/pylint-django/pull/70>`__ Updating to handle newer pylint/astroid versions (thanks to `iXce <https://github.com/iXce>`__) Version 0.7.2 ------------- - `#76 <https://github.com/PyCQA/pylint-django/pull/76>`__ Better handling of mongoengine querysetmanager - `#73 <https://github.com/PyCQA/pylint-django/pull/73>`__ `#72 <https://github.com/PyCQA/pylint-django/issues/72>`__ Make package zip safe to help fix some path problems - `#68 <https://github.com/PyCQA/pylint-django/pull/68>`__ Suppressed invalid constant warning for "app\_name" in urls.py - `#67 <https://github.com/PyCQA/pylint-django/pull/67>`__ Fix view.args and view.kwargs - `#66 <https://github.com/PyCQA/pylint-django/issues/66>`__ accessing \_meta no longer causes a protected-access warning as this is a public API as of Django 1.8 - `#65 <https://github.com/PyCQA/pylint-django/pull/65>`__ Add support of mongoengine module. - `#59 <https://github.com/PyCQA/pylint-django/pull/59>`__ Silence old-style-class for widget Meta Version 0.7.1 ------------- - `#52 <https://github.com/PyCQA/pylint-django/issues/52>`__ - Fixed stupid mistake when using versioninfo Version 0.7 ----------- - `#51 <https://github.com/PyCQA/pylint-django/issues/51>`__ - Fixed compatibility with pylint 1.5 / astroid 1.4.1 Version 0.6.1 ------------- - `#43 <https://github.com/PyCQA/pylint-django/issues/43>`__ - Foreign key ID access (``somefk_id``) does not raise an 'attribute not found' warning - `#31 <https://github.com/PyCQA/pylint-django/issues/31>`__ - Support for custom model managers (thanks `smirolo <https://github.com/smirolo>`__) - `#48 <https://github.com/PyCQA/pylint-django/pull/48>`__ - Added support for django-restframework (thanks `mbertolacci <https://github.com/mbertolacci>`__) Version 0.6 ----------- - Pylint 1.4 dropped support for Python 2.6, therefore a constraint is added that pylint-django will only work with Python2.6 if pylint<=1.3 is installed - `#40 <https://github.com/PyCQA/pylint-django/issues/40>`__ - pylint 1.4 warned about View and Model classes not having enough public methods; this is suppressed - `#37 <https://github.com/PyCQA/pylint-django/issues/37>`__ - fixed an infinite loop when using astroid 1.3.3+ - `#36 <https://github.com/PyCQA/pylint-django/issues/36>`__ - no longer warning about lack of ``__unicode__`` method on abstract model classes - `PR #34 <https://github.com/PyCQA/pylint-django/pull/34>`__ - prevent warning about use of ``super()`` on ModelManager classes Version 0.5.5 ------------- - `PR #27 <https://github.com/PyCQA/pylint-django/pull/27>`__ - better ``ForeignKey`` transforms, which now work when of the form ``othermodule.ModelClass``. This also fixes a problem where an inferred type would be ``_Yes`` and pylint would fail - `PR #28 <https://github.com/PyCQA/pylint-django/pull/28>`__ - better knowledge of ``ManyToManyField`` classes Version 0.5.4 ------------- - Improved resiliance to inference failure when Django types cannot be inferred (which can happen if Django is not on the system path Version 0.5.3 ------------- - `Issue #25 <https://github.com/PyCQA/pylint-django/issues/25>`__ Fixing cases where a module defines ``get`` as a method Version 0.5.2 ------------- - Fixed a problem where type inference could get into an infinite loop Version 0.5.1 ------------- - Removed usage of a Django object, as importing it caused Django to try to configure itself and thus throw an ImproperlyConfigured exception. Version 0.5 ----------- - `Issue #7 <https://github.com/PyCQA/pylint-django/issues/7>`__ Improved handling of Django model fields - `Issue #10 <https://github.com/PyCQA/pylint-django/issues/10>`__ No warning about missing **unicode** if the Django python3/2 compatability tools are used - `Issue #11 <https://github.com/PyCQA/pylint-django/issues/11>`__ Improved handling of Django form fields - `Issue #12 <https://github.com/PyCQA/pylint-django/issues/12>`__ Improved handling of Django ImageField and FileField objects - `Issue #14 <https://github.com/PyCQA/pylint-django/issues/14>`__ Models which do not define **unicode** but whose parents do now have a new error (W5103) instead of incorrectly warning about no **unicode** being present. - `Issue #21 <https://github.com/PyCQA/pylint-django/issues/21>`__ ``ForeignKey`` and ``OneToOneField`` fields on models are replaced with instance of the type they refer to in the AST, which allows pylint to generate correct warnings about attributes they may or may not have. Version 0.3 ----------- - Python3 is now supported - ``__unicode__`` warning on models does not appear in Python3 Version 0.2 ----------- - Pylint now recognises ``BaseForm`` as an ancestor of ``Form`` and subclasses - Improved ``Form`` support - `Issue #2 <https://github.com/PyCQA/pylint-django/issues/2>`__ - a subclass of a ``Model`` or ``Form`` also has warnings about a ``Meta`` class suppressed. - `Issue #3 <https://github.com/PyCQA/pylint-django/issues/3>`__ - ``Form`` and ``ModelForm`` subclasses no longer warn about ``Meta`` classes.