summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 13:52:29 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 13:52:29 +0000
commit72c29eb931e1ce874ef5d97e6af0a4068adc83bb (patch)
treef8db02a2c1ec14382a66f03c9375e5849a57829d
parent0b3cc2814e72912783df43d3e8cec83b61714132 (diff)
automatic import of python-pylint-odoo
-rw-r--r--.gitignore1
-rw-r--r--python-pylint-odoo.spec759
-rw-r--r--sources1
3 files changed, 761 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..104f785 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pylint-odoo-8.0.19.tar.gz
diff --git a/python-pylint-odoo.spec b/python-pylint-odoo.spec
new file mode 100644
index 0000000..f2ee3ef
--- /dev/null
+++ b/python-pylint-odoo.spec
@@ -0,0 +1,759 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pylint-odoo
+Version: 8.0.19
+Release: 1
+Summary: Pylint plugin for Odoo
+License: APGL3
+URL: https://github.com/OCA/pylint-odoo
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/d8/c6/ccfb5a9635a7ad6cb1026e045e3d658e5f0db3481faafef91d215ba8aed6/pylint-odoo-8.0.19.tar.gz
+BuildArch: noarch
+
+Requires: python3-pylint-plugin-utils
+Requires: python3-pylint
+Requires: python3-validators
+
+%description
+attribute-deprecated | attribute "%s" deprecated | W8105
+attribute-string-redundant | The attribute string is redundant. String parameter equal to name of variable | W8113
+bad-builtin-groupby | Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376 | W8155
+consider-merging-classes-inherited | Consider merging classes inherited to "%s" from %s. | R8180
+context-overridden | Context overridden using dict. Better using kwargs `with_context(**%s)` or `with_context(key=value)` | W8121
+development-status-allowed | Manifest key development_status "%s" not allowed. Use one of: %s. | C8111
+except-pass | pass into block except. If you really need to use the pass consider logging that exception | W8138
+external-request-timeout | Use of external request method `%s` without timeout. It could wait for a long time | E8106
+invalid-commit | Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction | E8102
+license-allowed | License "%s" not allowed in manifest file. | C8105
+manifest-author-string | The author key in the manifest file must be a string (with comma separated values) | E8101
+manifest-data-duplicated | The file "%s" is duplicated in lines %s from manifest key "%s" | W8125
+manifest-deprecated-key | Deprecated key "%s" in manifest file | C8103
+manifest-maintainers-list | The maintainers key in the manifest file must be a list of strings | E8104
+manifest-required-author | One of the following authors must be present in manifest: %s | C8101
+manifest-required-key | Missing required key "%s" in manifest file | C8102
+manifest-version-format | Wrong Version Format "%s" in manifest file. Regex to match: "%s" | C8106
+method-compute | Name of compute method should start with "_compute_" | C8108
+method-inverse | Name of inverse method should start with "_inverse_" | C8110
+method-required-super | Missing `super` call in "%s" method. | W8106
+method-search | Name of search method should start with "_search_" | C8109
+missing-readme | Missing ./README.rst file. Template here: %s | C8112
+missing-return | Missing `return` (`super` is used) in method %s. | W8110
+no-wizard-in-models | No wizard class for model directory. See the complete structure https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#complete-structure | C8113
+no-write-in-compute | Compute method calling `write`. Use `update` instead. | E8135
+odoo-addons-relative-import | Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.%s" | W8150
+odoo-exception-warning | `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError` | R8101
+print-used | Print used. Use `logger` instead. | W8116
+renamed-field-parameter | Field parameter "%s" is no longer supported. Use "%s" instead. | W8111
+resource-not-exist | File "%s": "%s" not found. | F8101
+sql-injection | SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection | E8103
+test-folder-imported | Test folder imported in module %s | E8130
+translation-contains-variable | Translatable term in "%s" contains variables. Use %s instead | W8115
+translation-field | Translation method _("string") in fields is not necessary. | W8103
+translation-format-interpolation | Use %s formatting in odoo._ functions | W8302
+translation-format-truncated | Logging format string ends in middle of conversion specifier | E8301
+translation-fstring-interpolation | Use %s formatting in odoo._ functions | W8303
+translation-not-lazy | Use %s formatting in odoo._ functions | W8301
+translation-positional-used | Translation method _(%s) is using positional string printf formatting. Use named placeholder `_("%%(placeholder)s")` instead. | W8120
+translation-required | String parameter on "%s" requires translation. Use %s_(%s) | C8107
+translation-too-few-args | Not enough arguments for odoo._ format string | E8306
+translation-too-many-args | Too many arguments for odoo._ format string | E8305
+translation-unsupported-format | Unsupported odoo._ format character %r (%#02x) at index %d | E8300
+use-vim-comment | Use of vim comment | W8202
+website-manifest-key-not-valid-uri | Website "%s" in manifest key is not a valid URI | W8114
+[//]: # (end-checks)
+# Install
+You do not need to install manually if you use pre-commit-config
+But if you even need to install it
+ pip install pylint-odoo
+# Usage pre-commit-config.yaml
+Add to your ".pre-commit-config.yaml" configuration file the following input
+```yaml
+ - repo: https://github.com/OCA/pylint-odoo
+ rev: v8.0.19
+ hooks:
+ # Add to your .pylintrc file:
+ # [MASTER]
+ # load-plugins=pylint_odoo
+ - id: pylint
+```
+# Usage
+ pylint --load-plugins=pylint_odoo -e odoolint path/to/test
+or use configuration file you can generate the OCA one using the following template repository:
+ https://github.com/OCA/oca-addons-repo-template
+Then running
+ pylint --rcfile=.pylintrc path/to/test
+Example to test only pylint_odoo checks:
+ pylint --load-plugins=pylint_odoo -d all -e odoolint {ADDONS-PATH}/*
+There are checks only valid for a particular Odoo version
+To know what version of odoo are you running pylint needs the parameter
+ pylint --load-plugins=pylint_odoo --valid-odoo-versions={YOUR_ODOO_VERSION}
+with particular odoo version e.g. `"16.0"`
+Checks valid only for odoo >= 14.0
+ translation-format-interpolation
+ translation-format-truncated
+ translation-fstring-interpolation
+ translation-not-lazy
+ translation-too-few-args
+ translation-too-many-args
+ translation-unsupported-format
+Checks valid only for odoo <= 13.0
+ translation-contains-variable
+[//]: # (start-example)
+# Examples
+ * attribute-deprecated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L93 attribute "_columns" deprecated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L94 attribute "_defaults" deprecated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L95 attribute "length" deprecated
+ * attribute-string-redundant
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L149 The attribute string is redundant. String parameter equal to name of variable
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L197 The attribute string is redundant. String parameter equal to name of variable
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L207 The attribute string is redundant. String parameter equal to name of variable
+ * bad-builtin-groupby
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L98 Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L99 Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376
+ * consider-merging-classes-inherited
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/model_inhe2.py#L11 Consider merging classes inherited to "res.company" from testing/resources/test_repo/broken_module/models/model_inhe1.py:8:4, testing/resources/test_repo/broken_module/models/model_inhe2.py:7:4.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/model_inhe2.py#L19 Consider merging classes inherited to "res.partner" from testing/resources/test_repo/broken_module/models/model_inhe2.py:15:4.
+ * context-overridden
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L180 Context overridden using dict. Better using kwargs `with_context(**{'overwrite_context': True})` or `with_context(key=value)`
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L182 Context overridden using dict. Better using kwargs `with_context(**ctx)` or `with_context(key=value)`
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L184 Context overridden using dict. Better using kwargs `with_context(**ctx2)` or `with_context(key=value)`
+ * development-status-allowed
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module2/__openerp__.py#L6 Manifest key development_status "InvalidDevStatus" not allowed. Use one of: Alpha, Beta, Mature, Production/Stable.
+ * except-pass
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/test_module/except_pass.py#L11 pass into block except. If you really need to use the pass consider logging that exception
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/test_module/except_pass.py#L53 pass into block except. If you really need to use the pass consider logging that exception
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/test_module/except_pass.py#L62 pass into block except. If you really need to use the pass consider logging that exception
+ * external-request-timeout
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L673 Use of external request method `requests.delete` without timeout. It could wait for a long time
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L674 Use of external request method `requests.get` without timeout. It could wait for a long time
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L675 Use of external request method `requests.head` without timeout. It could wait for a long time
+ * invalid-commit
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L392 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L393 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L394 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
+ * license-allowed
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module2/__openerp__.py#L4 License "unknow license" not allowed in manifest file.
+ * manifest-author-string
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module3/__openerp__.py#L5 The author key in the manifest file must be a string (with comma separated values)
+ * manifest-data-duplicated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L18 The file "duplicated.xml" is duplicated in lines 19 from manifest key "data"
+ * manifest-deprecated-key
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L7 Deprecated key "description" in manifest file
+ * manifest-maintainers-list
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module3/__openerp__.py#L6 The maintainers key in the manifest file must be a list of strings
+ * manifest-required-author
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L5 One of the following authors must be present in manifest: 'Odoo Community Association (OCA)'
+ * manifest-required-key
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L2 Missing required key "license" in manifest file
+ * manifest-version-format
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L8 Wrong Version Format "8_0.1.0.0" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0)\.\d+\.\d+\.\d+$"
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module2/__openerp__.py#L8 Wrong Version Format "1.0" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0)\.\d+\.\d+\.\d+$"
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module3/__openerp__.py#L8 Wrong Version Format "8.0.1.0.0foo" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0)\.\d+\.\d+\.\d+$"
+ * method-compute
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L143 Name of compute method should start with "_compute_"
+ * method-inverse
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L145 Name of inverse method should start with "_inverse_"
+ * method-required-super
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L40 Missing `super` call in "copy" method.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L44 Missing `super` call in "create" method.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L48 Missing `super` call in "write" method.
+ * method-search
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L144 Name of search method should start with "_search_"
+ * missing-readme
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L2 Missing ./README.rst file. Template here: https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst
+ * missing-return
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L24 Missing `return` (`super` is used) in method inherited_method.
+ * no-wizard-in-models
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L812 No wizard class for model directory. See the complete structure https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#complete-structure
+ * no-write-in-compute
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L102 Compute method calling `write`. Use `update` instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L104 Compute method calling `write`. Use `update` instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L107 Compute method calling `write`. Use `update` instead.
+ * odoo-addons-relative-import
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L49 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L50 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L51 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
+ * odoo-exception-warning
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L10 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L11 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L8 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
+ * print-used
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/test_module/except_pass.py#L20 Print used. Use `logger` instead.
+ * renamed-field-parameter
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L197 Field parameter "digits_compute" is no longer supported. Use "digits" instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L197 Field parameter "select" is no longer supported. Use "index" instead.
+ * resource-not-exist
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L14 File "data": "file_no_exist.xml" not found.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L18 File "data": "duplicated.xml" not found.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L23 File "demo": "file_no_exist.xml" not found.
+ * sql-injection
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L559 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L561 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L563 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
+ * test-folder-imported
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__init__.py#L5 Test folder imported in module broken_module
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module2/__init__.py#L3 Test folder imported in module broken_module2
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/eleven_module/__init__.py#L3 Test folder imported in module eleven_module
+ * translation-contains-variable
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L359 Translatable term in "'Variable not translatable: %s' % variable1" contains variables. Use _('Variable not translatable: %s') % variable1 instead
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L360 Translatable term in "'Variables not translatable: %s, %s' % (variable1, variable2)" contains variables. Use _('Variables not translatable: %s, %s') % (variable1, variable2) instead
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L362 Translatable term in "'Variable not translatable: %s' % variable1" contains variables. Use _('Variable not translatable: %s') % variable1 instead
+ * translation-field
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L131 Translation method _("string") in fields is not necessary.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L141 Translation method _("string") in fields is not necessary.
+ * translation-format-interpolation
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L368 Use lazy % or .format() or % formatting in odoo._ functions
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L369 Use lazy % or .format() or % formatting in odoo._ functions
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L456 Use lazy % or .format() or % formatting in odoo._ functions
+ * translation-format-truncated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L467 Logging format string ends in middle of conversion specifier
+ * translation-fstring-interpolation
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L465 Use lazy % or .format() or % formatting in odoo._ functions
+ * translation-not-lazy
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L333 Use lazy % or .format() or % formatting in odoo._ functions
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L334 Use lazy % or .format() or % formatting in odoo._ functions
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L336 Use lazy % or .format() or % formatting in odoo._ functions
+ * translation-positional-used
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L360 Translation method _('Variables not translatable: %s, %s' % (variable1, variable2)) is using positional string printf formatting. Use named placeholder `_("%(placeholder)s")` instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L363 Translation method _('Variables not translatable: %s %s' % (variable1, variable2)) is using positional string printf formatting. Use named placeholder `_("%(placeholder)s")` instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L366 Translation method _('Variables not translatable: %s, %s' % (variable1, variable2)) is using positional string printf formatting. Use named placeholder `_("%(placeholder)s")` instead.
+ * translation-required
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L310 String parameter on "message_post" requires translation. Use body=_('Body not translatable %s')
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L310 String parameter on "message_post" requires translation. Use subject=_('Subject not translatable')
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L312 String parameter on "message_post" requires translation. Use body=_('Body not translatable {}')
+ * translation-too-few-args
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L463 Not enough arguments for odoo._ format string
+ * translation-too-many-args
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L468 Too many arguments for odoo._ format string
+ * translation-unsupported-format
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L466 Unsupported odoo._ format character 'y' (0x79) at index 30
+ * use-vim-comment
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L108 Use of vim comment
+ * website-manifest-key-not-valid-uri
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module3/__openerp__.py#L7 Website "htt://odoo-community.com" in manifest key is not a valid URI
+[//]: # (end-example)
+# Development
+To run all the tests run:
+ tox
+Use extra parameters to change the test behaviour
+e.g. particular python version
+ tox -e py310
+e.g. particular unittest method
+ tox -e py310 -- -k test_20_expected_errors
+e.g. all the tests at the same time in parallel
+ tox -p auto
+## Licenses
+
+%package -n python3-pylint-odoo
+Summary: Pylint plugin for Odoo
+Provides: python-pylint-odoo
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pylint-odoo
+attribute-deprecated | attribute "%s" deprecated | W8105
+attribute-string-redundant | The attribute string is redundant. String parameter equal to name of variable | W8113
+bad-builtin-groupby | Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376 | W8155
+consider-merging-classes-inherited | Consider merging classes inherited to "%s" from %s. | R8180
+context-overridden | Context overridden using dict. Better using kwargs `with_context(**%s)` or `with_context(key=value)` | W8121
+development-status-allowed | Manifest key development_status "%s" not allowed. Use one of: %s. | C8111
+except-pass | pass into block except. If you really need to use the pass consider logging that exception | W8138
+external-request-timeout | Use of external request method `%s` without timeout. It could wait for a long time | E8106
+invalid-commit | Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction | E8102
+license-allowed | License "%s" not allowed in manifest file. | C8105
+manifest-author-string | The author key in the manifest file must be a string (with comma separated values) | E8101
+manifest-data-duplicated | The file "%s" is duplicated in lines %s from manifest key "%s" | W8125
+manifest-deprecated-key | Deprecated key "%s" in manifest file | C8103
+manifest-maintainers-list | The maintainers key in the manifest file must be a list of strings | E8104
+manifest-required-author | One of the following authors must be present in manifest: %s | C8101
+manifest-required-key | Missing required key "%s" in manifest file | C8102
+manifest-version-format | Wrong Version Format "%s" in manifest file. Regex to match: "%s" | C8106
+method-compute | Name of compute method should start with "_compute_" | C8108
+method-inverse | Name of inverse method should start with "_inverse_" | C8110
+method-required-super | Missing `super` call in "%s" method. | W8106
+method-search | Name of search method should start with "_search_" | C8109
+missing-readme | Missing ./README.rst file. Template here: %s | C8112
+missing-return | Missing `return` (`super` is used) in method %s. | W8110
+no-wizard-in-models | No wizard class for model directory. See the complete structure https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#complete-structure | C8113
+no-write-in-compute | Compute method calling `write`. Use `update` instead. | E8135
+odoo-addons-relative-import | Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.%s" | W8150
+odoo-exception-warning | `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError` | R8101
+print-used | Print used. Use `logger` instead. | W8116
+renamed-field-parameter | Field parameter "%s" is no longer supported. Use "%s" instead. | W8111
+resource-not-exist | File "%s": "%s" not found. | F8101
+sql-injection | SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection | E8103
+test-folder-imported | Test folder imported in module %s | E8130
+translation-contains-variable | Translatable term in "%s" contains variables. Use %s instead | W8115
+translation-field | Translation method _("string") in fields is not necessary. | W8103
+translation-format-interpolation | Use %s formatting in odoo._ functions | W8302
+translation-format-truncated | Logging format string ends in middle of conversion specifier | E8301
+translation-fstring-interpolation | Use %s formatting in odoo._ functions | W8303
+translation-not-lazy | Use %s formatting in odoo._ functions | W8301
+translation-positional-used | Translation method _(%s) is using positional string printf formatting. Use named placeholder `_("%%(placeholder)s")` instead. | W8120
+translation-required | String parameter on "%s" requires translation. Use %s_(%s) | C8107
+translation-too-few-args | Not enough arguments for odoo._ format string | E8306
+translation-too-many-args | Too many arguments for odoo._ format string | E8305
+translation-unsupported-format | Unsupported odoo._ format character %r (%#02x) at index %d | E8300
+use-vim-comment | Use of vim comment | W8202
+website-manifest-key-not-valid-uri | Website "%s" in manifest key is not a valid URI | W8114
+[//]: # (end-checks)
+# Install
+You do not need to install manually if you use pre-commit-config
+But if you even need to install it
+ pip install pylint-odoo
+# Usage pre-commit-config.yaml
+Add to your ".pre-commit-config.yaml" configuration file the following input
+```yaml
+ - repo: https://github.com/OCA/pylint-odoo
+ rev: v8.0.19
+ hooks:
+ # Add to your .pylintrc file:
+ # [MASTER]
+ # load-plugins=pylint_odoo
+ - id: pylint
+```
+# Usage
+ pylint --load-plugins=pylint_odoo -e odoolint path/to/test
+or use configuration file you can generate the OCA one using the following template repository:
+ https://github.com/OCA/oca-addons-repo-template
+Then running
+ pylint --rcfile=.pylintrc path/to/test
+Example to test only pylint_odoo checks:
+ pylint --load-plugins=pylint_odoo -d all -e odoolint {ADDONS-PATH}/*
+There are checks only valid for a particular Odoo version
+To know what version of odoo are you running pylint needs the parameter
+ pylint --load-plugins=pylint_odoo --valid-odoo-versions={YOUR_ODOO_VERSION}
+with particular odoo version e.g. `"16.0"`
+Checks valid only for odoo >= 14.0
+ translation-format-interpolation
+ translation-format-truncated
+ translation-fstring-interpolation
+ translation-not-lazy
+ translation-too-few-args
+ translation-too-many-args
+ translation-unsupported-format
+Checks valid only for odoo <= 13.0
+ translation-contains-variable
+[//]: # (start-example)
+# Examples
+ * attribute-deprecated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L93 attribute "_columns" deprecated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L94 attribute "_defaults" deprecated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L95 attribute "length" deprecated
+ * attribute-string-redundant
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L149 The attribute string is redundant. String parameter equal to name of variable
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L197 The attribute string is redundant. String parameter equal to name of variable
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L207 The attribute string is redundant. String parameter equal to name of variable
+ * bad-builtin-groupby
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L98 Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L99 Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376
+ * consider-merging-classes-inherited
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/model_inhe2.py#L11 Consider merging classes inherited to "res.company" from testing/resources/test_repo/broken_module/models/model_inhe1.py:8:4, testing/resources/test_repo/broken_module/models/model_inhe2.py:7:4.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/model_inhe2.py#L19 Consider merging classes inherited to "res.partner" from testing/resources/test_repo/broken_module/models/model_inhe2.py:15:4.
+ * context-overridden
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L180 Context overridden using dict. Better using kwargs `with_context(**{'overwrite_context': True})` or `with_context(key=value)`
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L182 Context overridden using dict. Better using kwargs `with_context(**ctx)` or `with_context(key=value)`
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L184 Context overridden using dict. Better using kwargs `with_context(**ctx2)` or `with_context(key=value)`
+ * development-status-allowed
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module2/__openerp__.py#L6 Manifest key development_status "InvalidDevStatus" not allowed. Use one of: Alpha, Beta, Mature, Production/Stable.
+ * except-pass
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/test_module/except_pass.py#L11 pass into block except. If you really need to use the pass consider logging that exception
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/test_module/except_pass.py#L53 pass into block except. If you really need to use the pass consider logging that exception
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/test_module/except_pass.py#L62 pass into block except. If you really need to use the pass consider logging that exception
+ * external-request-timeout
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L673 Use of external request method `requests.delete` without timeout. It could wait for a long time
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L674 Use of external request method `requests.get` without timeout. It could wait for a long time
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L675 Use of external request method `requests.head` without timeout. It could wait for a long time
+ * invalid-commit
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L392 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L393 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L394 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
+ * license-allowed
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module2/__openerp__.py#L4 License "unknow license" not allowed in manifest file.
+ * manifest-author-string
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module3/__openerp__.py#L5 The author key in the manifest file must be a string (with comma separated values)
+ * manifest-data-duplicated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L18 The file "duplicated.xml" is duplicated in lines 19 from manifest key "data"
+ * manifest-deprecated-key
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L7 Deprecated key "description" in manifest file
+ * manifest-maintainers-list
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module3/__openerp__.py#L6 The maintainers key in the manifest file must be a list of strings
+ * manifest-required-author
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L5 One of the following authors must be present in manifest: 'Odoo Community Association (OCA)'
+ * manifest-required-key
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L2 Missing required key "license" in manifest file
+ * manifest-version-format
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L8 Wrong Version Format "8_0.1.0.0" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0)\.\d+\.\d+\.\d+$"
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module2/__openerp__.py#L8 Wrong Version Format "1.0" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0)\.\d+\.\d+\.\d+$"
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module3/__openerp__.py#L8 Wrong Version Format "8.0.1.0.0foo" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0)\.\d+\.\d+\.\d+$"
+ * method-compute
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L143 Name of compute method should start with "_compute_"
+ * method-inverse
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L145 Name of inverse method should start with "_inverse_"
+ * method-required-super
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L40 Missing `super` call in "copy" method.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L44 Missing `super` call in "create" method.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L48 Missing `super` call in "write" method.
+ * method-search
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L144 Name of search method should start with "_search_"
+ * missing-readme
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L2 Missing ./README.rst file. Template here: https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst
+ * missing-return
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L24 Missing `return` (`super` is used) in method inherited_method.
+ * no-wizard-in-models
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L812 No wizard class for model directory. See the complete structure https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#complete-structure
+ * no-write-in-compute
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L102 Compute method calling `write`. Use `update` instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L104 Compute method calling `write`. Use `update` instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L107 Compute method calling `write`. Use `update` instead.
+ * odoo-addons-relative-import
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L49 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L50 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L51 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
+ * odoo-exception-warning
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L10 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L11 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L8 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
+ * print-used
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/test_module/except_pass.py#L20 Print used. Use `logger` instead.
+ * renamed-field-parameter
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L197 Field parameter "digits_compute" is no longer supported. Use "digits" instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L197 Field parameter "select" is no longer supported. Use "index" instead.
+ * resource-not-exist
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L14 File "data": "file_no_exist.xml" not found.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L18 File "data": "duplicated.xml" not found.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L23 File "demo": "file_no_exist.xml" not found.
+ * sql-injection
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L559 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L561 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L563 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
+ * test-folder-imported
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__init__.py#L5 Test folder imported in module broken_module
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module2/__init__.py#L3 Test folder imported in module broken_module2
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/eleven_module/__init__.py#L3 Test folder imported in module eleven_module
+ * translation-contains-variable
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L359 Translatable term in "'Variable not translatable: %s' % variable1" contains variables. Use _('Variable not translatable: %s') % variable1 instead
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L360 Translatable term in "'Variables not translatable: %s, %s' % (variable1, variable2)" contains variables. Use _('Variables not translatable: %s, %s') % (variable1, variable2) instead
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L362 Translatable term in "'Variable not translatable: %s' % variable1" contains variables. Use _('Variable not translatable: %s') % variable1 instead
+ * translation-field
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L131 Translation method _("string") in fields is not necessary.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L141 Translation method _("string") in fields is not necessary.
+ * translation-format-interpolation
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L368 Use lazy % or .format() or % formatting in odoo._ functions
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L369 Use lazy % or .format() or % formatting in odoo._ functions
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L456 Use lazy % or .format() or % formatting in odoo._ functions
+ * translation-format-truncated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L467 Logging format string ends in middle of conversion specifier
+ * translation-fstring-interpolation
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L465 Use lazy % or .format() or % formatting in odoo._ functions
+ * translation-not-lazy
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L333 Use lazy % or .format() or % formatting in odoo._ functions
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L334 Use lazy % or .format() or % formatting in odoo._ functions
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L336 Use lazy % or .format() or % formatting in odoo._ functions
+ * translation-positional-used
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L360 Translation method _('Variables not translatable: %s, %s' % (variable1, variable2)) is using positional string printf formatting. Use named placeholder `_("%(placeholder)s")` instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L363 Translation method _('Variables not translatable: %s %s' % (variable1, variable2)) is using positional string printf formatting. Use named placeholder `_("%(placeholder)s")` instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L366 Translation method _('Variables not translatable: %s, %s' % (variable1, variable2)) is using positional string printf formatting. Use named placeholder `_("%(placeholder)s")` instead.
+ * translation-required
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L310 String parameter on "message_post" requires translation. Use body=_('Body not translatable %s')
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L310 String parameter on "message_post" requires translation. Use subject=_('Subject not translatable')
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L312 String parameter on "message_post" requires translation. Use body=_('Body not translatable {}')
+ * translation-too-few-args
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L463 Not enough arguments for odoo._ format string
+ * translation-too-many-args
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L468 Too many arguments for odoo._ format string
+ * translation-unsupported-format
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L466 Unsupported odoo._ format character 'y' (0x79) at index 30
+ * use-vim-comment
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L108 Use of vim comment
+ * website-manifest-key-not-valid-uri
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module3/__openerp__.py#L7 Website "htt://odoo-community.com" in manifest key is not a valid URI
+[//]: # (end-example)
+# Development
+To run all the tests run:
+ tox
+Use extra parameters to change the test behaviour
+e.g. particular python version
+ tox -e py310
+e.g. particular unittest method
+ tox -e py310 -- -k test_20_expected_errors
+e.g. all the tests at the same time in parallel
+ tox -p auto
+## Licenses
+
+%package help
+Summary: Development documents and examples for pylint-odoo
+Provides: python3-pylint-odoo-doc
+%description help
+attribute-deprecated | attribute "%s" deprecated | W8105
+attribute-string-redundant | The attribute string is redundant. String parameter equal to name of variable | W8113
+bad-builtin-groupby | Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376 | W8155
+consider-merging-classes-inherited | Consider merging classes inherited to "%s" from %s. | R8180
+context-overridden | Context overridden using dict. Better using kwargs `with_context(**%s)` or `with_context(key=value)` | W8121
+development-status-allowed | Manifest key development_status "%s" not allowed. Use one of: %s. | C8111
+except-pass | pass into block except. If you really need to use the pass consider logging that exception | W8138
+external-request-timeout | Use of external request method `%s` without timeout. It could wait for a long time | E8106
+invalid-commit | Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction | E8102
+license-allowed | License "%s" not allowed in manifest file. | C8105
+manifest-author-string | The author key in the manifest file must be a string (with comma separated values) | E8101
+manifest-data-duplicated | The file "%s" is duplicated in lines %s from manifest key "%s" | W8125
+manifest-deprecated-key | Deprecated key "%s" in manifest file | C8103
+manifest-maintainers-list | The maintainers key in the manifest file must be a list of strings | E8104
+manifest-required-author | One of the following authors must be present in manifest: %s | C8101
+manifest-required-key | Missing required key "%s" in manifest file | C8102
+manifest-version-format | Wrong Version Format "%s" in manifest file. Regex to match: "%s" | C8106
+method-compute | Name of compute method should start with "_compute_" | C8108
+method-inverse | Name of inverse method should start with "_inverse_" | C8110
+method-required-super | Missing `super` call in "%s" method. | W8106
+method-search | Name of search method should start with "_search_" | C8109
+missing-readme | Missing ./README.rst file. Template here: %s | C8112
+missing-return | Missing `return` (`super` is used) in method %s. | W8110
+no-wizard-in-models | No wizard class for model directory. See the complete structure https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#complete-structure | C8113
+no-write-in-compute | Compute method calling `write`. Use `update` instead. | E8135
+odoo-addons-relative-import | Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.%s" | W8150
+odoo-exception-warning | `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError` | R8101
+print-used | Print used. Use `logger` instead. | W8116
+renamed-field-parameter | Field parameter "%s" is no longer supported. Use "%s" instead. | W8111
+resource-not-exist | File "%s": "%s" not found. | F8101
+sql-injection | SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection | E8103
+test-folder-imported | Test folder imported in module %s | E8130
+translation-contains-variable | Translatable term in "%s" contains variables. Use %s instead | W8115
+translation-field | Translation method _("string") in fields is not necessary. | W8103
+translation-format-interpolation | Use %s formatting in odoo._ functions | W8302
+translation-format-truncated | Logging format string ends in middle of conversion specifier | E8301
+translation-fstring-interpolation | Use %s formatting in odoo._ functions | W8303
+translation-not-lazy | Use %s formatting in odoo._ functions | W8301
+translation-positional-used | Translation method _(%s) is using positional string printf formatting. Use named placeholder `_("%%(placeholder)s")` instead. | W8120
+translation-required | String parameter on "%s" requires translation. Use %s_(%s) | C8107
+translation-too-few-args | Not enough arguments for odoo._ format string | E8306
+translation-too-many-args | Too many arguments for odoo._ format string | E8305
+translation-unsupported-format | Unsupported odoo._ format character %r (%#02x) at index %d | E8300
+use-vim-comment | Use of vim comment | W8202
+website-manifest-key-not-valid-uri | Website "%s" in manifest key is not a valid URI | W8114
+[//]: # (end-checks)
+# Install
+You do not need to install manually if you use pre-commit-config
+But if you even need to install it
+ pip install pylint-odoo
+# Usage pre-commit-config.yaml
+Add to your ".pre-commit-config.yaml" configuration file the following input
+```yaml
+ - repo: https://github.com/OCA/pylint-odoo
+ rev: v8.0.19
+ hooks:
+ # Add to your .pylintrc file:
+ # [MASTER]
+ # load-plugins=pylint_odoo
+ - id: pylint
+```
+# Usage
+ pylint --load-plugins=pylint_odoo -e odoolint path/to/test
+or use configuration file you can generate the OCA one using the following template repository:
+ https://github.com/OCA/oca-addons-repo-template
+Then running
+ pylint --rcfile=.pylintrc path/to/test
+Example to test only pylint_odoo checks:
+ pylint --load-plugins=pylint_odoo -d all -e odoolint {ADDONS-PATH}/*
+There are checks only valid for a particular Odoo version
+To know what version of odoo are you running pylint needs the parameter
+ pylint --load-plugins=pylint_odoo --valid-odoo-versions={YOUR_ODOO_VERSION}
+with particular odoo version e.g. `"16.0"`
+Checks valid only for odoo >= 14.0
+ translation-format-interpolation
+ translation-format-truncated
+ translation-fstring-interpolation
+ translation-not-lazy
+ translation-too-few-args
+ translation-too-many-args
+ translation-unsupported-format
+Checks valid only for odoo <= 13.0
+ translation-contains-variable
+[//]: # (start-example)
+# Examples
+ * attribute-deprecated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L93 attribute "_columns" deprecated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L94 attribute "_defaults" deprecated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L95 attribute "length" deprecated
+ * attribute-string-redundant
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L149 The attribute string is redundant. String parameter equal to name of variable
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L197 The attribute string is redundant. String parameter equal to name of variable
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L207 The attribute string is redundant. String parameter equal to name of variable
+ * bad-builtin-groupby
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L98 Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L99 Used builtin function `itertools.groupby`. Prefer `odoo.tools.groupby` instead. More info about https://github.com/odoo/odoo/issues/105376
+ * consider-merging-classes-inherited
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/model_inhe2.py#L11 Consider merging classes inherited to "res.company" from testing/resources/test_repo/broken_module/models/model_inhe1.py:8:4, testing/resources/test_repo/broken_module/models/model_inhe2.py:7:4.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/model_inhe2.py#L19 Consider merging classes inherited to "res.partner" from testing/resources/test_repo/broken_module/models/model_inhe2.py:15:4.
+ * context-overridden
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L180 Context overridden using dict. Better using kwargs `with_context(**{'overwrite_context': True})` or `with_context(key=value)`
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L182 Context overridden using dict. Better using kwargs `with_context(**ctx)` or `with_context(key=value)`
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L184 Context overridden using dict. Better using kwargs `with_context(**ctx2)` or `with_context(key=value)`
+ * development-status-allowed
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module2/__openerp__.py#L6 Manifest key development_status "InvalidDevStatus" not allowed. Use one of: Alpha, Beta, Mature, Production/Stable.
+ * except-pass
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/test_module/except_pass.py#L11 pass into block except. If you really need to use the pass consider logging that exception
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/test_module/except_pass.py#L53 pass into block except. If you really need to use the pass consider logging that exception
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/test_module/except_pass.py#L62 pass into block except. If you really need to use the pass consider logging that exception
+ * external-request-timeout
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L673 Use of external request method `requests.delete` without timeout. It could wait for a long time
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L674 Use of external request method `requests.get` without timeout. It could wait for a long time
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L675 Use of external request method `requests.head` without timeout. It could wait for a long time
+ * invalid-commit
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L392 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L393 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L394 Use of cr.commit() directly - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#never-commit-the-transaction
+ * license-allowed
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module2/__openerp__.py#L4 License "unknow license" not allowed in manifest file.
+ * manifest-author-string
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module3/__openerp__.py#L5 The author key in the manifest file must be a string (with comma separated values)
+ * manifest-data-duplicated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L18 The file "duplicated.xml" is duplicated in lines 19 from manifest key "data"
+ * manifest-deprecated-key
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L7 Deprecated key "description" in manifest file
+ * manifest-maintainers-list
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module3/__openerp__.py#L6 The maintainers key in the manifest file must be a list of strings
+ * manifest-required-author
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L5 One of the following authors must be present in manifest: 'Odoo Community Association (OCA)'
+ * manifest-required-key
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L2 Missing required key "license" in manifest file
+ * manifest-version-format
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L8 Wrong Version Format "8_0.1.0.0" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0)\.\d+\.\d+\.\d+$"
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module2/__openerp__.py#L8 Wrong Version Format "1.0" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0)\.\d+\.\d+\.\d+$"
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module3/__openerp__.py#L8 Wrong Version Format "8.0.1.0.0foo" in manifest file. Regex to match: "(4\.2|5\.0|6\.0|6\.1|7\.0|8\.0|9\.0|10\.0|11\.0|12\.0|13\.0|14\.0|15\.0|16\.0)\.\d+\.\d+\.\d+$"
+ * method-compute
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L143 Name of compute method should start with "_compute_"
+ * method-inverse
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L145 Name of inverse method should start with "_inverse_"
+ * method-required-super
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L40 Missing `super` call in "copy" method.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L44 Missing `super` call in "create" method.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L48 Missing `super` call in "write" method.
+ * method-search
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L144 Name of search method should start with "_search_"
+ * missing-readme
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L2 Missing ./README.rst file. Template here: https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst
+ * missing-return
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L24 Missing `return` (`super` is used) in method inherited_method.
+ * no-wizard-in-models
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L812 No wizard class for model directory. See the complete structure https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#complete-structure
+ * no-write-in-compute
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L102 Compute method calling `write`. Use `update` instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L104 Compute method calling `write`. Use `update` instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L107 Compute method calling `write`. Use `update` instead.
+ * odoo-addons-relative-import
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L49 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L50 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L51 Same Odoo module absolute import. You should use relative import with "." instead of "odoo.addons.broken_module"
+ * odoo-exception-warning
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L10 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L11 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L8 `odoo.exceptions.Warning` is a deprecated alias to `odoo.exceptions.UserError` use `from odoo.exceptions import UserError`
+ * print-used
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/test_module/except_pass.py#L20 Print used. Use `logger` instead.
+ * renamed-field-parameter
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L197 Field parameter "digits_compute" is no longer supported. Use "digits" instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L197 Field parameter "select" is no longer supported. Use "index" instead.
+ * resource-not-exist
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L14 File "data": "file_no_exist.xml" not found.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L18 File "data": "duplicated.xml" not found.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__openerp__.py#L23 File "demo": "file_no_exist.xml" not found.
+ * sql-injection
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L559 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L561 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L563 SQL injection risk. Use parameters if you can. - More info https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst#no-sql-injection
+ * test-folder-imported
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/__init__.py#L5 Test folder imported in module broken_module
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module2/__init__.py#L3 Test folder imported in module broken_module2
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/eleven_module/__init__.py#L3 Test folder imported in module eleven_module
+ * translation-contains-variable
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L359 Translatable term in "'Variable not translatable: %s' % variable1" contains variables. Use _('Variable not translatable: %s') % variable1 instead
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L360 Translatable term in "'Variables not translatable: %s, %s' % (variable1, variable2)" contains variables. Use _('Variables not translatable: %s, %s') % (variable1, variable2) instead
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L362 Translatable term in "'Variable not translatable: %s' % variable1" contains variables. Use _('Variable not translatable: %s') % variable1 instead
+ * translation-field
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L131 Translation method _("string") in fields is not necessary.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L141 Translation method _("string") in fields is not necessary.
+ * translation-format-interpolation
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L368 Use lazy % or .format() or % formatting in odoo._ functions
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L369 Use lazy % or .format() or % formatting in odoo._ functions
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L456 Use lazy % or .format() or % formatting in odoo._ functions
+ * translation-format-truncated
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L467 Logging format string ends in middle of conversion specifier
+ * translation-fstring-interpolation
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L465 Use lazy % or .format() or % formatting in odoo._ functions
+ * translation-not-lazy
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L333 Use lazy % or .format() or % formatting in odoo._ functions
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L334 Use lazy % or .format() or % formatting in odoo._ functions
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L336 Use lazy % or .format() or % formatting in odoo._ functions
+ * translation-positional-used
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L360 Translation method _('Variables not translatable: %s, %s' % (variable1, variable2)) is using positional string printf formatting. Use named placeholder `_("%(placeholder)s")` instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L363 Translation method _('Variables not translatable: %s %s' % (variable1, variable2)) is using positional string printf formatting. Use named placeholder `_("%(placeholder)s")` instead.
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L366 Translation method _('Variables not translatable: %s, %s' % (variable1, variable2)) is using positional string printf formatting. Use named placeholder `_("%(placeholder)s")` instead.
+ * translation-required
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L310 String parameter on "message_post" requires translation. Use body=_('Body not translatable %s')
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L310 String parameter on "message_post" requires translation. Use subject=_('Subject not translatable')
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L312 String parameter on "message_post" requires translation. Use body=_('Body not translatable {}')
+ * translation-too-few-args
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L463 Not enough arguments for odoo._ format string
+ * translation-too-many-args
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L468 Too many arguments for odoo._ format string
+ * translation-unsupported-format
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/models/broken_model.py#L466 Unsupported odoo._ format character 'y' (0x79) at index 30
+ * use-vim-comment
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module/pylint_oca_broken.py#L108 Use of vim comment
+ * website-manifest-key-not-valid-uri
+ - https://github.com/OCA/pylint-odoo/blob/v8.0.19/testing/resources/test_repo/broken_module3/__openerp__.py#L7 Website "htt://odoo-community.com" in manifest key is not a valid URI
+[//]: # (end-example)
+# Development
+To run all the tests run:
+ tox
+Use extra parameters to change the test behaviour
+e.g. particular python version
+ tox -e py310
+e.g. particular unittest method
+ tox -e py310 -- -k test_20_expected_errors
+e.g. all the tests at the same time in parallel
+ tox -p auto
+## Licenses
+
+%prep
+%autosetup -n pylint-odoo-8.0.19
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-pylint-odoo -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 8.0.19-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..0831d88
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+370051f7f41b1836c7cb673153f346ba pylint-odoo-8.0.19.tar.gz