• Stars
    star
    143
  • Rank 257,007 (Top 6 %)
  • Language
    Python
  • Created about 9 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Odoo plugin for Pylint

Build Status codecov code-style-black version pypi-downloads-monthly supported-versions wheel commits-since

Pylint Odoo plugin

Enable custom checks for Odoo modules.

Short Name Description Code
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 odoo/odoo#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

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

    - repo: https://github.com/OCA/pylint-odoo
        rev: v8.0.19 # may be a tag or commit hash
        hooks:
        #Β Add to your .pylintrc file:
        # [MASTER]
        # load-plugins=pylint_odoo
        - id: pylint_odoo

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

Examples

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

This repository is licensed under AGPL-3.0.


OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

More Repositories

1

web

Odoo web client UI related addons
JavaScript
787
star
2

OpenUpgrade

Open source upgrade path for Odoo/OpenERP
Python
716
star
3

server-tools

Tools for Odoo Administrators to improve some technical features on Odoo.
Python
584
star
4

connector

Odoo generic connector framework (jobs queue, asynchronous tasks, channels)
Python
310
star
5

rest-framework

Python
307
star
6

stock-logistics-warehouse

Odoo Warehouse Management Addons
HTML
280
star
7

reporting-engine

Odoo Alternative Reporting Engine
HTML
270
star
8

pos

HTML
262
star
9

account-financial-tools

Odoo Accountant Financial Tools and Utils
Python
256
star
10

maintainer-tools

Odoo Maintainers Tools & conventions for OCA members which evaluate and maintain repositories.
Python
255
star
11

sale-workflow

Odoo Sales, Workflow and Organization
HTML
252
star
12

vertical-medical

Open Source Healthcare System for Odoo
250
star
13

website

Odoo website builder addons
HTML
237
star
14

odoorpc

Python module to pilot your Odoo servers through JSON-RPC.
Python
234
star
15

project

Odoo Project Management and Services Company Addons
HTML
233
star
16

account-invoicing

Odoo Invoicing Extension Addons
HTML
211
star
17

stock-logistics-workflow

Odoo Stock, Workflow and Organization
HTML
200
star
18

account-financial-reporting

Financial reports for Odoo
Python
197
star
19

l10n-spain

Odoo Spain Localization
Python
195
star
20

hr

Odoo Human Resources Addons
HTML
190
star
21

l10n-brazil

Localização brasileira oficial do Odoo.
Python
190
star
22

queue

Asynchronous Job Queue
Python
179
star
23

partner-contact

Odoo Partner and Contact related addons
HTML
176
star
24

bank-payment

Odoo Electronic Payment
Python
166
star
25

purchase-workflow

Odoo Purchases, Workflow and Organization
HTML
165
star
26

management-system

Odoo for Management Systems (ISO, IEC, BS)
HTML
165
star
27

social

Addons concerning odoo's social ERP features and messaging in general
Python
160
star
28

product-attribute

Odoo Product Attribute
HTML
159
star
29

server-ux

HTML
158
star
30

geospatial

Odoo and GIS
JavaScript
156
star
31

wms

Warehouse Management System for advance logistic with Odoo
Python
155
star
32

server-auth

JavaScript
151
star
33

bank-statement-import

Bank Import Addons
Python
151
star
34

connector-telephony

Odoo modules for telephony integration
HTML
150
star
35

manufacture

Odoo Manufacturing Addons
HTML
148
star
36

field-service

Field Service Management
Python
147
star
37

contract

Python
145
star
38

helpdesk

Odoo modules for managing a HelpDesk system
Python
145
star
39

mis-builder

Management Information System reports for Odoo: easily build super fast, beautiful, custom reports such as P&L, Balance Sheets and more.
Python
145
star
40

e-commerce

Odoo E-Commerce server automation addons
HTML
141
star
41

stock-logistics-barcode

HTML
139
star
42

knowledge

Odoo Document & Knowledge Management
HTML
133
star
43

odoo-module-migrator

Python library to migrate odoo base code from a version to another
Python
127
star
44

crm

Odoo CRM, Mail & Newsletter advanced features
HTML
122
star
45

vertical-hotel

Odoo for Hotel Management
Python
121
star
46

edi

Python
119
star
47

l10n-italy

Odoo Italian localization
Python
110
star
48

dms

Odoo modules for a Document Management System
Python
110
star
49

ansible-odoo

Ansible role for Odoo
Shell
106
star
50

timesheet

Odoo Timesheet Management Addons
Python
105
star
51

connector-magento

Connect Odoo with Magento
103
star
52

account-reconcile

Odoo account reconciliation modules (statements, data completion...)
JavaScript
102
star
53

report-print-send

Odoo Printing Services and Printer related addons
Python
102
star
54

server-backend

HTML
96
star
55

commission

Odoo Commission Management
Python
95
star
56

delivery-carrier

Odoo Carriers And Deliveries Management
HTML
94
star
57

maintainer-quality-tools

QA tools for Odoo maintainers
Python
92
star
58

multi-company

HTML
87
star
59

connector-prestashop

Connect Odoo with Prestashop
Python
85
star
60

openupgradelib

A library with support functions to be called from Odoo migration scripts.
Python
85
star
61

account-analytic

Odoo Account Analytic Related Addons
HTML
84
star
62

odoo-community.org

The Odoo Community Association Website
CSS
81
star
63

maintenance

Odoo modules for businesses that implies maintenance tasks
HTML
77
star
64

payroll

Odoo modules for payroll management
Python
76
star
65

account-payment

Project supervised by the Banking PSC
Python
76
star
66

credit-control

Odoo modules for the customer credit control
Python
74
star
67

rma

Odoo for Return Merchandise Authorization (RMA)
Python
74
star
68

operating-unit

Manage Operating Units in Odoo
HTML
72
star
69

storage

Python
70
star
70

pms

Property Management System on Odoo
Python
68
star
71

ddmrp

Python
68
star
72

currency

Odoo Currency related Addons (crypto currencies, rate conversion, integrations with third party applications,...)
HTML
66
star
73

margin-analysis

Odoo Financial Controlling (margin, costs, ...)
HTML
64
star
74

business-requirement

Business Requirements Management via Odoo
Python
64
star
75

iot

Internet of Things (IoT)
Python
63
star
76

account-invoice-reporting

Odoo Invoicing reports
HTML
61
star
77

oca-addons-repo-template

OCA Repository Template
Jinja
61
star
78

stock-logistics-transport

Transport management in Odoo
Python
60
star
79

event

Event Management addons
HTML
60
star
80

connector-interfaces

Odoo Generic Connector for ODBC, .CSV,...
Python
59
star
81

server-brand

HTML
57
star
82

server-env

Tools to manage environment-dependent configuration
56
star
83

account-closing

Odoo Accountant closing tools
Python
55
star
84

connector-woocommerce

53
star
85

product-variant

Python
52
star
86

hr-expense

Human Resources Expenses OCA modules for Odoo
HTML
52
star
87

l10n-switzerland

Odoo Swiss localization
Python
51
star
88

stock-logistics-reporting

Provides Odoo Logistics reporting modules
HTML
51
star
89

l10n-thailand

Thai localization
HTML
50
star
90

hr-attendance

HR Attendance OCA modules for Odoo
HTML
47
star
91

connector-ecommerce

Generic module used on Odoo for E-Commerce industry
Python
47
star
92

brand

Manage brands for products and companies
HTML
47
star
93

account-fiscal-rule

Odoo Taxes & Fiscal Rules Management
Python
47
star
94

product-pack

Odoo modules related to product packs
HTML
45
star
95

interface-github

Tools to interact with github from Odoo
Python
45
star
96

search-engine

Python
45
star
97

spreadsheet

JavaScript
44
star
98

oca-github-bot

The GitHub Bot of the Odoo Community Association (OCA)
Python
42
star
99

website-cms

CMS features for Odoo website
Python
39
star
100

stock-logistics-tracking

This repository contains modules around stock packages management
HTML
39
star