From d82687141e13efb8ebc1bc58f0660315d16f0321 Mon Sep 17 00:00:00 2001
From: jkerdreux-imt <jerome.kerdreux@imt-atlantique.fr>
Date: Tue, 26 Nov 2024 13:08:13 +0100
Subject: [PATCH] Enforce ruff and black to use the right formating

---
 apps/conky/pyproject.toml                       | 11 +++++++++++
 apps/dashboard/pyproject.toml                   | 11 +++++++++++
 apps/fuse/pyproject.toml                        | 11 +++++++++++
 apps/legacytools/pyproject.toml                 | 11 +++++++++++
 apps/rest/pyproject.toml                        | 11 +++++++++++
 apps/tools/pyproject.toml                       | 11 +++++++++++
 core/metadb/pyproject.toml                      | 11 +++++++++++
 devices/assistants/Alexa/pyproject.toml         | 11 +++++++++++
 devices/emulations/Fauxmo/pyproject.toml        | 11 +++++++++++
 devices/loggers/influxdb/pyproject.toml         | 11 +++++++++++
 devices/loggers/mqtt/pyproject.toml             | 11 +++++++++++
 devices/loggers/warp10/pyproject.toml           | 11 +++++++++++
 devices/notifications/gtk-notify/pyproject.toml | 11 +++++++++++
 devices/notifications/pushbullet/pyproject.toml | 11 +++++++++++
 devices/protocols/Aqara/pyproject.toml          | 11 +++++++++++
 devices/protocols/ESPHome/pyproject.toml        | 11 +++++++++++
 devices/protocols/Edisio/pyproject.toml         | 11 +++++++++++
 devices/protocols/HQ433/pyproject.toml          | 11 +++++++++++
 devices/protocols/HomeKit/pyproject.toml        | 11 +++++++++++
 devices/protocols/IPX-800/pyproject.toml        | 11 +++++++++++
 devices/protocols/KNX/pyproject.toml            | 11 +++++++++++
 devices/protocols/Meross/pyproject.toml         | 11 +++++++++++
 devices/protocols/Netatmo/pyproject.toml        | 11 +++++++++++
 devices/protocols/SensFloor/pyproject.toml      | 11 +++++++++++
 devices/protocols/Tuya/pyproject.toml           | 11 +++++++++++
 devices/protocols/Yeelight/pyproject.toml       | 11 +++++++++++
 devices/protocols/ZWave/pyproject.toml          | 11 +++++++++++
 devices/protocols/bugOne/pyproject.toml         | 11 +++++++++++
 devices/sensors/HTU21D/pyproject.toml           | 11 +++++++++++
 devices/sensors/lm_sensors/pyproject.toml       | 11 +++++++++++
 devices/tests/dummy/pyproject.toml              | 11 +++++++++++
 devices/tests/fakeinput/pyproject.toml          | 11 +++++++++++
 devices/weather/OpenWeatherMap/pyproject.toml   | 11 +++++++++++
 libs/lib/pyproject.toml                         |  9 +++++++--
 libs/monitor/pyproject.toml                     | 11 +++++++++++
 libs/schemas/pyproject.toml                     | 11 +++++++++++
 36 files changed, 392 insertions(+), 2 deletions(-)

diff --git a/apps/conky/pyproject.toml b/apps/conky/pyproject.toml
index 05207ce6..72fc4b9b 100644
--- a/apps/conky/pyproject.toml
+++ b/apps/conky/pyproject.toml
@@ -13,3 +13,14 @@ dependencies = ["xaal.lib", "xaal.monitor"]
 
 [tool.setuptools.packages.find]
 include = ["xaal.conky"]
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/apps/dashboard/pyproject.toml b/apps/dashboard/pyproject.toml
index 12a1f9cd..13f6d60e 100644
--- a/apps/dashboard/pyproject.toml
+++ b/apps/dashboard/pyproject.toml
@@ -29,3 +29,14 @@ include = ["xaal.dashboard"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/apps/dashboard/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/apps/dashboard"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/apps/fuse/pyproject.toml b/apps/fuse/pyproject.toml
index 0a5ebc23..7154300c 100644
--- a/apps/fuse/pyproject.toml
+++ b/apps/fuse/pyproject.toml
@@ -21,3 +21,14 @@ include = ["xaal.fuse"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/apps/fuse/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/apps/fuse"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/apps/legacytools/pyproject.toml b/apps/legacytools/pyproject.toml
index 62703cc2..b9c4bfad 100644
--- a/apps/legacytools/pyproject.toml
+++ b/apps/legacytools/pyproject.toml
@@ -31,3 +31,14 @@ include = ["xaal.legacytools"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/apps/legacytools/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/apps/legacytools"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/apps/rest/pyproject.toml b/apps/rest/pyproject.toml
index 1a3f62a9..12efd4a3 100644
--- a/apps/rest/pyproject.toml
+++ b/apps/rest/pyproject.toml
@@ -25,3 +25,14 @@ include = ["xaal.rest"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/apps/rest/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/apps/rest"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/apps/tools/pyproject.toml b/apps/tools/pyproject.toml
index bbad4f78..f2210555 100644
--- a/apps/tools/pyproject.toml
+++ b/apps/tools/pyproject.toml
@@ -33,3 +33,14 @@ include = ["xaal.tools"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/apps/tools/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/apps/tools"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/core/metadb/pyproject.toml b/core/metadb/pyproject.toml
index 8bdc8df9..11d1e071 100644
--- a/core/metadb/pyproject.toml
+++ b/core/metadb/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.metadb"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/core/metadb/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/core/metadb"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/assistants/Alexa/pyproject.toml b/devices/assistants/Alexa/pyproject.toml
index 3c3adf0a..87509c13 100644
--- a/devices/assistants/Alexa/pyproject.toml
+++ b/devices/assistants/Alexa/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.alexa"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/assistants/Alexa/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/assistants/Alexa"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/emulations/Fauxmo/pyproject.toml b/devices/emulations/Fauxmo/pyproject.toml
index 9ceffa6d..860c965b 100644
--- a/devices/emulations/Fauxmo/pyproject.toml
+++ b/devices/emulations/Fauxmo/pyproject.toml
@@ -19,3 +19,14 @@ include = ["xaal.fauxmo"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/emulations/Fauxmo/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/emulations/Fauxmo"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/loggers/influxdb/pyproject.toml b/devices/loggers/influxdb/pyproject.toml
index 382ea722..d32153a5 100644
--- a/devices/loggers/influxdb/pyproject.toml
+++ b/devices/loggers/influxdb/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.influxdb"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/loggers/influxdb/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/loggers/influxdb"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/loggers/mqtt/pyproject.toml b/devices/loggers/mqtt/pyproject.toml
index 0dd15cef..ef7cdb95 100644
--- a/devices/loggers/mqtt/pyproject.toml
+++ b/devices/loggers/mqtt/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.mqttlogger"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/loggers/mqtt/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/loggers/mqtt"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/loggers/warp10/pyproject.toml b/devices/loggers/warp10/pyproject.toml
index 4544dfb4..ae1aaee3 100644
--- a/devices/loggers/warp10/pyproject.toml
+++ b/devices/loggers/warp10/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.warp10"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/loggers/warp10/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/loggers/warp10"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/notifications/gtk-notify/pyproject.toml b/devices/notifications/gtk-notify/pyproject.toml
index 550c0edc..1bf8dbf1 100644
--- a/devices/notifications/gtk-notify/pyproject.toml
+++ b/devices/notifications/gtk-notify/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.gtknotify"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/notifications/gtk-notify/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/notifications/gtk-notify"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/notifications/pushbullet/pyproject.toml b/devices/notifications/pushbullet/pyproject.toml
index b4830396..c66c4603 100644
--- a/devices/notifications/pushbullet/pyproject.toml
+++ b/devices/notifications/pushbullet/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.pushbullet"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/notifications/pushbullet/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/notifications/pushbullet"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/Aqara/pyproject.toml b/devices/protocols/Aqara/pyproject.toml
index 80fbeea6..3d6c7aed 100644
--- a/devices/protocols/Aqara/pyproject.toml
+++ b/devices/protocols/Aqara/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.aqara"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/Aqara/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/Aqara"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/ESPHome/pyproject.toml b/devices/protocols/ESPHome/pyproject.toml
index cc6399f1..345d9da2 100644
--- a/devices/protocols/ESPHome/pyproject.toml
+++ b/devices/protocols/ESPHome/pyproject.toml
@@ -19,3 +19,14 @@ include = ["xaal.esphome"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/ESPHome/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/ESPHome"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/Edisio/pyproject.toml b/devices/protocols/Edisio/pyproject.toml
index 36a00811..b70a9dc9 100644
--- a/devices/protocols/Edisio/pyproject.toml
+++ b/devices/protocols/Edisio/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.edisio"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/Edisio/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/Edisio"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/HQ433/pyproject.toml b/devices/protocols/HQ433/pyproject.toml
index 86fe9fc4..98dc34e1 100644
--- a/devices/protocols/HQ433/pyproject.toml
+++ b/devices/protocols/HQ433/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.hq433"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/HQ433/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/HQ433"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/HomeKit/pyproject.toml b/devices/protocols/HomeKit/pyproject.toml
index 17ed221f..52e826fa 100644
--- a/devices/protocols/HomeKit/pyproject.toml
+++ b/devices/protocols/HomeKit/pyproject.toml
@@ -19,3 +19,14 @@ include = ["xaal.homekit"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/HomeKit/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/HomeKit"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/IPX-800/pyproject.toml b/devices/protocols/IPX-800/pyproject.toml
index eddfc7d5..9aa5d867 100644
--- a/devices/protocols/IPX-800/pyproject.toml
+++ b/devices/protocols/IPX-800/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.ipx800"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/IPX-800/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/IPX-800"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/KNX/pyproject.toml b/devices/protocols/KNX/pyproject.toml
index 228750b7..53b72d51 100644
--- a/devices/protocols/KNX/pyproject.toml
+++ b/devices/protocols/KNX/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.knx"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/KNX/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/KNX"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/Meross/pyproject.toml b/devices/protocols/Meross/pyproject.toml
index 764aceff..148aaf23 100644
--- a/devices/protocols/Meross/pyproject.toml
+++ b/devices/protocols/Meross/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.meross"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/Meross/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/Meross"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/Netatmo/pyproject.toml b/devices/protocols/Netatmo/pyproject.toml
index 417a9ff3..b2b4d5bf 100644
--- a/devices/protocols/Netatmo/pyproject.toml
+++ b/devices/protocols/Netatmo/pyproject.toml
@@ -17,3 +17,14 @@ include = ["xaal.netatmo"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/Netatmo/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/Netatmo"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/SensFloor/pyproject.toml b/devices/protocols/SensFloor/pyproject.toml
index 24b2617c..039a7fd2 100644
--- a/devices/protocols/SensFloor/pyproject.toml
+++ b/devices/protocols/SensFloor/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.sensfloor"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/SensFloor/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/SensFloor"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/Tuya/pyproject.toml b/devices/protocols/Tuya/pyproject.toml
index 025af4f6..3d450d68 100644
--- a/devices/protocols/Tuya/pyproject.toml
+++ b/devices/protocols/Tuya/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.tuya"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/Tuya/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/Tuya"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/Yeelight/pyproject.toml b/devices/protocols/Yeelight/pyproject.toml
index ca681809..e45c0bbc 100644
--- a/devices/protocols/Yeelight/pyproject.toml
+++ b/devices/protocols/Yeelight/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.yeelight"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/Yeelight/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/Yeelight"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/ZWave/pyproject.toml b/devices/protocols/ZWave/pyproject.toml
index 60522c3e..4dd1c99f 100644
--- a/devices/protocols/ZWave/pyproject.toml
+++ b/devices/protocols/ZWave/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.zwave"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/ZWave/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/ZWave"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/protocols/bugOne/pyproject.toml b/devices/protocols/bugOne/pyproject.toml
index 4f1b17eb..5883bcf3 100644
--- a/devices/protocols/bugOne/pyproject.toml
+++ b/devices/protocols/bugOne/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.bugone"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/protocols/bugOne/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/protocols/bugOne"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/sensors/HTU21D/pyproject.toml b/devices/sensors/HTU21D/pyproject.toml
index 077a1adc..a0f7daba 100644
--- a/devices/sensors/HTU21D/pyproject.toml
+++ b/devices/sensors/HTU21D/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.htu21d"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/sensors/HTU21D/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/sensors/HTU21D"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/sensors/lm_sensors/pyproject.toml b/devices/sensors/lm_sensors/pyproject.toml
index 7833328a..d311a322 100644
--- a/devices/sensors/lm_sensors/pyproject.toml
+++ b/devices/sensors/lm_sensors/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.lmsensors"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/sensors/lm_sensors/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/sensors/lm_sensors"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/tests/dummy/pyproject.toml b/devices/tests/dummy/pyproject.toml
index 43d57f52..ca05cb79 100644
--- a/devices/tests/dummy/pyproject.toml
+++ b/devices/tests/dummy/pyproject.toml
@@ -18,3 +18,14 @@ include = ["xaal.dummy"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/tests/dummy/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/tests/dummy"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/tests/fakeinput/pyproject.toml b/devices/tests/fakeinput/pyproject.toml
index dfec8893..ac3b7ed1 100644
--- a/devices/tests/fakeinput/pyproject.toml
+++ b/devices/tests/fakeinput/pyproject.toml
@@ -25,3 +25,14 @@ include = ["xaal.fakeinput"]
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/devices/tests/fakeinput/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/devices/tests/fakeinput"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/devices/weather/OpenWeatherMap/pyproject.toml b/devices/weather/OpenWeatherMap/pyproject.toml
index 20e459ae..73f7f5a7 100644
--- a/devices/weather/OpenWeatherMap/pyproject.toml
+++ b/devices/weather/OpenWeatherMap/pyproject.toml
@@ -17,3 +17,14 @@ dependencies = ["xaal.lib", "xaal.schemas", "pyowm==2.10.0"]
 
 [tool.setuptools.packages.find]
 include = ["xaal.owm"]
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/libs/lib/pyproject.toml b/libs/lib/pyproject.toml
index 9cdbb0a6..88cad2e5 100644
--- a/libs/lib/pyproject.toml
+++ b/libs/lib/pyproject.toml
@@ -30,8 +30,13 @@ Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/libs/lib/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/libs/lib"
 
+
 [tool.ruff]
-line-length = 120
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
 
 [tool.black]
-line-length = 120
+line-length = 122
+skip-string-normalization = true
diff --git a/libs/monitor/pyproject.toml b/libs/monitor/pyproject.toml
index b6573584..8532a5ea 100644
--- a/libs/monitor/pyproject.toml
+++ b/libs/monitor/pyproject.toml
@@ -19,3 +19,14 @@ dependencies = ['xaal.lib']
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/libs/monitor/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/libs/monitor"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
diff --git a/libs/schemas/pyproject.toml b/libs/schemas/pyproject.toml
index 70c938ce..a81c758f 100644
--- a/libs/schemas/pyproject.toml
+++ b/libs/schemas/pyproject.toml
@@ -20,3 +20,14 @@ dependencies = ['xaal.lib']
 Homepage = "https://recherche.imt-atlantique.fr/xaal/"
 Documentation = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/entry/code/Python/branches/0.7/libs/schemas/README.rst"
 Source = "https://redmine.imt-atlantique.fr/projects/xaal/repository/xaal/show/code/Python/branches/0.7/libs/schemas"
+
+[tool.ruff]
+line-length = 122
+
+[tool.ruff.format]
+quote-style = "preserve"
+
+[tool.black]
+line-length = 122
+skip-string-normalization = true
+
-- 
GitLab