Pylint plugin for Odoo
Project description
Pylint Odoo plugin
Enable custom checks for Odoo modules.
Code |
Description |
Short name |
---|---|---|
C7902 |
Missing ./README.rst file. Template here: %s |
missing-readme |
C8101 |
Missing author required “%s” in manifest file |
manifest-required-author |
C8102 |
Missing required key “%s” in manifest file |
manifest-required-key |
C8103 |
Deprecated key “%s” in manifest file |
manifest-deprecated-key |
C8104 |
Use CamelCase “%s” in class name “%s”. You can use oca-autopep8 of https://github.com/OCA/maintainer-tools to auto fix it. |
class-camelcase |
C8105 |
License “%s” not allowed in manifest file. |
license-allowed |
C8106 |
Wrong Version Format “%s” in manifest file. Regex to match: “%s” |
manifest-version-format |
C8107 |
String parameter of raise “%s” requires translation. Use _(%s) |
translation-required |
C8108 |
Name of compute method should starts with “_compute_” |
method-compute |
C8109 |
Name of search method should starts with “_search_” |
method-search |
C8110 |
Name of inverse method should starts with “_inverse_” |
method-inverse |
C8201 |
No UTF-8 coding comment found: Use # coding: utf-8 or # -*- coding: utf-8 -*- |
no-utf8-coding-comment |
E7901 |
%s %s |
rst-syntax-error |
E7902 |
%s error: %s |
xml-syntax-error |
E8101 |
The author key in the manifest file must be a string (with comma separated values) |
manifest-author-string |
E8102 |
Use of cr.commit() directly - More info https://github.com/OCA/maintainer-tools/blob/master/CONTRIBUTING.md#never-commit-the-transaction |
invalid-commit |
E8103 |
Use of “%” operator in execute database method. Better use parameters instead. - More info https://github.com/OCA/maintainer-tools/blob/master/CONTRIBUTING.md#no-sql-injection |
sql-injection |
R7980 |
Consider merging classes inherited to “%s” from %s. |
consider-merging-classes-inherited |
R8101 |
Import Warning should be renamed as UserError from openerp.exceptions import Warning as UserError |
openerp-exception-warning |
R8110 |
Method defined with old api version 7 |
old-api7-method-defined |
W7901 |
%s Dangerous filter without explicit user_id in xml_id %s |
dangerous-filter-wo-user |
W7902 |
%s Duplicate xml record id “%s” in %s |
duplicate-xml-record-id |
W7903 |
%s |
javascript-lint |
W7904 |
%s Deprecated <openerp> xml node |
deprecated-openerp-xml-node |
W7905 |
%s record res.users without context=”{‘no_reset_password’: True}” |
create-user-wo-reset-password |
W7906 |
%s Duplicate id “%s” |
duplicate-id-csv |
W7907 |
%s Duplicate xml field “%s” in lines %s |
duplicate-xml-fields |
W7908 |
%s Missing newline |
missing-newline-extrafiles |
W7909 |
%s Redundant name module reference in xml_ids “%s”. |
redundant-modulename-xml |
W7910 |
%s Use wrong tabs indentation instead of four spaces |
wrong-tabs-instead-of-spaces |
W7930 |
%s not used from manifest |
file-not-used |
W7935 |
External dependency “%s” without ImportError. More info: https://github.com/OCA/maintainer-tools/blob/master/CONTRIBUTING.md#external-dependencies |
missing-import-error |
W7936 |
Missing external dependency “%s” from manifest. More info: https://github.com/OCA/maintainer-tools/blob/master/CONTRIBUTING.md#external-dependencies |
missing-manifest-dependency |
W7940 |
%s Dangerous use of “replace” from view with priority %s < %s |
dangerous-view-replace-wo-priority |
W7950 |
Same Odoo module absolute import. You should use relative import with “.” instead of “openerp.addons.%s” |
odoo-addons-relative-import |
W8101 |
Detected api.one and api.multi decorators together. |
api-one-multi-together |
W8102 |
Missing api.one or api.multi in copy function. |
copy-wo-api-one |
W8103 |
Translation method _(“string”) in fields is not necessary. |
translation-field |
W8104 |
api.one deprecated |
api-one-deprecated |
W8105 |
attribute “%s” deprecated |
attribute-deprecated |
W8106 |
Missing super call in “%s” method. |
method-required-super |
W8201 |
Incoherent interpreter comment and executable permission. Interpreter: [%s] Exec perm: %s |
incoherent-interpreter-exec-perm |
W8202 |
Use of vim comment |
use-vim-comment |
Install
# pip install --upgrade git+https://github.com/oca/pylint-odoo.git
Or
# pip install --upgrade --pre pylint-odoo
Usage
pylint --load-plugins=pylint_odoo -e odoolint ...
Example to test just odoo-lint case:
touch {ADDONS-PATH}/__init__.py
pylint --load-plugins=pylint_odoo -d all -e odoolint {ADDONS-PATH}
If you have external files you can add them in examples folder to skip.
For rst-syntax-error skip unknown directives
CHANGES
1.4.0
[REF] attribute-deprecated: Deprecate length class attribute (#86)
[ADD] missing-return If you use call a super method then you will need return the original value. If you want overwrite a original method then you need add documentation of why and add a pylint: disable=missing-return
[FIX] Whitelist anybox.testing.openerp * Add anybox.testing.openerp - Fixes #81
[FIX] manifest-version-format: Fix regex to use explicit dot instead of any char
[FIX] manifest-version-format: Support -e manifest-version-format only
[FIX] missing-import-error: Updating libraries used from requirements.txt but not imported or nested imported from odoo
[IMP] manifest-version-format: Add valid_odoo_versions parameter to force a valid version of odoo in the manifest version
[REF] missing-import-error: Skip test file since these files are loaded only when running tests and in such a case your module and their external dependencies are installed
[ADD] Support for 10.0 manifest name
[REF] requirements: Update developer version of pylint and astroid
1.3.5
Adding isort dependency (#70)
1.3.4
[REF] README: Update messages list
1.3.3
[ADD] missing-import-error, missing-manifest-dependency
[FIX] rst-syntax-error: Skip unknown roles
[FIX] rst-syntax-error: Skip unknown directives
[REF] global refactoring: better message output and use real file and line number in non-py files (#62)
[REF] README: Add examples special folder
[REF] checkers: Skip example folder to check lints
1.3.2
[REF] README: Update messages list
1.3.1
[ADD] file-not-used: Emit message if there are xml, yml, sql or csv files but It isn’t referenced from manifest (#53)
[ADD] dangerous-view-replace-wo-priority: Check dangerous view with replace but defined with low priority (#55)
[ADD] old-api7-method-defined: Emit message if the method defined have (self, cr, uid) (#52)
[ADD] odoo-addons-relative-import (#56)
[REF] tox: Freeze stable sha pylint20
[FIX] consider-merging-classes-inherited: Skip check if has ‘_name’ and fix when you use ‘_inherit’ name out of class attribute . Add more tests
[REF] missing-newline-extrafiles: Skip lib folder
[FIX] consider-merging-classes-inherited: Fix leaving module isn’t a good idea. Better close method
[IMP] consider-merging-classes-inherited: Support disable comment
[REF] consider-merging-classes-inherited: Use assign node and better message
[ADD] consider-merging-classes-inherited
[REF] Increase performance
[IMP] pylint_odoo: Enable cProfile print stats
[IMP] deprecated-module: Add exception for the case of valid openerp.osv.expression (#40)
[IMP] sql-injection: Add compatibility with .format (#44)
[REF] translation-required: 100% coverage
[IMP] translation-required: Support % strings
[IMP] translation-required: Support .format
[FIX] translation-required: Fix AttributeError ‘Getattr’ object has no attribute ‘name’
[IMP] translation-required: Just check odoo exceptions
[FIX] odoolint: Remove unsafe eval and reduce mccabe rate
1.3.0
[REF] README: Add new checks (#36)
[FIX] duplicate-xml-fields: Support security xml style (#35)
[ADD] sql-injection: Add new check to avoid sql injection (#29)
[FIX] missing-newline-extrafiles: Fix ‘IOError: [Errno 22] Invalid argument’ by files of size 2 (#37)
[REF] README: Add new checks
[ADD] method-param: Check param method starts with “_param_” (#33)
[FIX] join_node_args_kwargs: AttributeError (#30)
[REF] duplicate-id-csv: Better message of error - Message before: Duplicate id id_example1 in ir.model.access.csv file - Message now: security/ir.model.access.csv duplicated id id_example1
[REF] javascript-lint: Ignore /lib/ subfolder
[ADD] invalid-commit: Add new check invalid-commit - Verify the guideline https://github.com/oca/maintainer-tools/blob/master/CONTRIBUTING.md#never-commit-the-transaction
1.2.0
[REF] README.rst: Updating new checks
[IMP] test: Add tox for multi-environment and add compatiblity with latest version
[ADD] translation-required: Add check to required even a translation (#23)
[IMP] Add pylint check missing newline in extra extension files
[IMP] test: Add tox for multi-environment and add compatiblity with latest version
[IMP] Add Check tabs identation instead of four spaces
better_msg
merge
[REF] test: better way to identify check error expected
[IMP] Add check Duplicate field in xml record (#20)
[IMP] Add pylint check Redundant module name reference in xml_id
[IMP] pylint_odoo: Add check duplicate ids in ir.model.access.csv files
[IMP] pylint_odoo: Add check for manifest-version-format
[FIX] OCA/MQT#302: Use of astroid version 1.3.8
1.1.0
[FIX] setup: Build ChangeLog file
[ADD] Add check ‘deprecated-openerp-xml-node’
[ADD] ChangeLog: Empty file to support auto build
[FIX] Change _fields by _columns
[REF] Fix typo
[IMP] Add check ‘create-user-without-reset-password’
[IMP] Support odoo tag in xml file
[REF] Support of ‘noupdate’ in check ‘duplicate-xml-record-id’
[REF] setup.cfg: Enable ChangeLog
[REF] README: Add new message manifest-author-string
1.0.2
check that author is a string
1.0.1
[REF] Migrate md to rst
1.0.0
[IMP] .travis.yml: Enable auto deploy of pypi package from travis
[ADD] pylint_odoo: Add main package
[ADD] .gitignore: Add file gitignore for first commit
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.