1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602
|
Metadata-Version: 2.1
Name: pylint-django
Version: 2.0.13
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
Description: pylint-django
=============
.. image:: https://travis-ci.org/PyCQA/pylint-django.svg?branch=master
:target: https://travis-ci.org/PyCQA/pylint-django
.. image:: https://landscape.io/github/landscapeio/pylint-django/master/landscape.png
:target: https://landscape.io/github/landscapeio/pylint-django
.. image:: https://coveralls.io/repos/PyCQA/pylint-django/badge.svg
:target: https://coveralls.io/r/PyCQA/pylint-django
.. 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 and then execute::
pylint --load-plugins pylint_django [..other options..] <path_to_your_sources>
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.
Additional plugins
------------------
``pylint_django.checkers.db_performance`` 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 prefered 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!
This plugin is disabled by default! To enable it::
pylint --load-plugins pylint_django --load-plugins pylint_django.checkers.db_performance
Known issues
------------
If you reference foreign-key models by their name (as string) ``pylint-django`` may not be
able to find the model and will report issues because it has no idea what the underlying
type of this field is. Supported options are::
- ``self`` and ``Model`` - look for this class in the current module which is being examined
- ``app.Model`` - try loading ``app.models`` into the AST parser and look for ``Model`` there
If your ``models.py`` itself is not importing the foreign-key class
there's probably some import problem (likely circular dependencies) preventing referencing
the foreign-key class directly. In this case ``pylint-django`` can't do much about it.
We always recommend referencing foreign-key models by their classes.
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.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.
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.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Provides-Extra: with_django
Provides-Extra: for_tests
|