robin.keunen
5 years ago
8 changed files with 589 additions and 6 deletions
-
291.eslintrc
-
10.flake8
-
27.gitignore
-
12.isort.cfg
-
69.pre-commit-config.yaml
-
86.pylintrc
-
64.pylintrc-mandatory
-
36.travis.yml
@ -0,0 +1,291 @@ |
|||
{ |
|||
"globals": { |
|||
"$": false, |
|||
"_": false, |
|||
"fuzzy": false, |
|||
"jQuery": false, |
|||
"moment": false, |
|||
"odoo": false, |
|||
"openerp": false, |
|||
"self": false |
|||
}, |
|||
"env": { |
|||
"browser": true |
|||
}, |
|||
"rules": { |
|||
"no-alert": "warn", |
|||
"no-array-constructor": "warn", |
|||
"no-bitwise": "off", |
|||
"no-caller": "warn", |
|||
"no-case-declarations": "warn", |
|||
"no-catch-shadow": "warn", |
|||
"no-class-assign": "warn", |
|||
"no-cond-assign": "warn", |
|||
"no-confusing-arrow": "warn", |
|||
"no-console": "off", |
|||
"no-const-assign": "warn", |
|||
"no-constant-condition": "warn", |
|||
"no-continue": "off", |
|||
"no-control-regex": "warn", |
|||
"no-debugger": "warn", |
|||
"no-delete-var": "warn", |
|||
"no-div-regex": "warn", |
|||
"no-dupe-args": "warn", |
|||
"no-dupe-class-members": "warn", |
|||
"no-dupe-keys": "warn", |
|||
"no-duplicate-case": "warn", |
|||
"no-duplicate-imports": "warn", |
|||
"no-else-return": "warn", |
|||
"no-empty": "warn", |
|||
"no-empty-character-class": "warn", |
|||
"no-empty-function": "warn", |
|||
"no-empty-pattern": "warn", |
|||
"no-eq-null": "warn", |
|||
"no-eval": "warn", |
|||
"no-ex-assign": "warn", |
|||
"no-extend-native": "warn", |
|||
"no-extra-bind": "warn", |
|||
"no-extra-boolean-cast": "warn", |
|||
"no-extra-label": "warn", |
|||
"no-extra-parens": "warn", |
|||
"no-extra-semi": "warn", |
|||
"no-fallthrough": "warn", |
|||
"no-floating-decimal": "warn", |
|||
"no-func-assign": "warn", |
|||
"no-implicit-coercion": ["warn", { |
|||
"allow": ["~"] |
|||
}], |
|||
"no-implicit-globals": "warn", |
|||
"no-implied-eval": "warn", |
|||
"no-inline-comments": "warn", |
|||
"no-inner-declarations": "warn", |
|||
"no-invalid-regexp": "warn", |
|||
"no-invalid-this": "off", |
|||
"no-irregular-whitespace": "warn", |
|||
"no-iterator": "warn", |
|||
"no-label-var": "warn", |
|||
"no-labels": "warn", |
|||
"no-lone-blocks": "warn", |
|||
"no-lonely-if": "warn", |
|||
"no-loop-func": "off", |
|||
"no-magic-numbers": "off", |
|||
"no-mixed-operators": "warn", |
|||
"no-mixed-requires": "warn", |
|||
"no-mixed-spaces-and-tabs": "warn", |
|||
"no-multi-spaces": "warn", |
|||
"no-multi-str": "warn", |
|||
"no-multiple-empty-lines": "warn", |
|||
"no-native-reassign": "warn", |
|||
"no-negated-condition": "warn", |
|||
"no-negated-in-lhs": "warn", |
|||
"no-nested-ternary": "off", |
|||
"no-new": "warn", |
|||
"no-new-func": "warn", |
|||
"no-new-object": "warn", |
|||
"no-new-require": "warn", |
|||
"no-new-symbol": "warn", |
|||
"no-new-wrappers": "warn", |
|||
"no-obj-calls": "warn", |
|||
"no-octal": "warn", |
|||
"no-octal-escape": "warn", |
|||
"no-param-reassign": "warn", |
|||
"no-path-concat": "warn", |
|||
"no-plusplus": "off", |
|||
"no-process-env": "warn", |
|||
"no-process-exit": "warn", |
|||
"no-proto": "warn", |
|||
"no-prototype-builtins": "warn", |
|||
"no-redeclare": "warn", |
|||
"no-regex-spaces": "warn", |
|||
"no-restricted-globals": "warn", |
|||
"no-restricted-imports": "warn", |
|||
"no-restricted-modules": "warn", |
|||
"no-restricted-syntax": "warn", |
|||
"no-return-assign": "warn", |
|||
"no-script-url": "warn", |
|||
"no-self-assign": "warn", |
|||
"no-self-compare": "warn", |
|||
"no-sequences": "warn", |
|||
"no-shadow": "warn", |
|||
"no-shadow-restricted-names": "warn", |
|||
"no-whitespace-before-property": "warn", |
|||
"no-spaced-func": "warn", |
|||
"no-sparse-arrays": "warn", |
|||
"no-sync": "warn", |
|||
"no-tabs": "warn", |
|||
"no-ternary": "off", |
|||
"no-trailing-spaces": "warn", |
|||
"no-this-before-super": "warn", |
|||
"no-throw-literal": "warn", |
|||
"no-undef": "warn", |
|||
"no-undef-init": "warn", |
|||
"no-undefined": "off", |
|||
"no-unexpected-multiline": "warn", |
|||
"no-underscore-dangle": "off", |
|||
"no-unmodified-loop-condition": "warn", |
|||
"no-unneeded-ternary": "warn", |
|||
"no-unreachable": "warn", |
|||
"no-unsafe-finally": "warn", |
|||
"no-unused-expressions": "warn", |
|||
"no-unused-labels": "warn", |
|||
"no-unused-vars": "warn", |
|||
"no-use-before-define": "warn", |
|||
"no-useless-call": "warn", |
|||
"no-useless-computed-key": "warn", |
|||
"no-useless-concat": "warn", |
|||
"no-useless-constructor": "warn", |
|||
"no-useless-escape": "warn", |
|||
"no-useless-rename": "warn", |
|||
"no-void": "warn", |
|||
"no-var": "off", |
|||
"no-warning-comments": "off", |
|||
"no-with": "warn", |
|||
"array-bracket-spacing": "off", |
|||
"array-callback-return": "warn", |
|||
"arrow-body-style": "warn", |
|||
"arrow-parens": "warn", |
|||
"arrow-spacing": "off", |
|||
"accessor-pairs": "warn", |
|||
"block-scoped-var": "off", |
|||
"block-spacing": ["warn", "always"], |
|||
"brace-style": "warn", |
|||
"callback-return": "warn", |
|||
"camelcase": "off", |
|||
"capitalized-comments": ["warn", "always", { |
|||
"ignoreConsecutiveComments": true, |
|||
"ignoreInlineComments": true |
|||
}], |
|||
"comma-dangle": ["warn", "always-multiline"], |
|||
"comma-spacing": ["warn", { |
|||
"before": false, |
|||
"after": true |
|||
}], |
|||
"comma-style": "warn", |
|||
"complexity": [ |
|||
"warn", |
|||
15 |
|||
], |
|||
"computed-property-spacing": "off", |
|||
"consistent-return": "off", |
|||
"consistent-this": "off", |
|||
"constructor-super": "warn", |
|||
"curly": "warn", |
|||
"default-case": "off", |
|||
"dot-location": ["warn", "property"], |
|||
"dot-notation": "warn", |
|||
"eol-last": "warn", |
|||
"eqeqeq": "warn", |
|||
"func-names": "off", |
|||
"func-style": "off", |
|||
"generator-star-spacing": "off", |
|||
"global-require": "warn", |
|||
"guard-for-in": "off", |
|||
"handle-callback-err": "warn", |
|||
"id-blacklist": "warn", |
|||
"id-length": "off", |
|||
"id-match": "warn", |
|||
"indent": "warn", |
|||
"init-declarations": "warn", |
|||
"jsx-quotes": "warn", |
|||
"key-spacing": "off", |
|||
"keyword-spacing": "warn", |
|||
"linebreak-style": [ |
|||
"warn", |
|||
"unix" |
|||
], |
|||
"lines-around-comment": "warn", |
|||
"max-depth": "warn", |
|||
"max-len": ["warn", { |
|||
"code": 88, |
|||
"ignorePattern": "odoo\\.define\\(", |
|||
"tabWidth": 4 |
|||
}], |
|||
"max-lines": "off", |
|||
"max-nested-callbacks": "warn", |
|||
"max-params": "off", |
|||
"max-statements": "off", |
|||
"max-statements-per-line": "warn", |
|||
"multiline-ternary": "off", |
|||
"new-cap": "off", |
|||
"new-parens": "warn", |
|||
"newline-after-var": "off", |
|||
"newline-before-return": "off", |
|||
"newline-per-chained-call": "off", |
|||
"object-curly-newline": ["warn", { "consistent": true }], |
|||
"object-curly-spacing": ["warn", "never"], |
|||
"object-property-newline": ["warn", { |
|||
"allowAllPropertiesOnSameLine": true |
|||
}], |
|||
"object-shorthand": "off", |
|||
"one-var": "off", |
|||
"one-var-declaration-per-line": "off", |
|||
"operator-assignment": "warn", |
|||
"operator-linebreak": "warn", |
|||
"padded-blocks": "off", |
|||
"prefer-arrow-callback": "off", |
|||
"prefer-const": "warn", |
|||
"prefer-reflect": "off", |
|||
"prefer-rest-params": "off", |
|||
"prefer-spread": "off", |
|||
"prefer-template": "off", |
|||
"quote-props": "off", |
|||
"quotes": "off", |
|||
"radix": "warn", |
|||
"require-yield": "warn", |
|||
"rest-spread-spacing": "off", |
|||
"semi": [ |
|||
"warn", |
|||
"always" |
|||
], |
|||
"semi-spacing": "warn", |
|||
"sort-imports": "warn", |
|||
"sort-vars": "off", |
|||
"space-before-blocks": "warn", |
|||
"space-before-function-paren": "warn", |
|||
"space-in-parens": "off", |
|||
"space-infix-ops": "off", |
|||
"space-unary-ops": "off", |
|||
"spaced-comment": ["warn", "always"], |
|||
"strict": ["warn", "function"], |
|||
"template-curly-spacing": "off", |
|||
"unicode-bom": "warn", |
|||
"use-isnan": "warn", |
|||
"valid-jsdoc": ["warn", { |
|||
"prefer": { |
|||
"arg": "param", |
|||
"argument": "param", |
|||
"augments": "extends", |
|||
"constructor": "class", |
|||
"exception": "throws", |
|||
"func": "function", |
|||
"method": "function", |
|||
"prop": "property", |
|||
"return": "returns", |
|||
"virtual": "abstract", |
|||
"yield": "yields" |
|||
}, |
|||
"preferType": { |
|||
"array": "Array", |
|||
"bool": "Boolean", |
|||
"boolean": "Boolean", |
|||
"number": "Number", |
|||
"object": "Object", |
|||
"str": "String", |
|||
"string": "String" |
|||
}, |
|||
"requireParamDescription": false, |
|||
"requireReturn": false, |
|||
"requireReturnDescription": false, |
|||
"requireReturnType": false |
|||
}], |
|||
"valid-typeof": "warn", |
|||
"vars-on-top": "off", |
|||
"wrap-iife": "warn", |
|||
"wrap-regex": "warn", |
|||
"yield-star-spacing": "off", |
|||
"yoda": "warn" |
|||
}, |
|||
"parserOptions": { |
|||
"ecmaVersion": 2017 |
|||
} |
|||
} |
@ -0,0 +1,10 @@ |
|||
[flake8] |
|||
max-line-length = 79 |
|||
max-complexity = 16 |
|||
# B = bugbear |
|||
# B9 = bugbear opinionated (incl line length) |
|||
select = C,E,F,W,B,B9 |
|||
# E203: whitespace before ':' (black behaviour) |
|||
# E501: flake8 line length (covered by bugbear B950) |
|||
# W503: line break before binary operator (black behaviour) |
|||
ignore = E203,E501,W503 |
@ -0,0 +1,12 @@ |
|||
[settings] |
|||
; see https://github.com/psf/black |
|||
multi_line_output=3 |
|||
include_trailing_comma=True |
|||
force_grid_wrap=0 |
|||
combine_as_imports=True |
|||
use_parentheses=True |
|||
line_length=79 |
|||
known_odoo=odoo |
|||
known_odoo_addons=odoo.addons |
|||
sections=FUTURE,STDLIB,THIRDPARTY,ODOO,ODOO_ADDONS,FIRSTPARTY,LOCALFOLDER |
|||
known_third_party=dateutil,phonenumbers |
@ -0,0 +1,69 @@ |
|||
exclude: "^setup/|/static/lib/|/static/src/lib/" |
|||
default_language_version: |
|||
python: python3 |
|||
repos: |
|||
- repo: https://github.com/psf/black |
|||
rev: 19.3b0 |
|||
hooks: |
|||
- id: black |
|||
args: [-l 79] |
|||
- repo: https://github.com/pre-commit/pre-commit-hooks |
|||
rev: v2.3.0 |
|||
hooks: |
|||
- id: trailing-whitespace |
|||
# exclude autogenerated files |
|||
exclude: /README\.rst$|\.pot?$ |
|||
- id: end-of-file-fixer |
|||
# exclude autogenerated files |
|||
exclude: /README\.rst$|\.pot?$ |
|||
- id: debug-statements |
|||
- id: flake8 |
|||
name: flake8 except __init__.py |
|||
exclude: /__init__\.py$ |
|||
additional_dependencies: ["flake8-bugbear==19.8.0"] |
|||
- id: flake8 |
|||
name: flake8 only __init__.py |
|||
args: ["--extend-ignore=F401"] # ignore unused imports in __init__.py |
|||
files: /__init__\.py$ |
|||
additional_dependencies: ["flake8-bugbear==19.8.0"] |
|||
- id: fix-encoding-pragma |
|||
args: ["--remove"] |
|||
- id: check-case-conflict |
|||
- id: check-docstring-first |
|||
- id: check-executables-have-shebangs |
|||
- id: check-merge-conflict |
|||
- id: check-symlinks |
|||
- id: check-xml |
|||
- id: mixed-line-ending |
|||
args: ["--fix=lf"] |
|||
- repo: https://github.com/pre-commit/mirrors-pylint |
|||
rev: v2.3.1 |
|||
hooks: |
|||
- id: pylint |
|||
name: pylint with optional checks |
|||
args: ["--rcfile=.pylintrc", "--exit-zero"] |
|||
verbose: true |
|||
additional_dependencies: ["pylint-odoo==3.0.3"] |
|||
- id: pylint |
|||
name: pylint with mandatory checks |
|||
args: ["--rcfile=.pylintrc-mandatory"] |
|||
additional_dependencies: ["pylint-odoo==3.0.3"] |
|||
- repo: https://github.com/asottile/pyupgrade |
|||
rev: v1.24.0 |
|||
hooks: |
|||
- id: pyupgrade |
|||
- repo: https://github.com/asottile/seed-isort-config |
|||
rev: v1.9.3 |
|||
hooks: |
|||
- id: seed-isort-config |
|||
- repo: https://github.com/pre-commit/mirrors-isort |
|||
rev: v4.3.21 |
|||
hooks: |
|||
- id: isort |
|||
name: isort except __init__.py |
|||
exclude: /__init__\.py$ |
|||
- repo: https://github.com/pre-commit/mirrors-eslint |
|||
rev: v6.5.1 |
|||
hooks: |
|||
- id: eslint |
|||
verbose: true |
@ -0,0 +1,86 @@ |
|||
[MASTER] |
|||
load-plugins=pylint_odoo |
|||
score=n |
|||
|
|||
[ODOOLINT] |
|||
readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" |
|||
# manifest_required_authors= |
|||
manifest_required_keys=license |
|||
manifest_deprecated_keys=description,active |
|||
license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 |
|||
valid_odoo_versions=12.0 |
|||
|
|||
[MESSAGES CONTROL] |
|||
disable=all |
|||
|
|||
# This .pylintrc contains optional AND mandatory checks and is meant to be |
|||
# loaded in an IDE to have it check everything, in the hope this will make |
|||
# optional checks more visible to contributors who otherwise never look at a |
|||
# green travis to see optional checks that failed. |
|||
# .pylintrc-mandatory containing only mandatory checks is used the pre-commit |
|||
# config as a blocking check. |
|||
|
|||
enable=anomalous-backslash-in-string, |
|||
api-one-deprecated, |
|||
api-one-multi-together, |
|||
assignment-from-none, |
|||
attribute-deprecated, |
|||
class-camelcase, |
|||
dangerous-default-value, |
|||
dangerous-view-replace-wo-priority, |
|||
duplicate-id-csv, |
|||
duplicate-key, |
|||
duplicate-xml-fields, |
|||
duplicate-xml-record-id, |
|||
eval-referenced, |
|||
eval-used, |
|||
incoherent-interpreter-exec-perm, |
|||
license-allowed, |
|||
manifest-author-string, |
|||
manifest-deprecated-key, |
|||
manifest-required-key, |
|||
manifest-version-format, |
|||
method-compute, |
|||
method-inverse, |
|||
method-required-super, |
|||
method-search, |
|||
missing-import-error, |
|||
missing-manifest-dependency, |
|||
openerp-exception-warning, |
|||
pointless-statement, |
|||
pointless-string-statement, |
|||
print-used, |
|||
redundant-keyword-arg, |
|||
redundant-modulename-xml, |
|||
reimported, |
|||
relative-import, |
|||
return-in-init, |
|||
rst-syntax-error, |
|||
sql-injection, |
|||
too-few-format-args, |
|||
translation-field, |
|||
translation-required, |
|||
unreachable, |
|||
use-vim-comment, |
|||
wrong-tabs-instead-of-spaces, |
|||
xml-syntax-error, |
|||
# messages that do not cause the lint step to fail |
|||
consider-merging-classes-inherited, |
|||
create-user-wo-reset-password, |
|||
dangerous-filter-wo-user, |
|||
deprecated-module, |
|||
file-not-used, |
|||
invalid-commit, |
|||
missing-newline-extrafiles, |
|||
missing-readme, |
|||
no-utf8-coding-comment, |
|||
odoo-addons-relative-import, |
|||
old-api7-method-defined, |
|||
redefined-builtin, |
|||
too-complex, |
|||
unnecessary-utf8-coding-comment |
|||
|
|||
[REPORTS] |
|||
msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} |
|||
output-format=colorized |
|||
reports=no |
@ -0,0 +1,64 @@ |
|||
[MASTER] |
|||
load-plugins=pylint_odoo |
|||
score=n |
|||
|
|||
[ODOOLINT] |
|||
readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" |
|||
# manifest_required_authors= |
|||
manifest_required_keys=license |
|||
manifest_deprecated_keys=description,active |
|||
license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 |
|||
valid_odoo_versions=12.0 |
|||
|
|||
[MESSAGES CONTROL] |
|||
disable=all |
|||
|
|||
enable=anomalous-backslash-in-string, |
|||
api-one-deprecated, |
|||
api-one-multi-together, |
|||
assignment-from-none, |
|||
attribute-deprecated, |
|||
class-camelcase, |
|||
dangerous-default-value, |
|||
dangerous-view-replace-wo-priority, |
|||
duplicate-id-csv, |
|||
duplicate-key, |
|||
duplicate-xml-fields, |
|||
duplicate-xml-record-id, |
|||
eval-referenced, |
|||
eval-used, |
|||
incoherent-interpreter-exec-perm, |
|||
license-allowed, |
|||
manifest-author-string, |
|||
manifest-deprecated-key, |
|||
manifest-required-key, |
|||
manifest-version-format, |
|||
method-compute, |
|||
method-inverse, |
|||
method-required-super, |
|||
method-search, |
|||
missing-import-error, |
|||
missing-manifest-dependency, |
|||
openerp-exception-warning, |
|||
pointless-statement, |
|||
pointless-string-statement, |
|||
print-used, |
|||
redundant-keyword-arg, |
|||
redundant-modulename-xml, |
|||
reimported, |
|||
relative-import, |
|||
return-in-init, |
|||
rst-syntax-error, |
|||
sql-injection, |
|||
too-few-format-args, |
|||
translation-field, |
|||
translation-required, |
|||
unreachable, |
|||
use-vim-comment, |
|||
wrong-tabs-instead-of-spaces, |
|||
xml-syntax-error |
|||
|
|||
[REPORTS] |
|||
msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} |
|||
output-format=colorized |
|||
reports=no |
@ -0,0 +1,36 @@ |
|||
language: python |
|||
sudo: false |
|||
cache: pip |
|||
|
|||
python: |
|||
- "3.5" |
|||
|
|||
addons: |
|||
postgresql: "9.6" |
|||
apt: |
|||
packages: |
|||
- expect-dev # provides unbuffer utility |
|||
|
|||
env: |
|||
global: |
|||
- VERSION="12.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0" |
|||
|
|||
matrix: |
|||
- LINT_CHECK="1" |
|||
- TESTS="1" ODOO_REPO="OCA/OCB" |
|||
- TESTS="1" ODOO_REPO="OCA/OCB" UNIT_TEST="1" |
|||
|
|||
|
|||
install: |
|||
- git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools |
|||
# Disable manifest-required-author for this repository |
|||
- sed '/manifest-required-author,/d' ${HOME}/maintainer-quality-tools/travis/cfg/travis_run_pylint_pr.cfg -i |
|||
- export PATH=${HOME}/maintainer-quality-tools/travis:${PATH} |
|||
- travis_install_nightly |
|||
- pip install unidecode |
|||
|
|||
script: |
|||
- travis_run_tests |
|||
|
|||
after_success: |
|||
- travis_after_tests_success |
Write
Preview
Loading…
Cancel
Save
Reference in new issue