diff --git a/README.md b/README.md
index 369f674ee4b6d8172baf7a2f1fa07ea0ef2e0b94..d0de966090a0a8fadd77473d89c53b98a101e693 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # ScoDoc - Gestion de la scolarité - Version ScoDoc 9
 
-(c) Emmanuel Viennet 1999 - 2024 (voir LICENCE.txt).
+(c) Emmanuel Viennet 1999 - 2025 (voir LICENCE.txt).
 
 Installation: voir instructions à jour sur <https://scodoc.org/GuideInstallDebian12>
 
@@ -170,7 +170,7 @@ pip install snakeviz
 ```
 puis
 ```bash
-snakeviz -s --hostname 0.0.0.0 -p 5555 /opt/scodoc-data/GET.ScoDoc......prof 
+snakeviz -s --hostname 0.0.0.0 -p 5555 /opt/scodoc-data/GET.ScoDoc......prof
 ```
 ## Paquet Debian 12
 
diff --git a/app/api/assiduites.py b/app/api/assiduites.py
index 0644aa8820eb8ba5a3563f9fe2aeffbaa5b4340c..509babd46b5bd31c787ab87b3e891b4ae71896ea 100644
--- a/app/api/assiduites.py
+++ b/app/api/assiduites.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 """ScoDoc 9 API : Assiduités"""
diff --git a/app/api/billets_absences.py b/app/api/billets_absences.py
index 1cb24cb0cc213c1b7244d0aebf7f29a7c7b6c95a..a0d2532977dd985cf043d6ddd52296f2ac22cec9 100644
--- a/app/api/billets_absences.py
+++ b/app/api/billets_absences.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/api/departements.py b/app/api/departements.py
index 5965a03a1d74706d75d2e0716bcfa80a5077e82e..92660851ccf58afc041a7fa5a58777eb5238eec8 100644
--- a/app/api/departements.py
+++ b/app/api/departements.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/api/etud_suivi.py b/app/api/etud_suivi.py
index 76703bad56166ddaf655dba5f15a060449ded404..29cc74a69390c87b0655b988f069171f89f7eaf4 100644
--- a/app/api/etud_suivi.py
+++ b/app/api/etud_suivi.py
@@ -1,15 +1,15 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
 """
-  API : itemsuivi devenir/débouché des étudiants
+API : itemsuivi devenir/débouché des étudiants
 
-  CATEGORY
-  --------
-  Étudiants
+CATEGORY
+--------
+Étudiants
 """
 import datetime
 
diff --git a/app/api/etudiants.py b/app/api/etudiants.py
index bc9b363526a613da142d10c4478090e4424bde2c..73424ed380ee95afbdd68980473457fd55758b47 100755
--- a/app/api/etudiants.py
+++ b/app/api/etudiants.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/api/evaluations.py b/app/api/evaluations.py
index 36d48abcbc8237c0cb572ab7eb152775d2ef8cba..c12137d2e693d12d7926648d5926e0f0cc0fa575 100644
--- a/app/api/evaluations.py
+++ b/app/api/evaluations.py
@@ -1,15 +1,15 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
 """
-  ScoDoc 9 API : accès aux évaluations
+ScoDoc 9 API : accès aux évaluations
 
-  CATEGORY
-  --------
-  Évaluations
+CATEGORY
+--------
+Évaluations
 """
 from flask import g, request
 from flask_json import as_json
diff --git a/app/api/formations.py b/app/api/formations.py
index 815233d3e422558b0139423ca402fc790b9552a0..4015362b66896ccc614faa885b2b3c71aa8d3a4c 100644
--- a/app/api/formations.py
+++ b/app/api/formations.py
@@ -1,15 +1,15 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
 """
-  ScoDoc 9 API : accès aux formations
+ScoDoc 9 API : accès aux formations
 
-  CATEGORY
-  --------
-  Formations
+CATEGORY
+--------
+Formations
 """
 
 from flask import flash, g, request
diff --git a/app/api/formsemestres.py b/app/api/formsemestres.py
index 1b208cf70fe14ef5c2440ebacbce9ddce64c049e..a7777a21085327d20bf45230afb4f1743484247e 100644
--- a/app/api/formsemestres.py
+++ b/app/api/formsemestres.py
@@ -1,16 +1,16 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
 """
-  ScoDoc 9 API : accès aux formsemestres
+ScoDoc 9 API : accès aux formsemestres
 
 
-  CATEGORY
-  --------
-  FormSemestre
+CATEGORY
+--------
+FormSemestre
 
 """
 import base64
diff --git a/app/api/jury.py b/app/api/jury.py
index 795062bd54ac4eafd7820c329ad2003ec6df65c0..7bce63853fe4a8d796bd26b165bcc4c2bb78f011 100644
--- a/app/api/jury.py
+++ b/app/api/jury.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/api/logos.py b/app/api/logos.py
index a97d782da51012f5619958cc3e94fcde0189c3de..50f5f3aa380c2b05fcca4cc1e8f1c05b4524aae7 100644
--- a/app/api/logos.py
+++ b/app/api/logos.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/api/moduleimpl.py b/app/api/moduleimpl.py
index 0ee6b22611289a74be74f413565a849d0c490659..2226a499c31e3d8a134a6532fd0e31b5c5e20f2b 100644
--- a/app/api/moduleimpl.py
+++ b/app/api/moduleimpl.py
@@ -1,15 +1,15 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
 """
-  ScoDoc 9 API : accès aux moduleimpl
+ScoDoc 9 API : accès aux moduleimpl
 
-  CATEGORY
-  --------
-  ModuleImpl
+CATEGORY
+--------
+ModuleImpl
 """
 
 from flask_json import as_json
diff --git a/app/api/operations.py b/app/api/operations.py
index e8d87af905ad9a34985c33743b5e46922f872752..cc3437624ae08ab2b7d0b4b087749472323f3a6e 100644
--- a/app/api/operations.py
+++ b/app/api/operations.py
@@ -1,15 +1,15 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
 """
-  ScoDoc 9 API : liste opérations effectuées par un utilisateur
+ScoDoc 9 API : liste opérations effectuées par un utilisateur
 
-  CATEGORY
-  --------
-  Operations
+CATEGORY
+--------
+Operations
 """
 
 from flask import url_for
diff --git a/app/api/partitions.py b/app/api/partitions.py
index 9008285fa206a05c8ec3d3a06bca6752614c9b6b..035a295ea7d9e47b469910376b13eb73f8d8f762 100644
--- a/app/api/partitions.py
+++ b/app/api/partitions.py
@@ -1,15 +1,15 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
 """
-  ScoDoc 9 API : partitions
+ScoDoc 9 API : partitions
 
-  CATEGORY
-  --------
-  Groupes et Partitions
+CATEGORY
+--------
+Groupes et Partitions
 
 """
 from operator import attrgetter
diff --git a/app/api/semset.py b/app/api/semset.py
index 981c5a095b4b97d510f760bcc70cd6301c74b4ef..b599237964f5968982391adfe082c459122904dd 100644
--- a/app/api/semset.py
+++ b/app/api/semset.py
@@ -1,11 +1,11 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
 """
-  ScoDoc 9 API : accès aux formsemestres
+ScoDoc 9 API : accès aux formsemestres
 """
 # from flask import g, jsonify, request
 # from flask_login import login_required
diff --git a/app/api/tools.py b/app/api/tools.py
index a8deedc2dc2935ac955c7a829de6b376f0c7d9a8..35b664b602e1f49382b24f82a0ed50857c02c32c 100644
--- a/app/api/tools.py
+++ b/app/api/tools.py
@@ -1,10 +1,9 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
-"""ScoDoc 9 API : outils
-"""
+"""ScoDoc 9 API : outils"""
 
 from flask_login import current_user
 from sqlalchemy import desc, or_
diff --git a/app/api/users.py b/app/api/users.py
index 9437cebe4b7ceda425e7a491f8da598e42ca6bbc..e8720664bcfe44a6e14595b40d2d2f6b57abeff6 100644
--- a/app/api/users.py
+++ b/app/api/users.py
@@ -1,15 +1,15 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
 """
-  ScoDoc 9 API : accès aux utilisateurs
+ScoDoc 9 API : accès aux utilisateurs
 
-  CATEGORY
-  --------
-  Utilisateurs
+CATEGORY
+--------
+Utilisateurs
 """
 
 from flask import g, request
diff --git a/app/but/apc_edit_ue.py b/app/but/apc_edit_ue.py
index 83d4359203c23ae309b44a49c4e5b491f495d909..a8e733ce14073c228190bd7c0df2e84293adef1b 100644
--- a/app/but/apc_edit_ue.py
+++ b/app/but/apc_edit_ue.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/but/bulletin_but.py b/app/but/bulletin_but.py
index 22fc112381828c15b9a436c464ee5efbe21079bc..68a7ec9aadaa1850f4992c56ecf9ce315c8851e5 100644
--- a/app/but/bulletin_but.py
+++ b/app/but/bulletin_but.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/but/bulletin_but_court.py b/app/but/bulletin_but_court.py
index 0254d102beeca723c1cc1bc68084e5373df6ea78..9017236ec641949de9d0e215e00f5cfa767bc39d 100644
--- a/app/but/bulletin_but_court.py
+++ b/app/but/bulletin_but_court.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/but/bulletin_but_court_pdf.py b/app/but/bulletin_but_court_pdf.py
index b571a31619b191074864ecf8f61367a197853f9e..141bd706b0ce64f1e4bb923ed7af59df5e97aa25 100644
--- a/app/but/bulletin_but_court_pdf.py
+++ b/app/but/bulletin_but_court_pdf.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/but/bulletin_but_pdf.py b/app/but/bulletin_but_pdf.py
index e76aa62a529054dd5dfed60247ce2edef66b8263..9cf09a47b73f467797f01823933575b8c44161eb 100644
--- a/app/but/bulletin_but_pdf.py
+++ b/app/but/bulletin_but_pdf.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/but/bulletin_but_xml_compat.py b/app/but/bulletin_but_xml_compat.py
index 8159feadef904348b1a9a0ffa5f847a13dfded94..e8ee5351b889ffb733d1c92f7e6e275a2b1c7c5e 100644
--- a/app/but/bulletin_but_xml_compat.py
+++ b/app/but/bulletin_but_xml_compat.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/but/change_refcomp.py b/app/but/change_refcomp.py
index 4f4a8e23f34ca986b2bfbb48dc2fe6ea4e55e56a..d0f788a584a35d9d4df08937fb4d93ea999ebb56 100644
--- a/app/but/change_refcomp.py
+++ b/app/but/change_refcomp.py
@@ -1,12 +1,12 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
 """Code expérimental: si deux référentiel sont presques identiques
- (mêmes compétences, niveaux, parcours)
- essaie de changer une formation de référentiel.
+(mêmes compétences, niveaux, parcours)
+essaie de changer une formation de référentiel.
 """
 
 from app import clear_scodoc_cache, db
diff --git a/app/but/cursus_but.py b/app/but/cursus_but.py
index 92d11f428babce72c478a7e757c9fd3bcc80383d..dc6e0ac101b9c633315c0495867f1b1aa377c53f 100644
--- a/app/but/cursus_but.py
+++ b/app/but/cursus_but.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/but/forms/jury_but_forms.py b/app/but/forms/jury_but_forms.py
index 69eeaa480882a4cfd116798ba35a01ed81ad8608..559cefea19095b2cabc27e8fbc2556a1e968bae5 100644
--- a/app/but/forms/jury_but_forms.py
+++ b/app/but/forms/jury_but_forms.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""ScoDoc 9.3 : Formulaires / jurys BUT
-"""
+"""ScoDoc 9.3 : Formulaires / jurys BUT"""
 
 
 from flask_wtf import FlaskForm
@@ -14,5 +13,6 @@ from wtforms import SubmitField
 
 class FormSemestreValidationAutoBUTForm(FlaskForm):
     "simple form de confirmation"
+
     submit = SubmitField("Lancer le calcul")
     cancel = SubmitField("Annuler")
diff --git a/app/but/forms/refcomp_forms.py b/app/but/forms/refcomp_forms.py
index 5727454b13eceaf03f52fbdb4e206c81dc0e80dc..618ad7f624d7f14e2b4c38330176180066c94694 100644
--- a/app/but/forms/refcomp_forms.py
+++ b/app/but/forms/refcomp_forms.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""ScoDoc 9 : Formulaires / référentiel de compétence
-"""
+"""ScoDoc 9 : Formulaires / référentiel de compétence"""
 
 from flask_wtf import FlaskForm
 from flask_wtf.file import FileField, FileAllowed
@@ -15,6 +14,7 @@ from wtforms.validators import DataRequired
 
 class FormationRefCompForm(FlaskForm):
     "Choix d'un référentiel"
+
     referentiel_competence = SelectField(
         "Choisir parmi les référentiels déjà chargés :"
     )
@@ -24,6 +24,7 @@ class FormationRefCompForm(FlaskForm):
 
 class RefCompLoadForm(FlaskForm):
     "Upload d'un référentiel"
+
     referentiel_standard = SelectField(
         "Choisir un référentiel de compétences officiel BUT"
     )
@@ -41,6 +42,7 @@ class RefCompLoadForm(FlaskForm):
 
 class RefCompUploadForm(FlaskForm):
     "Upload d'un référentiel"
+
     upload = FileField(
         label="Sélectionner un fichier XML au format Orébut",
         validators=[
@@ -66,6 +68,7 @@ class RefCompUploadForm(FlaskForm):
 
 class FormationChangeRefCompForm(FlaskForm):
     "choix d'un nouveau ref. comp. pour une formation"
+
     object_select = SelectField(
         "Choisir le nouveau référentiel", validators=[DataRequired()]
     )
diff --git a/app/but/import_refcomp.py b/app/but/import_refcomp.py
index 8a11c2d82ab94632e52ede7e9ff9ffbae32156b2..693d5a2deb6ecdf58eda064006597e3f69c1e555 100644
--- a/app/but/import_refcomp.py
+++ b/app/but/import_refcomp.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 from xml.etree import ElementTree
diff --git a/app/but/jury_but.py b/app/but/jury_but.py
index 5f72b3c115acd9cf03abe787ca05856f32cf902e..8824681373c824a6038590f31018d016892fda37 100644
--- a/app/but/jury_but.py
+++ b/app/but/jury_but.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/but/jury_but_pv.py b/app/but/jury_but_pv.py
index 49b21c38343c700587e3fb62f59df6b03f7eca7a..eaa033f65989316a2e669a9908b70310870c8c2a 100644
--- a/app/but/jury_but_pv.py
+++ b/app/but/jury_but_pv.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Jury BUT: table synthèse résultats semestre / PV
-"""
+"""Jury BUT: table synthèse résultats semestre / PV"""
 from flask import g, request, url_for
 
 from openpyxl.styles import Alignment
diff --git a/app/but/jury_but_results.py b/app/but/jury_but_results.py
index d55ea1576fe0f96e9931cdbfbc88cab7f7d933b1..774e274368c03aa2d808ae04f1c2392964912ebd 100644
--- a/app/but/jury_but_results.py
+++ b/app/but/jury_but_results.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Jury BUT et classiques: récupération des résults pour API
-"""
+"""Jury BUT et classiques: récupération des résults pour API"""
 
 import numpy as np
 
diff --git a/app/but/jury_but_validation_auto.py b/app/but/jury_but_validation_auto.py
index 72ea51ca254028109a16ed08e440b3acc940c11a..843704e5d99729928796d6a0f1eab0e73476551a 100644
--- a/app/but/jury_but_validation_auto.py
+++ b/app/but/jury_but_validation_auto.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Jury BUT: calcul des décisions de jury annuelles "automatiques"
-"""
+"""Jury BUT: calcul des décisions de jury annuelles "automatiques" """
 from flask import g, url_for
 
 from app import db
diff --git a/app/but/jury_but_view.py b/app/but/jury_but_view.py
index 160cc8cdde972456cd8e44d88375ea6228ad3ab4..9482f3df6a20cd1e63bd141f7281de9d4550d810 100644
--- a/app/but/jury_but_view.py
+++ b/app/but/jury_but_view.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Jury BUT: affichage/formulaire
-"""
+"""Jury BUT: affichage/formulaire"""
 
 import re
 import numpy as np
diff --git a/app/but/jury_dut120.py b/app/but/jury_dut120.py
index ffe4bdc63935bfe43a389b23e64fb552e5c311d1..3fd34e8b950598792f0f66e9348bd48b01df7efd 100644
--- a/app/but/jury_dut120.py
+++ b/app/but/jury_dut120.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
@@ -45,6 +45,7 @@ def etud_ects_but1_but2(etud, referentiel_competence_id: int) -> float:
 
 class ValidationDUT120Form(FlaskForm):
     "Formulaire validation DUT120"
+
     submit = SubmitField("Enregistrer le diplôme DUT 120")
 
 
diff --git a/app/but/jury_edit_manual.py b/app/but/jury_edit_manual.py
index 8850c4a42762268b9ac871b9bc65498e550572c2..3bf2f7711108b96ca84b9f963eaa9ff0f7215191 100644
--- a/app/but/jury_edit_manual.py
+++ b/app/but/jury_edit_manual.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/but/rcue.py b/app/but/rcue.py
index 9a6ee73ce95b75e52996564a618beb1eac55371c..0d4a646ccbd1ee765674df53e313c9be7132d6b6 100644
--- a/app/but/rcue.py
+++ b/app/but/rcue.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Jury BUT: un RCUE, ou Regroupe Cohérent d'UEs
-"""
+"""Jury BUT: un RCUE, ou Regroupe Cohérent d'UEs"""
 from flask_sqlalchemy.query import Query
 
 from app.comp.res_but import ResultatsSemestreBUT
diff --git a/app/but/validations_view.py b/app/but/validations_view.py
index 713d4e13798a448adf836aeb1bec28ca663ce163..b0c27fc273be696012d7e268d14048d939b2213f 100644
--- a/app/but/validations_view.py
+++ b/app/but/validations_view.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Jury édition manuelle des décisions RCUE antérieures
-"""
+"""Jury édition manuelle des décisions RCUE antérieures"""
 
 from flask import render_template
 
diff --git a/app/comp/aux_stats.py b/app/comp/aux_stats.py
index 36b2efdf8e4be40ff4e830b196b4000eb8da102b..590161db53791f3c37ecb0e0909819759974d643 100644
--- a/app/comp/aux_stats.py
+++ b/app/comp/aux_stats.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Quelques classes auxiliaires pour les calculs des notes
-"""
+"""Quelques classes auxiliaires pour les calculs des notes"""
 
 import numpy as np
 
diff --git a/app/comp/bonus_spo.py b/app/comp/bonus_spo.py
index 0c7df638025175cb22994a832c8b4007fffbe437..5ce02445f6c936007b2496ca258fd35fe8f32961 100644
--- a/app/comp/bonus_spo.py
+++ b/app/comp/bonus_spo.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/comp/df_cache.py b/app/comp/df_cache.py
index 59dded343aca81b6018423592f02876614615504..365ea2c1fd2e4685c0a94e3bc56b2b52549f3cd8 100644
--- a/app/comp/df_cache.py
+++ b/app/comp/df_cache.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""caches pour tables APC
-"""
+"""caches pour tables APC"""
 from flask import g
 
 from app.scodoc import sco_cache
diff --git a/app/comp/jury.py b/app/comp/jury.py
index 899d3ad8a0f8a94e64f38c26e28a120a23e41ba7..d2e432e51ef04e15a117dfa195e5fe27eb77c866 100644
--- a/app/comp/jury.py
+++ b/app/comp/jury.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Stockage des décisions de jury
-"""
+"""Stockage des décisions de jury"""
 import pandas as pd
 import sqlalchemy as sa
 
diff --git a/app/comp/moy_mat.py b/app/comp/moy_mat.py
index e95e4c961ab2b50d211219812fe238288a968f40..c77a76ca1dca052dfef35365d56147bac9d23c55 100644
--- a/app/comp/moy_mat.py
+++ b/app/comp/moy_mat.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Calcul des moyennes de matières
-"""
+"""Calcul des moyennes de matières"""
 
 # C'est un recalcul (optionnel) effectué _après_ le calcul standard.
 
diff --git a/app/comp/moy_mod.py b/app/comp/moy_mod.py
index 20d8cb8bc737163bb5daecc39f27ea2fee04ee0e..ce1c3a3d2e6be5881b5df90af3b62d3855d31a92 100644
--- a/app/comp/moy_mod.py
+++ b/app/comp/moy_mod.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/comp/moy_sem.py b/app/comp/moy_sem.py
index 540b7866897708c41c21f5cfe3cdc915e276b9d5..c46363911b6c7a6782e7bc05084a5bc78f05e57b 100644
--- a/app/comp/moy_sem.py
+++ b/app/comp/moy_sem.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Fonctions de calcul des moyennes de semestre (indicatives dans le BUT)
-"""
+"""Fonctions de calcul des moyennes de semestre (indicatives dans le BUT)"""
 import numpy as np
 import pandas as pd
 
diff --git a/app/comp/moy_ue.py b/app/comp/moy_ue.py
index 8030208d37f987e3e27f928c1662fce104ea905b..d21d45f64dbf8873fe411985b8a4d1097deec66a 100644
--- a/app/comp/moy_ue.py
+++ b/app/comp/moy_ue.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Fonctions de calcul des moyennes d'UE (classiques ou BUT)
-"""
+"""Fonctions de calcul des moyennes d'UE (classiques ou BUT)"""
 import numpy as np
 import pandas as pd
 
diff --git a/app/comp/res_but.py b/app/comp/res_but.py
index fbde786589b18bb3107971ca9cd15723c44fa3d6..7e38089149c9560f328b793fce08f13a715167af 100644
--- a/app/comp/res_but.py
+++ b/app/comp/res_but.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Résultats semestres BUT
-"""
+"""Résultats semestres BUT"""
 import time
 import numpy as np
 import pandas as pd
diff --git a/app/comp/res_cache.py b/app/comp/res_cache.py
index 9374598b79097609a60ac6be71728b7a2b60c94e..7f32cc0896bf106330f51821f16f56de2dd75907 100644
--- a/app/comp/res_cache.py
+++ b/app/comp/res_cache.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Cache pour résultats (super classe)
-"""
+"""Cache pour résultats (super classe)"""
 
 from app.models import FormSemestre
 
diff --git a/app/comp/res_classic.py b/app/comp/res_classic.py
index 59f3790e4ca29332d2bdcf021906a8c3169f836e..431b2c237e5d57b81cb712a45e7a3167864b57ea 100644
--- a/app/comp/res_classic.py
+++ b/app/comp/res_classic.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Résultats semestres classiques (non APC)
-"""
+"""Résultats semestres classiques (non APC)"""
 import time
 import numpy as np
 import pandas as pd
diff --git a/app/comp/res_common.py b/app/comp/res_common.py
index 926bc7c979f8c0729560a9b02393a8cf29728e55..d25436453ad2f779e5a265451127d695c416c442 100644
--- a/app/comp/res_common.py
+++ b/app/comp/res_common.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Résultats semestre: méthodes communes aux formations classiques et APC
-"""
+"""Résultats semestre: méthodes communes aux formations classiques et APC"""
 
 from collections import Counter, defaultdict
 from collections.abc import Generator
diff --git a/app/comp/res_compat.py b/app/comp/res_compat.py
index 82b1ad882ebd9fceafa9632b7f2b4ddd540e265b..9f592985b8b9463da1c45d759113ae683f9816f1 100644
--- a/app/comp/res_compat.py
+++ b/app/comp/res_compat.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Classe résultats pour compatibilité avec le code ScoDoc 7
-"""
+"""Classe résultats pour compatibilité avec le code ScoDoc 7"""
 from functools import cached_property
 import pandas as pd
 
diff --git a/app/comp/res_sem.py b/app/comp/res_sem.py
index 8c28d7e444baf5e7a417a56212defd4f70dd05fb..48f3fce229354b5594080c9b15134aae3e157f7f 100644
--- a/app/comp/res_sem.py
+++ b/app/comp/res_sem.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Chargement des résultats de semestres (tous types)
-"""
+"""Chargement des résultats de semestres (tous types)"""
 from flask import g
 
 from app import db
diff --git a/app/email.py b/app/email.py
index 797dfd2a9242691a148304635c3a7f27d57d7fc9..36d4b6ea9e7e68c372a5d073e2992d794f2866cb 100644
--- a/app/email.py
+++ b/app/email.py
@@ -1,7 +1,7 @@
 # -*- coding: UTF-8 -*
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/entreprises/activate.py b/app/entreprises/activate.py
index 59a3d5c416828c7448b8b1972a5a35a4d515071b..ae3f3ab2a33a30f7fb658b7178205f167b4c5c93 100644
--- a/app/entreprises/activate.py
+++ b/app/entreprises/activate.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/entreprises/app_relations_entreprises.py b/app/entreprises/app_relations_entreprises.py
index e02a0c935920cced4c9a0888dc64e3b7442654cd..17802645da4d53f81e839f565322249fedcbf46f 100644
--- a/app/entreprises/app_relations_entreprises.py
+++ b/app/entreprises/app_relations_entreprises.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -345,9 +345,9 @@ def check_entreprises_import(m):
                     adresse=entreprise_data["adresse"],
                     ville=entreprise_data["ville"],
                     codepostal=entreprise_data["code_postal"],
-                    pays=entreprise_data["pays"]
-                    if entreprise_data["pays"]
-                    else "FRANCE",
+                    pays=(
+                        entreprise_data["pays"] if entreprise_data["pays"] else "FRANCE"
+                    ),
                     visible=True,
                 )
                 entreprises_import.append(entreprise_import)
diff --git a/app/entreprises/forms.py b/app/entreprises/forms.py
index 804e232b7833022d8489f3eff3e7eb40f5cb6992..b5a6805d9d085948a7cdddcd7b26e44e41844002 100644
--- a/app/entreprises/forms.py
+++ b/app/entreprises/forms.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/formations/edit_formation.py b/app/formations/edit_formation.py
index b796492a58d420d3f3da76a7c08efab8b52cfb18..ac5d59a1dc5048ef5d2b6aecb0d37c9ebb26e88b 100644
--- a/app/formations/edit_formation.py
+++ b/app/formations/edit_formation.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/formations/edit_matiere.py b/app/formations/edit_matiere.py
index 517e3570765adfa39567f267e2ee91481d2af2e0..7984145d757b2a89f46e0e0076f2c40e1638a253 100644
--- a/app/formations/edit_matiere.py
+++ b/app/formations/edit_matiere.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Ajout/Modification/Suppression matieres
-"""
+"""Ajout/Modification/Suppression matieres"""
 import flask
 from flask import flash, g, render_template, request, url_for
 
diff --git a/app/formations/edit_module.py b/app/formations/edit_module.py
index d6a3e8245d9fb373838acd06921374fbb48eee85..d81f4fe3d534c4f000b628a2d2fb4cf22ecaab4b 100644
--- a/app/formations/edit_module.py
+++ b/app/formations/edit_module.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/formations/edit_ue.py b/app/formations/edit_ue.py
index aa0e911f052d12079b8901f74b7b3af28791bda5..77e40755cb6660328b16fbef8fe42b9b9174a65f 100644
--- a/app/formations/edit_ue.py
+++ b/app/formations/edit_ue.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/formations/formation_io.py b/app/formations/formation_io.py
index 8b2dfd4218fb8bc16265eef74c3c3ccffdb868d1..33baaf7f3e5680f8788132902aed51af4a50fd45 100644
--- a/app/formations/formation_io.py
+++ b/app/formations/formation_io.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Import / Export de formations
-"""
+"""Import / Export de formations"""
 import xml.dom.minidom
 
 import flask
diff --git a/app/formations/formation_recap.py b/app/formations/formation_recap.py
index 6bbdcaf311cd7b200e2ab20a61ff159cc3374c7c..bff6e2e2f99981d45f73c16b13d4ad919d1fa2de 100644
--- a/app/formations/formation_recap.py
+++ b/app/formations/formation_recap.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Table recap formation (avec champs éditables)
-"""
+"""Table recap formation (avec champs éditables)"""
 import io
 from zipfile import ZipFile
 
diff --git a/app/formations/formation_versions.py b/app/formations/formation_versions.py
index 168119b1e34bbe095a738d84c5d1618ef4efde3e..e5444edb492cc9a1cbd08b10cc45a949c2599a7a 100644
--- a/app/formations/formation_versions.py
+++ b/app/formations/formation_versions.py
@@ -4,7 +4,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -24,8 +24,7 @@
 #
 ##############################################################################
 
-"""Association de nouvelles versions de formation à des formsemestre
-"""
+"""Association de nouvelles versions de formation à des formsemestre"""
 import flask
 from flask import url_for, flash
 from flask import g, request
diff --git a/app/forms/assiduite/ajout_assiduite_etud.py b/app/forms/assiduite/ajout_assiduite_etud.py
index 378f2b660fc4e693ffce17750adf76b2937a665e..c089fa2f49728178db43f05b7f108fa17dc6d866 100644
--- a/app/forms/assiduite/ajout_assiduite_etud.py
+++ b/app/forms/assiduite/ajout_assiduite_etud.py
@@ -4,7 +4,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/forms/formsemestre/change_formation.py b/app/forms/formsemestre/change_formation.py
index c66e96778b1bd946caeff84d95c51c4bb0cd3a48..3c3d0f66465f95603d90135227628702cd0c4994 100644
--- a/app/forms/formsemestre/change_formation.py
+++ b/app/forms/formsemestre/change_formation.py
@@ -4,7 +4,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -36,6 +36,7 @@ from app.models import Formation
 
 class FormSemestreChangeFormationForm(FlaskForm):
     "Formulaire changement formation d'un formsemestre"
+
     # construit dynamiquement ci-dessous
 
 
diff --git a/app/forms/formsemestre/edit_description.py b/app/forms/formsemestre/edit_description.py
index d10cd8075bb92c89c59a49f34c23cd0d4191227f..0726a80448592cd1941be7f604a25fa854abeabd 100644
--- a/app/forms/formsemestre/edit_description.py
+++ b/app/forms/formsemestre/edit_description.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Formulaire édition description formsemestre
-"""
+"""Formulaire édition description formsemestre"""
 from wtforms import (
     BooleanField,
     FileField,
@@ -45,6 +44,7 @@ class DateDMYField(StringField):
 
 class FormSemestreDescriptionForm(ScoDocForm):
     "Formulaire édition description formsemestre"
+
     description = TextAreaField(
         "Description",
         validators=[Optional()],
diff --git a/app/forms/main/config_apo.py b/app/forms/main/config_apo.py
index 87e6d9fa65cbc53095f0920f8f90300807c4c8e4..d565477ec21309fdf16637f3aba0f174ed7ac6ef 100644
--- a/app/forms/main/config_apo.py
+++ b/app/forms/main/config_apo.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/forms/main/config_assiduites.py b/app/forms/main/config_assiduites.py
index fa880d31db4168d3f9c9ad2ca057f550c6e3069d..ccde9580385b887d9615b494e07b8895b3fe41b4 100644
--- a/app/forms/main/config_assiduites.py
+++ b/app/forms/main/config_assiduites.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -76,6 +76,7 @@ def check_ics_regexp(form, field):
 
 class ConfigAssiduitesForm(FlaskForm):
     "Formulaire paramétrage Module Assiduité"
+
     assi_morning_time = ScoTimeField("Début de la journée", "assi_morning_time")
     assi_lunch_time = ScoTimeField(
         "Heure de midi (date pivot entre matin et après-midi)", "assi_lunch_time"
diff --git a/app/forms/main/config_cas.py b/app/forms/main/config_cas.py
index 4c64c8ab573cb37d9de7ca97a2b9f0803f7ae704..3c5f45270249f40e1cbf953dbf92b9cd91ad6c47 100644
--- a/app/forms/main/config_cas.py
+++ b/app/forms/main/config_cas.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -51,6 +51,7 @@ def check_cas_edt_id_from_xml_regexp(form, field):
 
 class ConfigCASForm(FlaskForm):
     "Formulaire paramétrage CAS"
+
     cas_enable = BooleanField("Activer le CAS")
     cas_force = BooleanField(
         "Forcer l'utilisation de CAS (tous les utilisateurs seront redirigés vers le CAS)"
diff --git a/app/forms/main/config_logos.py b/app/forms/main/config_logos.py
index 09264dcdbb0b3e401d516d986df4e7a380fe7e6e..fe0c3831d84c55091f91abc581e7a3eed5c4fa61 100644
--- a/app/forms/main/config_logos.py
+++ b/app/forms/main/config_logos.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/forms/main/config_main.py b/app/forms/main/config_main.py
index 101bbe38bb46dab36e03f602281f801a7d7a6637..87692b139e09a0d8730cfe2a0902f90664cfb640 100644
--- a/app/forms/main/config_main.py
+++ b/app/forms/main/config_main.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -41,6 +41,7 @@ import app.scodoc.sco_utils as scu
 
 class BonusConfigurationForm(FlaskForm):
     "Panneau de configuration des logos"
+
     bonus_sport_func_name = SelectField(
         label="Fonction de calcul des bonus sport&culture",
         choices=[
@@ -54,6 +55,7 @@ class BonusConfigurationForm(FlaskForm):
 
 class ScoDocConfigurationForm(FlaskForm):
     "Panneau de configuration avancée"
+
     disable_passerelle = BooleanField(  # disable car par défaut activée
         """cacher les fonctions liées à une passerelle de publication des résultats vers les étudiants ("œil"). N'affecte pas l'API, juste la présentation."""
     )
diff --git a/app/forms/main/config_rgpd.py b/app/forms/main/config_rgpd.py
index d20ff71717fe0f88e057f2ceb26248a19babe84d..ebe48e2dbde040af49a09efc80b44a2ea7067404 100644
--- a/app/forms/main/config_rgpd.py
+++ b/app/forms/main/config_rgpd.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -36,6 +36,7 @@ from wtforms.fields.simple import TextAreaField
 
 class ConfigRGPDForm(FlaskForm):
     "Formulaire paramétrage RGPD"
+
     rgpd_coordonnees_dpo = TextAreaField(
         label="Optionnel: coordonnées du DPO",
         description="""Le délégué à la protection des données (DPO) est chargé de mettre en œuvre
diff --git a/app/forms/main/create_bug_report.py b/app/forms/main/create_bug_report.py
index e94920f85148606231df3b5def192959ae7201f1..bdee4493e77f258554f95e33dcfe43068cf4586f 100644
--- a/app/forms/main/create_bug_report.py
+++ b/app/forms/main/create_bug_report.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/forms/main/create_dept.py b/app/forms/main/create_dept.py
index 059af39ca9da2bde17c3174ca6bcdb0d7b69a58c..e97e3b775c3acff4015820d442c944b7f4bc37f9 100644
--- a/app/forms/main/create_dept.py
+++ b/app/forms/main/create_dept.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/forms/main/role_create.py b/app/forms/main/role_create.py
index aee79c0c312d014a5864f7978369ce127926c3c0..1dec933b3642dbb0b02d850237dbbdb781cd373a 100644
--- a/app/forms/main/role_create.py
+++ b/app/forms/main/role_create.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/forms/pe/pe_sem_recap.py b/app/forms/pe/pe_sem_recap.py
index ae86cab485c19b0064879441fda6adac73b8f4b0..ce798cc63bfa26901cfa1372b8f1656091b9153d 100644
--- a/app/forms/pe/pe_sem_recap.py
+++ b/app/forms/pe/pe_sem_recap.py
@@ -2,7 +2,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -32,6 +32,7 @@ from wtforms import BooleanField, SubmitField
 
 class ParametrageClasseurPE(FlaskForm):
     "Formulaire paramétrage génération classeur PE"
+
     # cohorte_restreinte = BooleanField(
     #    "Restreindre aux étudiants inscrits dans le semestre (sans interclassement de promotion) (à venir)"
     # )
diff --git a/app/formsemestre/import_from_descr.py b/app/formsemestre/import_from_descr.py
index 07cdf0c3b95e9b8ca34f76ae9d7ab467f2c28f25..9dbe50263cd78218918d8050c35b554b4dcb6e2b 100644
--- a/app/formsemestre/import_from_descr.py
+++ b/app/formsemestre/import_from_descr.py
@@ -4,7 +4,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/models/but_refcomp.py b/app/models/but_refcomp.py
index 635af3f9c4d7c64b734b9f391e6197c6f3ecbdec..9c46dbb55cf51ff40b87e5b64706eacfd4a0a8f3 100644
--- a/app/models/but_refcomp.py
+++ b/app/models/but_refcomp.py
@@ -1,10 +1,9 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
-"""ScoDoc 9 models : Référentiel Compétence BUT 2021
-"""
+"""ScoDoc 9 models : Référentiel Compétence BUT 2021"""
 from datetime import datetime
 import functools
 from operator import attrgetter
@@ -58,6 +57,7 @@ class XMLModel:
 
 class ApcReferentielCompetences(models.ScoDocModel, XMLModel):
     "Référentiel de compétence d'une spécialité"
+
     id = db.Column(db.Integer, primary_key=True)
     dept_id = db.Column(
         db.Integer, db.ForeignKey("departement.id", ondelete="CASCADE"), index=True
@@ -341,6 +341,7 @@ class ApcReferentielCompetences(models.ScoDocModel, XMLModel):
 
 class ApcCompetence(models.ScoDocModel, XMLModel):
     "Compétence"
+
     id = db.Column(db.Integer, primary_key=True)
     referentiel_id = db.Column(
         db.Integer,
@@ -412,6 +413,7 @@ class ApcCompetence(models.ScoDocModel, XMLModel):
 
 class ApcSituationPro(models.ScoDocModel, XMLModel):
     "Situation professionnelle"
+
     id = db.Column(db.Integer, primary_key=True)
     competence_id = db.Column(
         db.Integer,
@@ -427,6 +429,7 @@ class ApcSituationPro(models.ScoDocModel, XMLModel):
 
 class ApcComposanteEssentielle(models.ScoDocModel, XMLModel):
     "Composante essentielle"
+
     id = db.Column(db.Integer, primary_key=True)
     competence_id = db.Column(
         db.Integer,
@@ -610,6 +613,7 @@ app_critiques_modules = db.Table(
 
 class ApcAppCritique(models.ScoDocModel, XMLModel):
     "Apprentissage Critique BUT"
+
     id = db.Column(db.Integer, primary_key=True)
     niveau_id = db.Column(
         db.Integer, db.ForeignKey("apc_niveau.id", ondelete="CASCADE"), nullable=False
@@ -697,6 +701,7 @@ parcours_formsemestre = db.Table(
 
 class ApcParcours(models.ScoDocModel, XMLModel):
     "Un parcours BUT"
+
     id = db.Column(db.Integer, primary_key=True)
     referentiel_id = db.Column(
         db.Integer,
diff --git a/app/models/formsemestre.py b/app/models/formsemestre.py
index 438e6c011f1a8ce7cde874bac6b5f7c110c7396a..d0410fb8372d0530f45701423840e41070302969 100644
--- a/app/models/formsemestre.py
+++ b/app/models/formsemestre.py
@@ -1,7 +1,7 @@
 # -*- coding: UTF-8 -*
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/models/formsemestre_descr.py b/app/models/formsemestre_descr.py
index cff56185283074e80f656e837955c7f543909284..513352cea4a7f253bc57755c7f513bbea2069fc0 100644
--- a/app/models/formsemestre_descr.py
+++ b/app/models/formsemestre_descr.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/models/groups.py b/app/models/groups.py
index 55cd8ecf9f718d770611adfe1c9e7562e18841ba..2e59b938439cdcccaf132b69a174428d2f7ae5ad 100644
--- a/app/models/groups.py
+++ b/app/models/groups.py
@@ -1,12 +1,11 @@
 # -*- coding: UTF-8 -*
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""ScoDoc models: Groups & partitions
-"""
+"""ScoDoc models: Groups & partitions"""
 from operator import attrgetter
 from sqlalchemy.exc import IntegrityError
 
diff --git a/app/pe/moys/pe_interclasstag.py b/app/pe/moys/pe_interclasstag.py
index 382d88febfdc631eab40ce21b2a514d3d6dc8910..776af5820199710264c0fc1d17377eb983a3af7f 100644
--- a/app/pe/moys/pe_interclasstag.py
+++ b/app/pe/moys/pe_interclasstag.py
@@ -2,7 +2,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -112,7 +112,7 @@ class InterClassTag(pe_tabletags.TableTag):
         # Les RCS (SemX ou RCSemX) suivis par les étudiants du jury,
         # en ne gardant que ceux associés aux diplomés
         self.suivis: dict[int, pe_rcs.RCS] = {}
-        """Association entre chaque étudiant et le SxTag ou RCSTag à prendre 
+        """Association entre chaque étudiant et le SxTag ou RCSTag à prendre
         pour l'aggrégat"""
         for etudid in self.diplomes_ids:
             self.suivis[etudid] = suivis[etudid][nom_rcs]
diff --git a/app/pe/moys/pe_rcstag.py b/app/pe/moys/pe_rcstag.py
index cf135174b004959ee648b6c944238c91f7129f9e..ba018f7f603d82ab8e8ac2dc030bcfcd6f06dfdd 100644
--- a/app/pe/moys/pe_rcstag.py
+++ b/app/pe/moys/pe_rcstag.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/pe/moys/pe_ressemtag.py b/app/pe/moys/pe_ressemtag.py
index acd59ad29978a2b6933551d2db1ef706fc2ce8fe..9890fc222043d8d406552e35eaf228deba9f8be1 100644
--- a/app/pe/moys/pe_ressemtag.py
+++ b/app/pe/moys/pe_ressemtag.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU Generfal Public License as published by
diff --git a/app/pe/moys/pe_sxtag.py b/app/pe/moys/pe_sxtag.py
index 9efa0327936e876cfd96fb86fe93a0b500b93f82..26eb303631b7e07a743b445548a0d6130387dfcc 100644
--- a/app/pe/moys/pe_sxtag.py
+++ b/app/pe/moys/pe_sxtag.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/pe/moys/pe_tabletags.py b/app/pe/moys/pe_tabletags.py
index 6c5ecbe4d48f9958a6be68dd21fb1f0afcf11e88..47035787bcd2e381c099df2ff67f7f5fc631907a 100644
--- a/app/pe/moys/pe_tabletags.py
+++ b/app/pe/moys/pe_tabletags.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/pe/pe_comp.py b/app/pe/pe_comp.py
index 0ab973f4cd2cff821be63869a497b0f842e72890..409731e3a87712c387e999d75d26b03648a37114 100644
--- a/app/pe/pe_comp.py
+++ b/app/pe/pe_comp.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/pe/pe_etudiant.py b/app/pe/pe_etudiant.py
index 748789ae5e929dd8587e02cb5378c1ee2ea6232c..7cbbe93ccd87ff2cdf063eef3ccd74ba42c94cae 100644
--- a/app/pe/pe_etudiant.py
+++ b/app/pe/pe_etudiant.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet. c All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet. c All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/pe/pe_jury.py b/app/pe/pe_jury.py
index 0b1bcfbd4f496f0de00fa749b2627ed1f9d84ea7..46999a9f993c30245a07b3341f8a96f588c6743c 100644
--- a/app/pe/pe_jury.py
+++ b/app/pe/pe_jury.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/pe/pe_view.py b/app/pe/pe_view.py
index 6aebfa28852e2e205873b2e4ac9b94d3361ff4e4..f9d0adbea8c5d56fad6efbb356ea4d73e6eaf485 100644
--- a/app/pe/pe_view.py
+++ b/app/pe/pe_view.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -31,9 +31,7 @@
 ##############################################################################
 
 
-"""ScoDoc : interface des fonctions de gestion des avis de poursuites d'étude
-
-"""
+"""ScoDoc : interface des fonctions de gestion des avis de poursuites d'étude"""
 
 from flask import flash, g, redirect, render_template, request, send_file, url_for
 
diff --git a/app/scodoc/__init__.py b/app/scodoc/__init__.py
index 1edc8d5ff5bcb2feeae878c54f94cfaef368e8a6..6595afaa36305fc94b056a15ff6475230099de07 100644
--- a/app/scodoc/__init__.py
+++ b/app/scodoc/__init__.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,5 +25,4 @@
 #
 ##############################################################################
 
-"""ScoDoc core package
-"""
+"""ScoDoc core package"""
diff --git a/app/scodoc/codes_cursus.py b/app/scodoc/codes_cursus.py
index 3c4e6d155dcaf27b5a936b2ebcc4bbc6fc34318e..8d0d8a90f958d180e6e63932adccf035c6fef743 100644
--- a/app/scodoc/codes_cursus.py
+++ b/app/scodoc/codes_cursus.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -650,6 +650,7 @@ register_cursus(CursusBachelorISCID6())
 
 class CursusMasterISCID4(CursusISCID):
     "ISCID: Master en 2 ans (4 sem.)"
+
     TYPE_CURSUS = CodesCursus.ISCID4
     NAME = "CursusMasterISCID4"
     NB_SEM = 4
diff --git a/app/scodoc/gen_tables.py b/app/scodoc/gen_tables.py
index 3161c9cbc9ce77a7807e1b84522289f06233cd2a..1d0c06325502e145831e858d0be83df727de01f8 100644
--- a/app/scodoc/gen_tables.py
+++ b/app/scodoc/gen_tables.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/html_sco_header.py b/app/scodoc/html_sco_header.py
index 2d2ad4c6ab86c1f7837227c9d4e6fa4a24eb4e89..1346932dd6a47dccb20a33a9bfcdfbb818405c9a 100644
--- a/app/scodoc/html_sco_header.py
+++ b/app/scodoc/html_sco_header.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/html_sidebar.py b/app/scodoc/html_sidebar.py
index 7036f4e4a0026e21c57e448c057b1255f5c59686..132049e3aef6b796efc3a87b6526fb09e02c77c1 100755
--- a/app/scodoc/html_sidebar.py
+++ b/app/scodoc/html_sidebar.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/htmlutils.py b/app/scodoc/htmlutils.py
index 3b49d18c07bbb41d40a47629a2860298af73b265..19e3041efdb5d19c0372ee05e051231a9428f168 100644
--- a/app/scodoc/htmlutils.py
+++ b/app/scodoc/htmlutils.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Various HTML generation functions
-"""
+"""Various HTML generation functions"""
 from html.parser import HTMLParser
 from html.entities import name2codepoint
 from multiprocessing.sharedctypes import Value
diff --git a/app/scodoc/notes_users.py b/app/scodoc/notes_users.py
index b1ead89491d90eeec0297ad3bc4cc56fd5402c00..bc43a7c0d2abb0acd6f5cdb4969bd99bfd508a3a 100644
--- a/app/scodoc/notes_users.py
+++ b/app/scodoc/notes_users.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,7 +25,6 @@
 #
 ##############################################################################
 
-"""Basic User management
-"""
+"""Basic User management"""
 
 raise NotImplementedError()
diff --git a/app/scodoc/safehtml.py b/app/scodoc/safehtml.py
index d74bf40ff5b851bf28dc34453ed5156e53aa9492..eb503b80230673989c8c08d839450a87bde86189 100644
--- a/app/scodoc/safehtml.py
+++ b/app/scodoc/safehtml.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_abs_billets.py b/app/scodoc/sco_abs_billets.py
index ecb3b33c74b7ba1e6397868d039fad1729c9dc5d..c795b815ae123ae96830607998c7d0462f64742d 100644
--- a/app/scodoc/sco_abs_billets.py
+++ b/app/scodoc/sco_abs_billets.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Fonctions sur les billets d'absences
-"""
+"""Fonctions sur les billets d'absences"""
 
 from flask import g, url_for
 from flask_sqlalchemy.query import Query
diff --git a/app/scodoc/sco_abs_notification.py b/app/scodoc/sco_abs_notification.py
index f7dac412e8e8351f4571f34513d247a9d214f8a5..9cd888069cc2ca2c03334dfee690e2a60816f975 100644
--- a/app/scodoc/sco_abs_notification.py
+++ b/app/scodoc/sco_abs_notification.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_apogee_compare.py b/app/scodoc/sco_apogee_compare.py
index f830942aab4f3d505927dd510bd27d928200c02e..5bc75ead4af01ef70add21a44af84a3836ba8652 100644
--- a/app/scodoc/sco_apogee_compare.py
+++ b/app/scodoc/sco_apogee_compare.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_apogee_csv.py b/app/scodoc/sco_apogee_csv.py
index e3d1803314c55834c79862f0d86e3b4b5be84d37..467ffb0b79d44b1acde0cecdbb2edb755ed87551 100644
--- a/app/scodoc/sco_apogee_csv.py
+++ b/app/scodoc/sco_apogee_csv.py
@@ -2,7 +2,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_apogee_reader.py b/app/scodoc/sco_apogee_reader.py
index 48d64cfe488e51a76153ed9095dded8e693e6723..a052b7863c9cd9459365a5ba4f245c47716286d8 100644
--- a/app/scodoc/sco_apogee_reader.py
+++ b/app/scodoc/sco_apogee_reader.py
@@ -2,7 +2,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_archives.py b/app/scodoc/sco_archives.py
index 44acd08ae345e8176513bb538fbfe59029bee062..d434b7e48bdfa3d38b28587c733ee668f8f17709 100644
--- a/app/scodoc/sco_archives.py
+++ b/app/scodoc/sco_archives.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_archives_etud.py b/app/scodoc/sco_archives_etud.py
index be0b70523c08b0805241537bf01e58dc407244a9..2cfae6a29d6455a5cdfe49332cabf50870e94385 100644
--- a/app/scodoc/sco_archives_etud.py
+++ b/app/scodoc/sco_archives_etud.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,8 +26,8 @@
 ##############################################################################
 
 """ScoDoc : gestion des fichiers archivés associés aux étudiants
-     Il s'agit de fichiers quelconques, généralement utilisés pour conserver
-     les dossiers d'admission et autres pièces utiles.
+Il s'agit de fichiers quelconques, généralement utilisés pour conserver
+les dossiers d'admission et autres pièces utiles.
 """
 import flask
 from flask import flash, render_template, url_for
diff --git a/app/scodoc/sco_archives_formsemestre.py b/app/scodoc/sco_archives_formsemestre.py
index 3e4b54d2081cefc7bdbadf22e7cc618b7498e0dc..6f3887f3d540d7fdb452999ba0b7805c202fd9f3 100644
--- a/app/scodoc/sco_archives_formsemestre.py
+++ b/app/scodoc/sco_archives_formsemestre.py
@@ -2,7 +2,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -22,8 +22,7 @@
 #
 ##############################################################################
 
-"""ScoDoc : gestion des fichiers archivés associés au formsemestre (PV de jury, ...)
-"""
+"""ScoDoc : gestion des fichiers archivés associés au formsemestre (PV de jury, ...)"""
 import json
 
 import flask
diff --git a/app/scodoc/sco_bac.py b/app/scodoc/sco_bac.py
index c7411e2414d32df6e923128ea95b79c770df30e0..13976842f182a5fc6c897be17b63d7ea3ce5841c 100644
--- a/app/scodoc/sco_bac.py
+++ b/app/scodoc/sco_bac.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_bug_report.py b/app/scodoc/sco_bug_report.py
index c7df1a1112a1ed9237375c2031f9afec91f17ade..e66ec5632d3c8ae70a11d073c1ff163793e4339f 100644
--- a/app/scodoc/sco_bug_report.py
+++ b/app/scodoc/sco_bug_report.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_bulletins.py b/app/scodoc/sco_bulletins.py
index 80af7b86e260596eafa0ba7cc232e48142809c7d..0d09b3ba1b73fae416ed5fe3d047a18ee6002f04 100644
--- a/app/scodoc/sco_bulletins.py
+++ b/app/scodoc/sco_bulletins.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_bulletins_example.py b/app/scodoc/sco_bulletins_example.py
index a7e61568f9fb376686d10627167d5c1269acdbe9..03a35437928a0317a5a90724c1b8b7a73eb74f1f 100644
--- a/app/scodoc/sco_bulletins_example.py
+++ b/app/scodoc/sco_bulletins_example.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Generation bulletins de notes: exemple minimal pour les programmeurs
-"""
+"""Generation bulletins de notes: exemple minimal pour les programmeurs"""
 from reportlab.platypus import Paragraph
 
 from app.scodoc import sco_pdf
diff --git a/app/scodoc/sco_bulletins_generator.py b/app/scodoc/sco_bulletins_generator.py
index efb785b92fa52fb4d5a0108fc1dab3afb8e978eb..6c3c51d28a55617764e70ddd6b98f9522e2e364b 100644
--- a/app/scodoc/sco_bulletins_generator.py
+++ b/app/scodoc/sco_bulletins_generator.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_bulletins_json.py b/app/scodoc/sco_bulletins_json.py
index 455dd1b168aef21d480314afce63d58868cba462..951f86c2c716930f631bae34a3d5abff129ab8fc 100644
--- a/app/scodoc/sco_bulletins_json.py
+++ b/app/scodoc/sco_bulletins_json.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_bulletins_legacy.py b/app/scodoc/sco_bulletins_legacy.py
index 26de93813e4129ba5e6c9dd66a7100c6d828ba2f..cd4bafd2e2390cc4c5628b101374478c94b4baf4 100644
--- a/app/scodoc/sco_bulletins_legacy.py
+++ b/app/scodoc/sco_bulletins_legacy.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -27,11 +27,11 @@
 
 """Generation bulletins de notes dans l'ancien format de ScoDoc (avant juillet 2011).
 
- Code partiellement redondant, copié de l'ancien système de gestion des bulletins.
+Code partiellement redondant, copié de l'ancien système de gestion des bulletins.
 
- Voir sco_bulletins_standard pour une version plus récente.
+Voir sco_bulletins_standard pour une version plus récente.
 
- CE FORMAT N'EVOLUERA PLUS ET EST CONSIDERE COMME OBSOLETE.
+CE FORMAT N'EVOLUERA PLUS ET EST CONSIDERE COMME OBSOLETE.
 
 """
 
diff --git a/app/scodoc/sco_bulletins_pdf.py b/app/scodoc/sco_bulletins_pdf.py
index 7a0bec95066a4116c1f9e6a0ad560e9799e91961..a632fb72f3b3cc750b94553bad56a4e4a36a9315 100644
--- a/app/scodoc/sco_bulletins_pdf.py
+++ b/app/scodoc/sco_bulletins_pdf.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_bulletins_signature.py b/app/scodoc/sco_bulletins_signature.py
index e862a1699386bc03ec5e51d2b327395327a8dbf0..71bac08ff724e13d82199604e31532efa4efd2e9 100644
--- a/app/scodoc/sco_bulletins_signature.py
+++ b/app/scodoc/sco_bulletins_signature.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_bulletins_standard.py b/app/scodoc/sco_bulletins_standard.py
index d841627f2d8bddd6932880ff5b3c6f4018ef9eba..d935b37af7358bf992ddce5c455326ecba8d67c5 100644
--- a/app/scodoc/sco_bulletins_standard.py
+++ b/app/scodoc/sco_bulletins_standard.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -77,6 +77,7 @@ from app.scodoc.sco_permissions import Permission
 # car il sera stocké en base de données (dans les préférences)
 class BulletinGeneratorStandard(sco_bulletins_generator.BulletinGenerator):
     "Les bulletins standards"
+
     # la description doit être courte: elle apparait dans le menu de paramètrage ScoDoc
     description = "standard ScoDoc (version 2011)"
     supported_formats = ["html", "pdf"]
diff --git a/app/scodoc/sco_bulletins_ucac.py b/app/scodoc/sco_bulletins_ucac.py
index 6ec66cceeee351cf2a34680c01dcd434691acb6a..9cc4ac029e8a4cc83c7bf06496eccdd60feba377 100644
--- a/app/scodoc/sco_bulletins_ucac.py
+++ b/app/scodoc/sco_bulletins_ucac.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_bulletins_xml.py b/app/scodoc/sco_bulletins_xml.py
index bd25e41ca6df4568b325b9f58cb639c75435fb54..1c3a4e03fdc011f506f3ebdfa52fb882cc219324 100644
--- a/app/scodoc/sco_bulletins_xml.py
+++ b/app/scodoc/sco_bulletins_xml.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_cache.py b/app/scodoc/sco_cache.py
index caf1187c825e07add95556db430fa070953ee6e9..de14e7449b45fb327de9c204efe78d1513ce4e96 100644
--- a/app/scodoc/sco_cache.py
+++ b/app/scodoc/sco_cache.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -27,9 +27,9 @@
 
 """Gestion des caches
 
-  Ré-écrite pour ScoDoc8, utilise flask_caching et REDIS
+Ré-écrite pour ScoDoc8, utilise flask_caching et REDIS
 
-  ScoDoc est maintenant multiprocessus / mono-thread, avec un cache partagé.
+ScoDoc est maintenant multiprocessus / mono-thread, avec un cache partagé.
 """
 
 
diff --git a/app/scodoc/sco_cal.py b/app/scodoc/sco_cal.py
index ef88b70c05ad9aea72a27ea67dd463f3e0af9b6b..55cb8f801eb22a8706beef90160e9b6a9683fb9a 100644
--- a/app/scodoc/sco_cal.py
+++ b/app/scodoc/sco_cal.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Génération calendrier (ancienne présentation)
-"""
+"""Génération calendrier (ancienne présentation)"""
 
 import calendar
 import html
diff --git a/app/scodoc/sco_config_actions.py b/app/scodoc/sco_config_actions.py
index 236b7ae8425ab45298e48cdfa41ad1fba29714b2..579a610939e4531f32f1316803e7b8de68ba2bef 100644
--- a/app/scodoc/sco_config_actions.py
+++ b/app/scodoc/sco_config_actions.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,9 +25,7 @@
 #
 ##############################################################################
 
-"""
-
-"""
+""" """
 from flask import current_app
 
 from app.scodoc.sco_logos import find_logo
diff --git a/app/scodoc/sco_cost_formation.py b/app/scodoc/sco_cost_formation.py
index 0a211f14c0243c7bfd2c040fa7853d3447c29e4e..72e9ae6cbf57d1ee4f03435acf8c9c421044c826 100644
--- a/app/scodoc/sco_cost_formation.py
+++ b/app/scodoc/sco_cost_formation.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,9 +26,9 @@
 ##############################################################################
 
 """Rapports estimation coût de formation basé sur le programme pédagogique
-   et les nombres de groupes.
+et les nombres de groupes.
 
-   (coût théorique en heures équivalent TD)
+(coût théorique en heures équivalent TD)
 """
 from flask import request, Response
 
diff --git a/app/scodoc/sco_cursus.py b/app/scodoc/sco_cursus.py
index 1d40e13a29a518cf0ff11c9df9139251a0262185..a2eca56dd8cfe84e5ad075b38606e33db875f424 100644
--- a/app/scodoc/sco_cursus.py
+++ b/app/scodoc/sco_cursus.py
@@ -4,7 +4,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -24,8 +24,7 @@
 #
 ##############################################################################
 
-"""Gestion des cursus (jurys suivant la formation)
-"""
+"""Gestion des cursus (jurys suivant la formation)"""
 from sqlalchemy.sql import text
 
 from app import db
diff --git a/app/scodoc/sco_cursus_dut.py b/app/scodoc/sco_cursus_dut.py
index d4605454eab51f78be02d175f0842206ec1f22b8..2743b653eb586b7e306e8d59c3c0f3406bd7f1ea 100644
--- a/app/scodoc/sco_cursus_dut.py
+++ b/app/scodoc/sco_cursus_dut.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Semestres: gestion parcours DUT (Arreté du 13 août 2005)
-"""
+"""Semestres: gestion parcours DUT (Arreté du 13 août 2005)"""
 
 from app import db
 from app.comp import res_sem
diff --git a/app/scodoc/sco_debouche.py b/app/scodoc/sco_debouche.py
index 259e8372cbddeb94fdad1705399e4b6e91dcec4d..eeeac6551cc090377030dd5887906eb41b792aab 100644
--- a/app/scodoc/sco_debouche.py
+++ b/app/scodoc/sco_debouche.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_dept.py b/app/scodoc/sco_dept.py
index 1d5b3f4c59360fd92cd26db332ee36b0675d5e39..1c84e47c1f8159023aebcaf1bc1cd20fcf988334 100644
--- a/app/scodoc/sco_dept.py
+++ b/app/scodoc/sco_dept.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Page accueil département (liste des semestres, etc)
-"""
+"""Page accueil département (liste des semestres, etc)"""
 
 from sqlalchemy import desc
 from flask import g, url_for, render_template
diff --git a/app/scodoc/sco_dump_db.py b/app/scodoc/sco_dump_db.py
index f1f8b1522cbce1c8ae4e60a5eab54f53905b5f82..bd1d8390f415a2cc12adc6f7a74e0873fcd6517d 100644
--- a/app/scodoc/sco_dump_db.py
+++ b/app/scodoc/sco_dump_db.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_edit_apc.py b/app/scodoc/sco_edit_apc.py
index 1915fa17e24c91ac1cbdee3a086ebee96a031d00..077505254ece0908822596f908806b6fe6986667 100644
--- a/app/scodoc/sco_edit_apc.py
+++ b/app/scodoc/sco_edit_apc.py
@@ -2,7 +2,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -22,8 +22,7 @@
 #
 ##############################################################################
 
-"""Édition formation APC (BUT)
-"""
+"""Édition formation APC (BUT)"""
 
 from flask.templating import render_template
 
diff --git a/app/scodoc/sco_edt_cal.py b/app/scodoc/sco_edt_cal.py
index fe1477fe57964d5a3fc08ec8f582a585794ebd87..ae3ae935e1c87a29ca2596375320a03e342bc6c4 100644
--- a/app/scodoc/sco_edt_cal.py
+++ b/app/scodoc/sco_edt_cal.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_etape_apogee.py b/app/scodoc/sco_etape_apogee.py
index ea586aaf96790df39be4e25cc463567a9d0ecd10..b77804677572a742411a17b2ce72fc0d15e42aa3 100644
--- a/app/scodoc/sco_etape_apogee.py
+++ b/app/scodoc/sco_etape_apogee.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_etape_apogee_view.py b/app/scodoc/sco_etape_apogee_view.py
index 32e0ad62b6852755b504d332bf58053b3cca9061..801dc30c7dc1f9accf3eb02631b60ff23054ec29 100644
--- a/app/scodoc/sco_etape_apogee_view.py
+++ b/app/scodoc/sco_etape_apogee_view.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_etape_bilan.py b/app/scodoc/sco_etape_bilan.py
index fb2c8bdf46945dbf09237cbd92e6a8447b0bd5a7..d0139602e2a9b37e4ab02198f2b8d62ebcfcb539 100644
--- a/app/scodoc/sco_etape_bilan.py
+++ b/app/scodoc/sco_etape_bilan.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_etud.py b/app/scodoc/sco_etud.py
index f74c3c42105ec8453ed9e2071fba54e4e35bd618..db3e2d2ab131009f0085565ea49d94f78ea3ce9c 100644
--- a/app/scodoc/sco_etud.py
+++ b/app/scodoc/sco_etud.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-""" Accès donnees etudiants
-"""
+"""Accès donnees etudiants"""
 
 # Ancien module "scolars"
 import os
diff --git a/app/scodoc/sco_evaluation_check_abs.py b/app/scodoc/sco_evaluation_check_abs.py
index 83532b136616add6d5f7cd06e4c0e444db64c1c9..53ac019d7048c3bd8471bd7c5e9c5d53eb254b39 100644
--- a/app/scodoc/sco_evaluation_check_abs.py
+++ b/app/scodoc/sco_evaluation_check_abs.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Vérification des absences à une évaluation
-"""
+"""Vérification des absences à une évaluation"""
 from flask import g, render_template, url_for
 from flask_sqlalchemy.query import Query
 
diff --git a/app/scodoc/sco_evaluation_db.py b/app/scodoc/sco_evaluation_db.py
index d19c0c756b2b3e96f79ab4eccdc871efd711be4d..2afab37a455123512d717ba4f513f95ee30337da 100644
--- a/app/scodoc/sco_evaluation_db.py
+++ b/app/scodoc/sco_evaluation_db.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Gestion évaluations (ScoDoc7, code en voie de modernisation)
-"""
+"""Gestion évaluations (ScoDoc7, code en voie de modernisation)"""
 
 import flask
 from flask import url_for, g
diff --git a/app/scodoc/sco_evaluation_edit.py b/app/scodoc/sco_evaluation_edit.py
index 7d9f6f0404437c284c1bef45f6f8c8d521ca4a23..a63b22a45e211ecb39fe44c36b7d31ff2e7e7579 100644
--- a/app/scodoc/sco_evaluation_edit.py
+++ b/app/scodoc/sco_evaluation_edit.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Formulaire ajout/édition d'une évaluation
-"""
+"""Formulaire ajout/édition d'une évaluation"""
 import datetime
 import time
 
diff --git a/app/scodoc/sco_evaluation_recap.py b/app/scodoc/sco_evaluation_recap.py
index f79ddcdab3a3dfe0f54ceaf2212c80dc33563586..87ea58b174833500723d683535330d7bc86ef546 100644
--- a/app/scodoc/sco_evaluation_recap.py
+++ b/app/scodoc/sco_evaluation_recap.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/scodoc/sco_evaluations.py b/app/scodoc/sco_evaluations.py
index 9c5fad6d783bd229c6e5bd92293941eccf8bbf71..ca85092c0d1ff38c904636091b793e2e5db711c1 100644
--- a/app/scodoc/sco_evaluations.py
+++ b/app/scodoc/sco_evaluations.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_excel.py b/app/scodoc/sco_excel.py
index a9a696d54176789d2e07a43e0125d686cefb496f..65ce5294962211aaa093050d70e9fa0bdd4b4cfa 100644
--- a/app/scodoc/sco_excel.py
+++ b/app/scodoc/sco_excel.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -54,6 +54,7 @@ from app.scodoc import notesdb, sco_preferences
 
 class COLORS(Enum):
     "Couleurs de base pour les styles excel"
+
     BLACK = "FF000000"
     WHITE = "FFFFFFFF"
     RED = "FFFF0000"
diff --git a/app/scodoc/sco_exceptions.py b/app/scodoc/sco_exceptions.py
index a705788388fe8c4c0e9a3c71c35fbd4aee4239c6..248252d387e016762aa7ab15e47f488b8e7355d2 100644
--- a/app/scodoc/sco_exceptions.py
+++ b/app/scodoc/sco_exceptions.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Exception handling
-"""
+"""Exception handling"""
 from flask_login import current_user
 import app
 
diff --git a/app/scodoc/sco_export_results.py b/app/scodoc/sco_export_results.py
index aafeabe72c5da8fd428f971505b9578f064c15af..652a688a0838b5b4ec9d0705cc72ba892ee41125 100644
--- a/app/scodoc/sco_export_results.py
+++ b/app/scodoc/sco_export_results.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Export d'une table avec les résultats de tous les étudiants
-"""
+"""Export d'une table avec les résultats de tous les étudiants"""
 from flask import url_for, g, render_template, request
 
 from app.comp import res_sem
diff --git a/app/scodoc/sco_find_etud.py b/app/scodoc/sco_find_etud.py
index 07c76cb3ad2a4b76901c12a04d9bdd3bc77d7084..c2ba25162c3678e86884332e5abf1755c2961483 100644
--- a/app/scodoc/sco_find_etud.py
+++ b/app/scodoc/sco_find_etud.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Recherche d'étudiants
-"""
+"""Recherche d'étudiants"""
 import flask
 from flask import url_for, g, render_template, request
 from flask_login import current_user
diff --git a/app/scodoc/sco_formsemestre.py b/app/scodoc/sco_formsemestre.py
index 8ca5a42fab6605e6080c8d0848daec3fe0a5c857..3a137e223f4d4b310865b60d185065927ad23d83 100644
--- a/app/scodoc/sco_formsemestre.py
+++ b/app/scodoc/sco_formsemestre.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Operations de base sur les formsemestres
-"""
+"""Operations de base sur les formsemestres"""
 import datetime
 import time
 from operator import itemgetter
diff --git a/app/scodoc/sco_formsemestre_custommenu.py b/app/scodoc/sco_formsemestre_custommenu.py
index f6542bf8f716997021ca5c42228021e2aace12a7..41cb16554f5fe8d3e66d5604339750372df10654 100644
--- a/app/scodoc/sco_formsemestre_custommenu.py
+++ b/app/scodoc/sco_formsemestre_custommenu.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Menu "custom" (défini par l'utilisateur) dans les semestres
-"""
+"""Menu "custom" (défini par l'utilisateur) dans les semestres"""
 import flask
 from flask import g, url_for, render_template, request
 from flask_login import current_user
diff --git a/app/scodoc/sco_formsemestre_edit.py b/app/scodoc/sco_formsemestre_edit.py
index d24d64acc149e4355e87ef356305b8a7b2243d3b..8e5f670c9b326c4c3c24ce30c84be3cf2c854a5e 100644
--- a/app/scodoc/sco_formsemestre_edit.py
+++ b/app/scodoc/sco_formsemestre_edit.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Form choix modules / responsables et creation formsemestre
-"""
+"""Form choix modules / responsables et creation formsemestre"""
 import flask
 from flask import flash, g, request, redirect, render_template, url_for
 from flask_login import current_user
diff --git a/app/scodoc/sco_formsemestre_exterieurs.py b/app/scodoc/sco_formsemestre_exterieurs.py
index 1e4f7a976b2633d74a6848fa8799e90cc5877e42..704c99189668753bcc974ed28f6ae407cb510620 100644
--- a/app/scodoc/sco_formsemestre_exterieurs.py
+++ b/app/scodoc/sco_formsemestre_exterieurs.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_formsemestre_inscriptions.py b/app/scodoc/sco_formsemestre_inscriptions.py
index 77b9eb7c9df2ff23244c6b2de5d4a8d3bae48d0d..b257fd529350dcc367d02800b24c2eaadafcabec 100644
--- a/app/scodoc/sco_formsemestre_inscriptions.py
+++ b/app/scodoc/sco_formsemestre_inscriptions.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Opérations d'inscriptions aux semestres et modules
-"""
+"""Opérations d'inscriptions aux semestres et modules"""
 import collections
 
 import flask
diff --git a/app/scodoc/sco_formsemestre_status.py b/app/scodoc/sco_formsemestre_status.py
index 16d2dfd4d8dce7e72a656a2a1303ff19e1d40698..d3140108a9863ea536c802362d42032313402f33 100755
--- a/app/scodoc/sco_formsemestre_status.py
+++ b/app/scodoc/sco_formsemestre_status.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_formsemestre_validation.py b/app/scodoc/sco_formsemestre_validation.py
index fe598e57028c66af64f110429027fbc4ffaa62bc..28fd4ba272262f4aa6d9319ee0c162f9a7e39faf 100644
--- a/app/scodoc/sco_formsemestre_validation.py
+++ b/app/scodoc/sco_formsemestre_validation.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_formulas.py b/app/scodoc/sco_formulas.py
index ad61573b159ee0e22bf524ae5bbe6785c5d0e8f2..c53f9f9ba12bde0994b3e532043f87b3b9b6274e 100644
--- a/app/scodoc/sco_formulas.py
+++ b/app/scodoc/sco_formulas.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Une classe "vecteur" pour les formules utilisateurs de calcul des moyennes
-"""
+"""Une classe "vecteur" pour les formules utilisateurs de calcul des moyennes"""
 
 import operator
 from functools import reduce
diff --git a/app/scodoc/sco_groups.py b/app/scodoc/sco_groups.py
index 821cc92e6532c034b8a0e469803c2400782569a6..5a81d1d47f070c50728e6c6ab0b0e31fd08af034 100644
--- a/app/scodoc/sco_groups.py
+++ b/app/scodoc/sco_groups.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Gestion des groupes, nouvelle mouture (juin/nov 2009)
-"""
+"""Gestion des groupes, nouvelle mouture (juin/nov 2009)"""
 import collections
 import time
 
diff --git a/app/scodoc/sco_groups_edit.py b/app/scodoc/sco_groups_edit.py
index 0db4d638f181f85aa55b38a3b61431e86889b9e5..bbc47ce7e8660b971916b6e60e359822ddd1f90c 100644
--- a/app/scodoc/sco_groups_edit.py
+++ b/app/scodoc/sco_groups_edit.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Formulaires gestion des groupes
-"""
+"""Formulaires gestion des groupes"""
 import flask
 from flask import flash, g, render_template, request, url_for
 
diff --git a/app/scodoc/sco_groups_exports.py b/app/scodoc/sco_groups_exports.py
index 4bce85126810c8276c171095460628d5e26c4990..72174de47d2893e0304bfbf90987837eb429a22d 100644
--- a/app/scodoc/sco_groups_exports.py
+++ b/app/scodoc/sco_groups_exports.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Exports groupes
-"""
+"""Exports groupes"""
 
 from app.scodoc import notesdb as ndb
 from app.scodoc import sco_groups_view
diff --git a/app/scodoc/sco_groups_view.py b/app/scodoc/sco_groups_view.py
index adc145b5809d608e5fefe648aa751750e9658c32..1dfac16d7505e69d1c603f68ca7b8d072c0dbf1c 100644
--- a/app/scodoc/sco_groups_view.py
+++ b/app/scodoc/sco_groups_view.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_import_etuds.py b/app/scodoc/sco_import_etuds.py
index ceedd9a9c359f6028d9746f34c6f9d7e01468440..957075b602ccfae763da4a36272c27f815373870 100644
--- a/app/scodoc/sco_import_etuds.py
+++ b/app/scodoc/sco_import_etuds.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-""" Importation des étudiants à partir de fichiers CSV
-"""
+"""Importation des étudiants à partir de fichiers CSV"""
 
 import io
 import os
diff --git a/app/scodoc/sco_import_users.py b/app/scodoc/sco_import_users.py
index 871bcd084e4b1af50567d4dd36b19ba0eb20ba07..13b173e1a0684e10c156768ab49bef68379e227b 100644
--- a/app/scodoc/sco_import_users.py
+++ b/app/scodoc/sco_import_users.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Import d'utilisateurs via fichier Excel
-"""
+"""Import d'utilisateurs via fichier Excel"""
 import random
 import time
 
diff --git a/app/scodoc/sco_inscr_passage.py b/app/scodoc/sco_inscr_passage.py
index 3497afb870d2dc83d2a39ff38ee8471702aa57a6..c1dc555da465b5716e6a80524c695ccb074f8bc5 100644
--- a/app/scodoc/sco_inscr_passage.py
+++ b/app/scodoc/sco_inscr_passage.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@
 ##############################################################################
 
 """Form. pour inscription rapide des etudiants d'un semestre dans un autre
-   Utilise les autorisations d'inscription délivrées en jury.
+Utilise les autorisations d'inscription délivrées en jury.
 """
 import datetime
 from operator import itemgetter
diff --git a/app/scodoc/sco_liste_notes.py b/app/scodoc/sco_liste_notes.py
index b955814225fb60fcb68a0b9367227bb72665c167..759cde29cdb0a1014e80d2fad0f97f9dd2313c9e 100644
--- a/app/scodoc/sco_liste_notes.py
+++ b/app/scodoc/sco_liste_notes.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Liste des notes d'une évaluation
-"""
+"""Liste des notes d'une évaluation"""
 from collections import defaultdict
 import numpy as np
 import pandas as pd
diff --git a/app/scodoc/sco_logos.py b/app/scodoc/sco_logos.py
index e10e6de77aa7670a4a02ac988a2ff9b01bb4c7e6..e8c81b29ac25936c0f7c97870ca4cc0a430cc107 100644
--- a/app/scodoc/sco_logos.py
+++ b/app/scodoc/sco_logos.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_lycee.py b/app/scodoc/sco_lycee.py
index b6b0ebe8596e606b91ec2827e104ba44dce7357a..62e221c9df9dd3ad64d4562d9afdba4264a79535 100644
--- a/app/scodoc/sco_lycee.py
+++ b/app/scodoc/sco_lycee.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,11 +26,11 @@
 ##############################################################################
 
 """Rapports sur lycées d'origine des étudiants d'un  semestre.
-  - statistiques decisions
-  - suivi cohortes
+- statistiques decisions
+- suivi cohortes
 
 
-  TODO: remplacer Google Map par https://leafletjs.com/
+TODO: remplacer Google Map par https://leafletjs.com/
 """
 from operator import itemgetter
 
diff --git a/app/scodoc/sco_modalites.py b/app/scodoc/sco_modalites.py
index 669b1c69dac299940fffaf777847c1f43c2093c4..29868427f189088a68e8c391db0701f33c759074 100644
--- a/app/scodoc/sco_modalites.py
+++ b/app/scodoc/sco_modalites.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_moduleimpl.py b/app/scodoc/sco_moduleimpl.py
index 0aeaf89823c8e04c615fc8e3b22fcb866a8372ad..cd60c7c33fff9db22892b80d330c7d79aa3fef05 100644
--- a/app/scodoc/sco_moduleimpl.py
+++ b/app/scodoc/sco_moduleimpl.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Fonctions sur les moduleimpl (legacy: use models.moduleimpls instead)
-"""
+"""Fonctions sur les moduleimpl (legacy: use models.moduleimpls instead)"""
 
 import psycopg2
 
diff --git a/app/scodoc/sco_moduleimpl_inscriptions.py b/app/scodoc/sco_moduleimpl_inscriptions.py
index 50540986132ca6ad152d5c10dd4250ee761f98cf..49baa660665b9aeb39a4ce33ec1f5c278a5ac9c3 100644
--- a/app/scodoc/sco_moduleimpl_inscriptions.py
+++ b/app/scodoc/sco_moduleimpl_inscriptions.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Opérations d'inscriptions aux modules (interface pour gérer options ou parcours)
-"""
+"""Opérations d'inscriptions aux modules (interface pour gérer options ou parcours)"""
 import collections
 from operator import attrgetter
 
diff --git a/app/scodoc/sco_moduleimpl_status.py b/app/scodoc/sco_moduleimpl_status.py
index a89fd4536287617ba2728ed7f478357b3465c63c..b474f568e98da0c2260188c2b19a731815dbd267 100644
--- a/app/scodoc/sco_moduleimpl_status.py
+++ b/app/scodoc/sco_moduleimpl_status.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_page_etud.py b/app/scodoc/sco_page_etud.py
index fd4683da07b76b80f229d89bbcb9ea1ca011a27a..386f900304d26810bbad21e92f0aab6a9fffdb63 100644
--- a/app/scodoc/sco_page_etud.py
+++ b/app/scodoc/sco_page_etud.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
 
 """ScoDoc fiche_etud
 
-   Fiche description d'un étudiant et de son parcours
+Fiche description d'un étudiant et de son parcours
 
 """
 from flask import url_for, g, render_template, request
diff --git a/app/scodoc/sco_pdf.py b/app/scodoc/sco_pdf.py
index 4dfad60dd7357e208fb8ebf052e84757fa6b9446..2567c39266621f9cbc7f243a2f644ff4b0fe32eb 100755
--- a/app/scodoc/sco_pdf.py
+++ b/app/scodoc/sco_pdf.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_photos.py b/app/scodoc/sco_photos.py
index 62cecb42216e2c544dac455283f145fd1c4c2a80..d341938b748f0ffc19ed8937609501e32bf17a65 100755
--- a/app/scodoc/sco_photos.py
+++ b/app/scodoc/sco_photos.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_placement.py b/app/scodoc/sco_placement.py
index 3a4ac1575af4839cba98ddea9329bc953e88e6fe..da3eb4f0e680aaf848153ca2343cd53e8eb8b4ea 100644
--- a/app/scodoc/sco_placement.py
+++ b/app/scodoc/sco_placement.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_portal_apogee.py b/app/scodoc/sco_portal_apogee.py
index d0ef82c4ade492845ff5437671e43de919e1ce6a..d7b569f9abb4ce84f77c0cd5ae262ac3520900e8 100644
--- a/app/scodoc/sco_portal_apogee.py
+++ b/app/scodoc/sco_portal_apogee.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Liaison avec le portail ENT (qui donne accès aux infos Apogée)
-"""
+"""Liaison avec le portail ENT (qui donne accès aux infos Apogée)"""
 import datetime
 import os
 import time
diff --git a/app/scodoc/sco_poursuite_dut.py b/app/scodoc/sco_poursuite_dut.py
index ef7140fe7aa94bc3459b198f4a07be77fe2a7e53..fba9c832aca56e3afae279f6c618b443c635a409 100644
--- a/app/scodoc/sco_poursuite_dut.py
+++ b/app/scodoc/sco_poursuite_dut.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_preferences.py b/app/scodoc/sco_preferences.py
index 84ae9f2de9b8f2c74b7c0f09ec4ee6a381eec401..b1150f5ea917eaef666bf60833411ac5be7ef9e8 100644
--- a/app/scodoc/sco_preferences.py
+++ b/app/scodoc/sco_preferences.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_prepajury.py b/app/scodoc/sco_prepajury.py
index abda900cbb640ab25a0678ca1d3314a870422a70..328aeebe771dfb3150930c08cd41e351faa96175 100644
--- a/app/scodoc/sco_prepajury.py
+++ b/app/scodoc/sco_prepajury.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_pv_dict.py b/app/scodoc/sco_pv_dict.py
index 07df64a55b8f2422517216e8497037b8824ef5db..aa87afedf1fec392a81aaf5bb2306cb49808deaa 100644
--- a/app/scodoc/sco_pv_dict.py
+++ b/app/scodoc/sco_pv_dict.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@
 ##############################################################################
 
 """Ancienne fonction de synthèse des information jury
-   (pour formations classiques)
+(pour formations classiques)
 """
 from operator import itemgetter
 
diff --git a/app/scodoc/sco_pv_forms.py b/app/scodoc/sco_pv_forms.py
index d5930bbde1c48c6d896eca18f4f3dac385c2abe1..d867e376098fa4a9a9bf5f3d34ffec31b06f82d3 100644
--- a/app/scodoc/sco_pv_forms.py
+++ b/app/scodoc/sco_pv_forms.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_pv_lettres_inviduelles.py b/app/scodoc/sco_pv_lettres_inviduelles.py
index 888b90459370e83cde95629416e56f3381713ffb..2396980e8964651d14c47a6c201e9732237aed78 100644
--- a/app/scodoc/sco_pv_lettres_inviduelles.py
+++ b/app/scodoc/sco_pv_lettres_inviduelles.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Edition des lettres individuelles de jury
-"""
+"""Edition des lettres individuelles de jury"""
 # code initialement dans sco_pvpdf.py
 
 import io
diff --git a/app/scodoc/sco_pv_pdf.py b/app/scodoc/sco_pv_pdf.py
index 8a4811a7777ccf2b964238bc8421eb5039316ae1..3f45a6d590fd8b15b20428e8815b270df617535d 100644
--- a/app/scodoc/sco_pv_pdf.py
+++ b/app/scodoc/sco_pv_pdf.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Génération du PV de jury en PDF (celui en format paysage avec l'ensemble des décisions)
-"""
+"""Génération du PV de jury en PDF (celui en format paysage avec l'ensemble des décisions)"""
 import io
 
 import reportlab
diff --git a/app/scodoc/sco_pv_templates.py b/app/scodoc/sco_pv_templates.py
index cc22ac4022b48ecdac2f70500631f4090b8666b4..3bd52d0ce991e0408380b2126524b0513c4c057d 100644
--- a/app/scodoc/sco_pv_templates.py
+++ b/app/scodoc/sco_pv_templates.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Edition des PV de jury
-"""
+"""Edition des PV de jury"""
 import io
 import re
 
diff --git a/app/scodoc/sco_recapcomplet.py b/app/scodoc/sco_recapcomplet.py
index 8e9f93403c7f6425ee8a79dcf5bd491076fc4fa9..66773a5a765dee3d98ecb8b027ffe59229c12b02 100644
--- a/app/scodoc/sco_recapcomplet.py
+++ b/app/scodoc/sco_recapcomplet.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Tableau récapitulatif des notes d'un semestre
-"""
+"""Tableau récapitulatif des notes d'un semestre"""
 import collections
 import datetime
 import time
diff --git a/app/scodoc/sco_report.py b/app/scodoc/sco_report.py
index f35cfa62bb6abb559d1b74fd2d7f11b294739dcd..ab38f6d3e357e885e33ffad43152b3067ff797df 100644
--- a/app/scodoc/sco_report.py
+++ b/app/scodoc/sco_report.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,8 +26,8 @@
 ##############################################################################
 
 """Rapports suivi:
-  - statistiques decisions
-  - suivi cohortes
+- statistiques decisions
+- suivi cohortes
 """
 import collections
 import os
diff --git a/app/scodoc/sco_report_but.py b/app/scodoc/sco_report_but.py
index b57dc2c416c792738e678a269cd9f5a98af3976e..8e2aa2b076062ff211e12886b969d2672b57a1c7 100644
--- a/app/scodoc/sco_report_but.py
+++ b/app/scodoc/sco_report_but.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@
 ##############################################################################
 
 """Rapport sur réussite en BUT pour enquête 2022
-  - statistiques decisions
+- statistiques decisions
 """
 from collections import defaultdict
 
diff --git a/app/scodoc/sco_saisie_excel.py b/app/scodoc/sco_saisie_excel.py
index cb972d55e64334418c9b90531791967b8e2d135b..bc5ce0690009a22b541d019ab8772d551e4cba46 100644
--- a/app/scodoc/sco_saisie_excel.py
+++ b/app/scodoc/sco_saisie_excel.py
@@ -2,7 +2,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_saisie_notes.py b/app/scodoc/sco_saisie_notes.py
index a119c8e5037e2c36e9b1e9bb5d560f3a1ca7c519..79d55c0b65c52f39f1b96f2c46ae6b67a1449af0 100644
--- a/app/scodoc/sco_saisie_notes.py
+++ b/app/scodoc/sco_saisie_notes.py
@@ -2,7 +2,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_semset.py b/app/scodoc/sco_semset.py
index 18d83d07a2a047c356deda95c32f8a11b9212c07..d9d70e515ea2f82b97729bbcbb344f4bd731b629 100644
--- a/app/scodoc/sco_semset.py
+++ b/app/scodoc/sco_semset.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_synchro_etuds.py b/app/scodoc/sco_synchro_etuds.py
index 4bb40ef8eaaf3ea47633231179c5534956f283a2..fef8b33ba00043ed652c4f553cdb70dc515d6dcf 100644
--- a/app/scodoc/sco_synchro_etuds.py
+++ b/app/scodoc/sco_synchro_etuds.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Synchronisation des listes d'étudiants avec liste portail (Apogée)
-"""
+"""Synchronisation des listes d'étudiants avec liste portail (Apogée)"""
 
 import time
 from operator import itemgetter
diff --git a/app/scodoc/sco_tag_module.py b/app/scodoc/sco_tag_module.py
index 0d5bdff620e9dc36a3b5ee47d050f10ff6222736..0413bb1f127634238a04e35eb6f1655f336d01a3 100644
--- a/app/scodoc/sco_tag_module.py
+++ b/app/scodoc/sco_tag_module.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -27,12 +27,12 @@
 
 """Gestion des tags sur les modules
 
-   Implementation expérimentale (Jul. 2016) pour grouper les modules sur
-   les avis de poursuites d'études.
+Implementation expérimentale (Jul. 2016) pour grouper les modules sur
+les avis de poursuites d'études.
 
-   TODO: réécrire avec SQLAlchemy.
+TODO: réécrire avec SQLAlchemy.
 
-   Pour l'UI, voir https://goodies.pixabay.com/jquery/tag-editor/demo.html
+Pour l'UI, voir https://goodies.pixabay.com/jquery/tag-editor/demo.html
 """
 import re
 
diff --git a/app/scodoc/sco_trombino.py b/app/scodoc/sco_trombino.py
index 245ba85b4728bcf5d0b54c640ca4a5f405f823d7..afb978d2f302ae26123405061e12d764ace0ec97 100644
--- a/app/scodoc/sco_trombino.py
+++ b/app/scodoc/sco_trombino.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Photos: trombinoscopes
-"""
+"""Photos: trombinoscopes"""
 
 import io
 from zipfile import ZipFile, BadZipfile
diff --git a/app/scodoc/sco_trombino_doc.py b/app/scodoc/sco_trombino_doc.py
index b6517ca992942ddab40b1184fbe066adbdae7d18..eb89c86bbb09da7295cbadc59a2cae1b45921ec6 100644
--- a/app/scodoc/sco_trombino_doc.py
+++ b/app/scodoc/sco_trombino_doc.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Génération d'un trombinoscope en doc
-"""
+"""Génération d'un trombinoscope en doc"""
 
 import docx
 from docx.shared import Mm
diff --git a/app/scodoc/sco_trombino_tours.py b/app/scodoc/sco_trombino_tours.py
index dc565cf098fa791fb2d5b6e98f6c7aefcaefdb44..928881dafadc0c08df143cb7f1f20f930c3e4f30 100644
--- a/app/scodoc/sco_trombino_tours.py
+++ b/app/scodoc/sco_trombino_tours.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,8 +26,8 @@
 ##############################################################################
 
 """Photos: trombinoscopes - Version IUT Tours
-   Code contribué par Jérôme Billoue, IUT de Tours, 2014
-   Modification Jérome Billoue,Vincent Grimaud, IUT de Tours, 2017
+Code contribué par Jérôme Billoue, IUT de Tours, 2014
+Modification Jérome Billoue,Vincent Grimaud, IUT de Tours, 2017
 """
 
 import io
diff --git a/app/scodoc/sco_ue_external.py b/app/scodoc/sco_ue_external.py
index 4e74e25dc733eb763f7036a292e817087a0531e4..676912c2840f9cf09a45af3ae63cc08504dd9cc1 100644
--- a/app/scodoc/sco_ue_external.py
+++ b/app/scodoc/sco_ue_external.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_undo_notes.py b/app/scodoc/sco_undo_notes.py
index 9fbf4a228a83ce119d4dd5e06fc08e02fc84c3b2..c40352c26a334baa443d0c09426c977ba76e08be 100644
--- a/app/scodoc/sco_undo_notes.py
+++ b/app/scodoc/sco_undo_notes.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_up_to_date.py b/app/scodoc/sco_up_to_date.py
index 4e93a293bff2252e155ec9b3aae94267af4cebc9..08e6269a2eb4be6da2feb11e02a7d1c95c135345 100644
--- a/app/scodoc/sco_up_to_date.py
+++ b/app/scodoc/sco_up_to_date.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,8 +26,8 @@
 ##############################################################################
 
 
-""" Verification version logiciel vs version "stable" sur serveur
-    N'effectue pas la mise à jour automatiquement, mais permet un affichage d'avertissement.
+"""Verification version logiciel vs version "stable" sur serveur
+N'effectue pas la mise à jour automatiquement, mais permet un affichage d'avertissement.
 """
 import json
 import requests
diff --git a/app/scodoc/sco_users.py b/app/scodoc/sco_users.py
index 98076a588801660693b3101c1ea8c198332fcc29..3d8462c879bd171ada0e430f35363f41ea5dcd04 100644
--- a/app/scodoc/sco_users.py
+++ b/app/scodoc/sco_users.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Fonctions sur les utilisateurs
-"""
+"""Fonctions sur les utilisateurs"""
 
 # Anciennement ZScoUsers.py, fonctions de gestion des données réécrites avec flask/SQLAlchemy
 import datetime
diff --git a/app/scodoc/sco_utils.py b/app/scodoc/sco_utils.py
index 71bc7e4ce41e8fb17e1e82c469e6097d99ebdbff..e1ee3286d176b54f54626393ca07c30f9879810d 100644
--- a/app/scodoc/sco_utils.py
+++ b/app/scodoc/sco_utils.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/scodoc/sco_vdi.py b/app/scodoc/sco_vdi.py
index 0ceca257ac180c894bac02ca0670db1cb3cb5c7a..e5b0749037b94df39bf3d7a7a139a7816df50f36 100644
--- a/app/scodoc/sco_vdi.py
+++ b/app/scodoc/sco_vdi.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,8 +25,7 @@
 #
 ##############################################################################
 
-"""Apogée: gestion du VDI avec le code étape (noms de fichiers maquettes et code semestres)
-"""
+"""Apogée: gestion du VDI avec le code étape (noms de fichiers maquettes et code semestres)"""
 from app.scodoc.sco_exceptions import ScoValueError
 
 
diff --git a/app/scodoc/sco_xml.py b/app/scodoc/sco_xml.py
index 4f705302c709adca93a1af43a35d3db089fd97e2..ef2f8d6135d984d987807390080a126a66b6710c 100644
--- a/app/scodoc/sco_xml.py
+++ b/app/scodoc/sco_xml.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,8 +26,7 @@
 ##############################################################################
 
 
-""" Exports XML
-"""
+"""Exports XML"""
 
 from xml.etree import ElementTree
 import xml.sax.saxutils
diff --git a/app/tables/__init__.py b/app/tables/__init__.py
index ad6ee4e5c83ea53aca8ab5e2da71007d7ab7f2e3..4646ebd02d87ca3bf4bd2224cb936a7a8c88dee5 100644
--- a/app/tables/__init__.py
+++ b/app/tables/__init__.py
@@ -1,8 +1,7 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Génération de tableaux
-"""
+"""Génération de tableaux"""
diff --git a/app/tables/bilan_ues.py b/app/tables/bilan_ues.py
index ee10aa7a2cad4b0b8d7eaefba937fba95ba5e658..1131fc930b3cc7ceaf9c0c18851358f6741133f2 100644
--- a/app/tables/bilan_ues.py
+++ b/app/tables/bilan_ues.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/tables/jury_recap.py b/app/tables/jury_recap.py
index dbd4a8a3e4c2138bbe752acd12788d2ce1785f17..62486d5d97c473d7313eab8487a1f8157b23eb1b 100644
--- a/app/tables/jury_recap.py
+++ b/app/tables/jury_recap.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Jury BUT et classiques: table recap annuelle et liens saisie
-"""
+"""Jury BUT et classiques: table recap annuelle et liens saisie"""
 
 import collections
 import time
diff --git a/app/tables/list_etuds.py b/app/tables/list_etuds.py
index 714cf29fb02dab6128b11f440bfa313b0b07c1ed..99aaf3cbcd933a5461161c6a3474378fabbe67f5 100644
--- a/app/tables/list_etuds.py
+++ b/app/tables/list_etuds.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Liste simple d'étudiants
-"""
+"""Liste simple d'étudiants"""
 
 from app.models import FormSemestre, FormSemestreInscription, Identite
 from app.scodoc.sco_exceptions import ScoValueError
diff --git a/app/tables/recap.py b/app/tables/recap.py
index 5845cc9b1f4dccfb16c4d205218f88b88de8aae4..adb2662ecf4f936c981463a7362c98ff04f84453 100644
--- a/app/tables/recap.py
+++ b/app/tables/recap.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Table récapitulatif des résultats d'un semestre
-"""
+"""Table récapitulatif des résultats d'un semestre"""
 from functools import partial
 
 from flask import g, url_for
diff --git a/app/tables/table_builder.py b/app/tables/table_builder.py
index 2ae8f89f16b975a58cbf977401863280a1cd3124..c2c7c8feb18ad291820511a6a06fd566b362c1fd 100644
--- a/app/tables/table_builder.py
+++ b/app/tables/table_builder.py
@@ -1,11 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-"""Classes pour aider à construire des tables de résultats
-"""
+"""Classes pour aider à construire des tables de résultats"""
 from collections import defaultdict
 
 from openpyxl import Workbook
diff --git a/app/tables/visu_assiduites.py b/app/tables/visu_assiduites.py
index f160d03562a535c92032c84e73abd196c07851f0..b712975466b73eba56f9e6e3336ca3315bd6c069 100644
--- a/app/tables/visu_assiduites.py
+++ b/app/tables/visu_assiduites.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/app/views/absences.py b/app/views/absences.py
index e539a07311e743a51f4322db4e02ffd9365f2036..3fc9879fd528c71b6e8c2af13bafd29e90b9f9c2 100644
--- a/app/views/absences.py
+++ b/app/views/absences.py
@@ -3,7 +3,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/views/assiduites.py b/app/views/assiduites.py
index 30867e03058e57bd20f69897e5290c9a00b9c036..27350d9ed1ad6da2814b06bb3b6f28cc27ac9aa3 100644
--- a/app/views/assiduites.py
+++ b/app/views/assiduites.py
@@ -3,7 +3,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/views/but_formation.py b/app/views/but_formation.py
index 0714208850fc3646d0b1d1c9bca583917bd1cade..e5d124cd7a7b52966f5aad137dcf5435578fb06c 100644
--- a/app/views/but_formation.py
+++ b/app/views/but_formation.py
@@ -2,7 +2,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/views/jury_validations.py b/app/views/jury_validations.py
index 1a636e1a02e7092e6c19d37930e9d6923371b095..17cf46af2127758d020c59538dc3008fa0f88379 100644
--- a/app/views/jury_validations.py
+++ b/app/views/jury_validations.py
@@ -2,7 +2,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/views/notes.py b/app/views/notes.py
index ddae58a1c4ef7f5e4232aba0b6cc7aef5c2b865f..9a223f5059d5291e09f6f55a2db23a50e6c27b99 100644
--- a/app/views/notes.py
+++ b/app/views/notes.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/views/notes_formsemestre.py b/app/views/notes_formsemestre.py
index 85e5e9ce95f1c3c7ae69ad6538a00ecae0cae56b..253832a98030ea889f742c26e86b7b0703b4d7e9 100644
--- a/app/views/notes_formsemestre.py
+++ b/app/views/notes_formsemestre.py
@@ -4,7 +4,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/views/pn_modules.py b/app/views/pn_modules.py
index 777808bea1bb9015d614ed1da5ed8c4b7c320a9d..a2b917295f96da1ca3d10ce4fda3d34991fc7fee 100644
--- a/app/views/pn_modules.py
+++ b/app/views/pn_modules.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/views/scodoc.py b/app/views/scodoc.py
index 8918351d604d9ed9c96096d1322adfdeaf2b0dbb..51fc8cfa97e7f1349462b4df3c1f44bc8e2ed5ff 100644
--- a/app/views/scodoc.py
+++ b/app/views/scodoc.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/views/scolar.py b/app/views/scolar.py
index 5d92e726aacfda5fa730388aa71bb0a88f06a91f..96a630524f3bd53fefaafe378239773b30b838d3 100644
--- a/app/views/scolar.py
+++ b/app/views/scolar.py
@@ -3,7 +3,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/app/views/users.py b/app/views/users.py
index f9ec3dfc64fc1343dfe85a4724502d95a0adb0c6..e6893889fd663d8123529ebda8ee08f911aaa7a1 100644
--- a/app/views/users.py
+++ b/app/views/users.py
@@ -5,7 +5,7 @@
 #
 # ScoDoc
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -137,6 +137,7 @@ class ChangePasswordForm(FlaskForm):
 
 class Mode(IntEnum):
     "Mode d'envoi de mail lors de création d'utilisateur"
+
     WELCOME_AND_CHANGE_PASSWORD = auto()  # mail indiquant de changer mdp
     WELCOME_ONLY = auto()  # mail d'accueil simple
     SILENT = auto()  # pas de mail
diff --git a/misc/csv2rules.py b/misc/csv2rules.py
index d60fd998db9e5993b44fb6ee6f8fc33af735486d..a02c8dba8247f5f83410856d5ea3645918c6bee0 100755
--- a/misc/csv2rules.py
+++ b/misc/csv2rules.py
@@ -6,7 +6,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/misc/geolocalize_lycees.py b/misc/geolocalize_lycees.py
index 5e4f9d6b3d923e45dff59d54aff80fe90be67401..da303e8b51e9d53913a51139894f372c3a019a9f 100644
--- a/misc/geolocalize_lycees.py
+++ b/misc/geolocalize_lycees.py
@@ -5,7 +5,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/tests/unit/test_apogee_csv.py b/tests/unit/test_apogee_csv.py
index 0bbed0b765f4a8b65a80ba305600f4367d4906d6..2d9732aa988244564837c5ff8ba41f27658e57a6 100644
--- a/tests/unit/test_apogee_csv.py
+++ b/tests/unit/test_apogee_csv.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/tests/unit/test_apogee_export.py b/tests/unit/test_apogee_export.py
index 90e66ce1c4c7993cd2e6c87309078f4a6f82e95f..f06e62020c6b7d6ead3da282620d73aaeed0b911 100644
--- a/tests/unit/test_apogee_export.py
+++ b/tests/unit/test_apogee_export.py
@@ -1,10 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-""" Test export Apogéee
+"""Test export Apogéee
 
 Ces tests sont généralement lents (construction de la base),
 et donc marqués par `@pytest.mark.slow`.
diff --git a/tests/unit/test_but_jury.py b/tests/unit/test_but_jury.py
index 3a4284b7a5e16895ce138d0d9abc534af47f32bc..b214e42dbe714ffa512cd1e7db3fcd814935f8a8 100644
--- a/tests/unit/test_but_jury.py
+++ b/tests/unit/test_but_jury.py
@@ -1,10 +1,10 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
-""" Test jury BUT avec parcours
+"""Test jury BUT avec parcours
 
 Ces tests sont généralement lents (construction de la base),
 et donc marqués par `@pytest.mark.slow`.
diff --git a/tests/unit/yaml_setup.py b/tests/unit/yaml_setup.py
index 8bebe86aab065aa79160b3683f798c1b5cbeeedd..9987d0ce0f76c68565542c831ba385d70250ae6d 100644
--- a/tests/unit/yaml_setup.py
+++ b/tests/unit/yaml_setup.py
@@ -1,6 +1,6 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
diff --git a/tests/unit/yaml_setup_but.py b/tests/unit/yaml_setup_but.py
index c4ab421d473c53e38f206d9f1fe5981e0189b432..dce6201730273d0cd195ac11f951c2235285c8b8 100644
--- a/tests/unit/yaml_setup_but.py
+++ b/tests/unit/yaml_setup_but.py
@@ -1,11 +1,11 @@
 ##############################################################################
 # ScoDoc
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 # See LICENSE
 ##############################################################################
 
 """Mise en place pour tests unitaires à partir de descriptions YAML:
-     fonctions spécifiques au BUT
+fonctions spécifiques au BUT
 """
 from pathlib import Path
 import re
diff --git a/tools/anonymize_db.py b/tools/anonymize_db.py
index fee27180777d502d4a142b543e3cad0ffb006a8d..e8032f0a6ecf9ad5fb1d4641f75d7e37bb50c883 100755
--- a/tools/anonymize_db.py
+++ b/tools/anonymize_db.py
@@ -6,7 +6,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/tools/edt/edt_ens.py b/tools/edt/edt_ens.py
index 63d0acf3a68b49785ba21d19d79f4eebe67c7054..59ac0915a49fbb747525c8e26d9f2acd36e1f32d 100644
--- a/tools/edt/edt_ens.py
+++ b/tools/edt/edt_ens.py
@@ -2,7 +2,7 @@
 #
 # Gestion scolarite IUT
 #
-# Copyright (c) 1999 - 2024 Emmanuel Viennet.  All rights reserved.
+# Copyright (c) 1999 - 2025 Emmanuel Viennet.  All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by