diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 732d0c4a644eb444d6b4385643ff32fab19fab52..4acca684ec8c5cda7b3ecd21b9e568ab03d57e8c 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -6,6 +6,8 @@ exclude: |
   ^setup/|/static/description/index\.html$|
   # We don't want to mess with tool-generated files
   .svg$|/tests/([^/]+/)?cassettes/|^.copier-answers.yml$|^.github/|
+  # Maybe reactivate this when all README files include prettier ignore tags?
+  ^README\.md$|
   # Library files can have extraneous formatting (even minimized)
   /static/(src/)?lib/|
   # Repos using Sphinx to generate docs don't need prettying
@@ -25,8 +27,13 @@ repos:
         entry: found forbidden files; remove them
         language: fail
         files: "\\.rej$"
+      - id: en-po-files
+        name: en.po files cannot exist
+        entry: found a en.po file
+        language: fail
+        files: '[a-zA-Z0-9_]*/i18n/en\.po$'
   - repo: https://github.com/oca/maintainer-tools
-    rev: 7d8a9f9ad73db0976fb03cbee43d953bc29b89e9
+    rev: ab1d7f6
     hooks:
       # update the NOT INSTALLABLE ADDONS section above
       - id: oca-update-pre-commit-excluded-addons
@@ -48,7 +55,7 @@ repos:
     hooks:
       - id: black
   - repo: https://github.com/pre-commit/mirrors-prettier
-    rev: v2.6.2
+    rev: v2.1.2
     hooks:
       - id: prettier
         name: prettier (with plugin-xml)
@@ -59,7 +66,7 @@ repos:
           - --plugin=@prettier/plugin-xml
         files: \.(css|htm|html|js|json|jsx|less|md|scss|toml|ts|xml|yaml|yml)$
   - repo: https://github.com/pre-commit/mirrors-eslint
-    rev: v8.15.0
+    rev: v7.8.1
     hooks:
       - id: eslint
         verbose: true
@@ -67,7 +74,7 @@ repos:
           - --color
           - --fix
   - repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v4.2.0
+    rev: v3.2.0
     hooks:
       - id: trailing-whitespace
         # exclude autogenerated files
@@ -89,37 +96,33 @@ repos:
       - id: mixed-line-ending
         args: ["--fix=lf"]
   - repo: https://github.com/asottile/pyupgrade
-    rev: v2.32.1
+    rev: v2.7.2
     hooks:
       - id: pyupgrade
         args: ["--keep-percent-format"]
   - repo: https://github.com/PyCQA/isort
-    rev: 5.10.1
+    rev: 5.12.0
     hooks:
       - id: isort
         name: isort except __init__.py
         args:
           - --settings=.
         exclude: /__init__\.py$
-  - repo: https://gitlab.com/PyCQA/flake8
-    rev: 3.9.2
+  - repo: https://github.com/PyCQA/flake8
+    rev: 3.8.3
     hooks:
       - id: flake8
         name: flake8
         additional_dependencies: ["flake8-bugbear==20.1.4"]
-  - repo: https://github.com/PyCQA/pylint
-    rev: v2.11.1
+  - repo: https://github.com/OCA/pylint-odoo
+    rev: 7.0.2
     hooks:
-      - id: pylint
+      - id: pylint_odoo
         name: pylint with optional checks
         args:
           - --rcfile=.pylintrc
           - --exit-zero
         verbose: true
-        additional_dependencies: &pylint_deps
-          - pylint-odoo==5.0.5
-      - id: pylint
-        name: pylint with mandatory checks
+      - id: pylint_odoo
         args:
           - --rcfile=.pylintrc-mandatory
-        additional_dependencies: *pylint_deps
diff --git a/__init__.py b/__init__.py
index bf853b2cb717d382cf347fbce0e83b0b651435fa..e3bc617b1241f1778644d22df337206bd4c8f6fd 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1,5 +1,4 @@
 # © 2019 Le Filament (<http://www.le-filament.com>)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 
-from . import models
-from . import wizard
+from . import models, wizard
diff --git a/__manifest__.py b/__manifest__.py
index b3925f841f21195add17548692019cd2d4f078a7..de2256334ec44c9e989d256328ba4f859dd7103e 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -12,7 +12,7 @@
         "mail",
         "api_sirene",
         "api_inpi",
-        "cgscop_liasse_fiscale"
+        "cgscop_liasse_fiscale",
     ],
     "data": [
         # security
diff --git a/models/cgscop_inpi_director.py b/models/cgscop_inpi_director.py
index 314d4d20a7ab0538b0851e6510c93b3cc72846dc..a63ef05d3aab7cf93b5e6f9acb0520dc5321c20c 100644
--- a/models/cgscop_inpi_director.py
+++ b/models/cgscop_inpi_director.py
@@ -4,8 +4,8 @@ import datetime
 import logging
 
 from odoo import _, fields, models
-import odoo.addons.api_inpi.models.inpi_models as inpi_models
 
+import odoo.addons.api_inpi.models.inpi_models as inpi_models
 
 logger = logging.getLogger(__name__)
 
@@ -44,7 +44,7 @@ class CgScopInpiDirector(models.Model):
                 "role": inpi_models.get_role_from_code(inpi_pouvoir.roleEntreprise),
             }
             if inpi_pouvoir.individu.descriptionPersonne.dateDeNaissancePresent:
-                director_data["birthday"] = (
-                    inpi_pouvoir.individu.descriptionPersonne.dateDeNaissance
-                )
+                director_data[
+                    "birthday"
+                ] = inpi_pouvoir.individu.descriptionPersonne.dateDeNaissance
             self.create(director_data)
diff --git a/models/res_partner.py b/models/res_partner.py
index db359bf9a59ef94d21ca69fc98bb520b19bd4c05..f033d655a89111ea2dba617282beca5c58102886 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -4,8 +4,8 @@ import datetime
 import logging
 
 from odoo import _, fields, models
-import odoo.addons.api_inpi.models.inpi_models as inpi_models
 
+import odoo.addons.api_inpi.models.inpi_models as inpi_models
 
 logger = logging.getLogger(__name__)
 
@@ -98,8 +98,9 @@ class ResPartner(models.Model):
         # check si l etablissement principal est le siege
         ets_prin = inpi_data.formality.content.personneMorale.etablissementPrincipal
 
-        if ( ets_prin and
-            ets_prin.descriptionEtablissement.rolePourEntreprise
+        if (
+            ets_prin
+            and ets_prin.descriptionEtablissement.rolePourEntreprise
             == inpi_models.RolePourEntreprise.SIEGE_ETS_PRIN.value
         ):
             return ets_prin
diff --git a/views/res_partner.xml b/views/res_partner.xml
index 7276659b0753771289dfbd9173dfc73e31c350bb..a5abebccee2d40eaa3ce517d59df98f5e57b7660 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -4,10 +4,7 @@
 <odoo>
     <data>
         <!-- Form -->
-        <record
-            model="ir.ui.view"
-            id="cgscop_inpi_inherit_res_partner_view"
-        >
+        <record model="ir.ui.view" id="cgscop_inpi_inherit_res_partner_view">
             <field name="name">cgscop.inpi.partner.view</field>
             <field name="model">res.partner</field>
             <field
diff --git a/wizard/inpi_update_wizard_views.xml b/wizard/inpi_update_wizard_views.xml
index e3123de5c760a60d80b16f2ef1eb391135afbe63..5372e180209f74f206075d0f34e08af61da2e759 100644
--- a/wizard/inpi_update_wizard_views.xml
+++ b/wizard/inpi_update_wizard_views.xml
@@ -8,7 +8,11 @@
                 <form>
                     <group>
                     <field name="all_scop" widget="radio" />
-                    <field name="partner_ids" attrs="{'invisible': [('all_scop','=','all')]}" widget="many2many_tags"/>
+                    <field
+                            name="partner_ids"
+                            attrs="{'invisible': [('all_scop','=','all')]}"
+                            widget="many2many_tags"
+                        />
                     </group>
 
                     <footer>
@@ -19,7 +23,12 @@
                             class="btn-primary"
                             confirm="Cette action va mettre à jour les données INPI des coopératives sélectionnées. Valider l’action ?"
                         />
-                         <button name="cancel" string="Annuler" special="cancel" class="oe_link"/>
+                         <button
+                            name="cancel"
+                            string="Annuler"
+                            special="cancel"
+                            class="oe_link"
+                        />
                     </footer>
                 </form>
             </field>