diff --git a/odoo_scripts/__init__.py b/odoo_scripts/__init__.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL19faW5pdF9fLnB5..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL19faW5pdF9fLnB5 100644
--- a/odoo_scripts/__init__.py
+++ b/odoo_scripts/__init__.py
@@ -1,5 +1,6 @@
 """Odoo Scripts"""
 
 # expose some useful functions
+from ._parsing import logging_from_verbose  # noqa: F401
 from ._version import __version__  # noqa: F401
 from .odoo import odoo_connect, odoo_connect_parser, odoo_login  # noqa: F401
@@ -4,5 +5,4 @@
 from ._version import __version__  # noqa: F401
 from .odoo import odoo_connect, odoo_connect_parser, odoo_login  # noqa: F401
-from .parsing import logging_from_verbose  # noqa: F401
 
 __author__ = "XCG Consulting"
diff --git a/odoo_scripts/docker_client.py b/odoo_scripts/_docker_client.py
similarity index 98%
rename from odoo_scripts/docker_client.py
rename to odoo_scripts/_docker_client.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9jbGllbnQucHk=..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL19kb2NrZXJfY2xpZW50LnB5 100644
--- a/odoo_scripts/docker_client.py
+++ b/odoo_scripts/_docker_client.py
@@ -53,7 +53,7 @@
             _logger.debug("Volume %s already exists", volume_name)
             return volumes[0], False
         _logger.debug("Creating volume %s", volume_name)
-        labels = dict(odoo_scripts="")
+        labels = {"odoo_scripts": ""}
         if extra_labels:
             labels.update(extra_labels)
         return docker.volume.create(volume_name, labels=labels), True
@@ -73,7 +73,7 @@
         :param user: User to execute command as.
         :param interactive: True if the container needs to be interactive
         """
-        with capture_docker_exit_code() as exit_code:
+        with CaptureDockerExitCode() as exit_code:
             container.execute(command, user=user, interactive=interactive, tty=True)
         return int(exit_code)
 
@@ -213,7 +213,7 @@
     image = docker.image.list(config.local_image_name)
     if not image:
         raise Exception(
-            "Image %s is not built, needed to be inspected", config.local_image_name
+            f"Image {config.local_image_name} is not built, needed to be inspected"
         )
     if isinstance(image[0].config.env, list):
         for env in image[0].config.env:
@@ -413,11 +413,11 @@
             self._log_process = process
 
     def _create_param(self) -> Dict:
-        return dict(
-            name=self.name,
-            networks="host",
-            image=self.base_image,
-        )
+        return {
+            "name": self.name,
+            "networks": "host",
+            "image": self.base_image,
+        }
 
     def _start(self) -> None:
         self._container = docker.container.create(**self._create_param())
@@ -554,7 +554,7 @@
         return bool(self.value)
 
 
-class capture_docker_exit_code:
+class CaptureDockerExitCode:
     """Context manager to get error code when using docker::run"""
 
     def __init__(self, print_exc: bool = True):
diff --git a/odoo_scripts/importing.py b/odoo_scripts/_importing.py
similarity index 94%
rename from odoo_scripts/importing.py
rename to odoo_scripts/_importing.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2ltcG9ydGluZy5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL19pbXBvcnRpbmcucHk= 100644
--- a/odoo_scripts/importing.py
+++ b/odoo_scripts/_importing.py
@@ -81,5 +81,5 @@
         file_list.extend(files)
     if directories:
         for directory in directories:
-            for root, subdirectories, files in os.walk(directory, followlinks=True):
+            for root, subdirectories, dir_files in os.walk(directory, followlinks=True):
                 subdirectories.sort()
@@ -85,5 +85,5 @@
                 subdirectories.sort()
-                file_list.extend(os.path.join(root, f) for f in sorted(files))
+                file_list.extend(os.path.join(root, f) for f in sorted(dir_files))
 
     for filename in file_list:
         _logger.debug("%s to import", filename)
diff --git a/odoo_scripts/logpipe.py b/odoo_scripts/_logpipe.py
similarity index 74%
rename from odoo_scripts/logpipe.py
rename to odoo_scripts/_logpipe.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2xvZ3BpcGUucHk=..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL19sb2dwaXBlLnB5 100644
--- a/odoo_scripts/logpipe.py
+++ b/odoo_scripts/_logpipe.py
@@ -13,9 +13,9 @@
         self.daemon = False
         self.logger = logger
         self.level = level
-        self.fdRead, self.fdWrite = os.pipe()
-        self.pipeReader = os.fdopen(self.fdRead)
+        self.fd_read, self.fd_write = os.pipe()
+        self.pipe_reader = os.fdopen(self.fd_read)
         self.start()
 
     def fileno(self):
         """Return the write file descriptor of the pipe"""
@@ -18,8 +18,8 @@
         self.start()
 
     def fileno(self):
         """Return the write file descriptor of the pipe"""
-        return self.fdWrite
+        return self.fd_write
 
     def run(self):
         """Run the thread, logging everything."""
@@ -23,6 +23,6 @@
 
     def run(self):
         """Run the thread, logging everything."""
-        for line in iter(self.pipeReader.readline, ""):
+        for line in iter(self.pipe_reader.readline, ""):
             self.logger.log(self.level, line.strip("\n"))
 
@@ -27,6 +27,6 @@
             self.logger.log(self.level, line.strip("\n"))
 
-        self.pipeReader.close()
+        self.pipe_reader.close()
 
     def close(self):
         """Close the write end of the pipe."""
@@ -30,4 +30,4 @@
 
     def close(self):
         """Close the write end of the pipe."""
-        os.close(self.fdWrite)
+        os.close(self.fd_write)
diff --git a/odoo_scripts/parsing.py b/odoo_scripts/_parsing.py
similarity index 97%
rename from odoo_scripts/parsing.py
rename to odoo_scripts/_parsing.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL3BhcnNpbmcucHk=..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL19wYXJzaW5nLnB5 100644
--- a/odoo_scripts/parsing.py
+++ b/odoo_scripts/_parsing.py
@@ -37,5 +37,5 @@
         level = logging.WARNING
     elif verbosity == -2:
         level = logging.ERROR
-    elif verbosity == -3:
+    elif verbosity <= -3:
         level = logging.CRITICAL
@@ -41,5 +41,5 @@
         level = logging.CRITICAL
-    elif verbosity > 0:
+    else:
         level = logging.DEBUG
     coloredlogs.install(level, fmt="%(asctime)s %(levelname)8s %(name)s %(message)s")
 
diff --git a/odoo_scripts/postgres.py b/odoo_scripts/_postgres.py
similarity index 100%
rename from odoo_scripts/postgres.py
rename to odoo_scripts/_postgres.py
diff --git a/odoo_scripts/toml.py b/odoo_scripts/_toml.py
similarity index 71%
rename from odoo_scripts/toml.py
rename to odoo_scripts/_toml.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL3RvbWwucHk=..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL190b21sLnB5 100644
--- a/odoo_scripts/toml.py
+++ b/odoo_scripts/_toml.py
@@ -1,6 +1,5 @@
 try:
     # Python 3.11+
     from tomllib import load as toml_load
-    from tomllib import loads as toml_loads
 
     load = toml_load
@@ -5,5 +4,4 @@
 
     load = toml_load
-    loads = toml_loads
 except ImportError:
     from tomli import load as tomli_load  # type: ignore[import]
@@ -8,5 +6,4 @@
 except ImportError:
     from tomli import load as tomli_load  # type: ignore[import]
-    from tomli import loads as tomli_loads  # type: ignore[import]
 
     load = tomli_load
@@ -11,3 +8,2 @@
 
     load = tomli_load
-    loads = tomli_loads
diff --git a/odoo_scripts/which.py b/odoo_scripts/_which.py
similarity index 100%
rename from odoo_scripts/which.py
rename to odoo_scripts/_which.py
diff --git a/odoo_scripts/conf2reST.py b/odoo_scripts/conf2reST.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2NvbmYycmVTVC5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2NvbmYycmVTVC5weQ== 100755
--- a/odoo_scripts/conf2reST.py
+++ b/odoo_scripts/conf2reST.py
@@ -10,4 +10,5 @@
 
 import yaml
 
+from ._parsing import apply, basic_parser
 from .config import Configuration
@@ -13,5 +14,4 @@
 from .config import Configuration
-from .parsing import apply, basic_parser
 
 _logger = logging.getLogger(__name__)
 
@@ -45,6 +45,7 @@
         default="..",
     )
     parser.add_argument("-o", "--output", help="Output file name")
+    parser.add_argument("--encoding", help="Output file encoding", default="utf-8")
 
     nmspc = parser.parse_args(argv)
     apply(nmspc)
@@ -48,7 +49,7 @@
 
     nmspc = parser.parse_args(argv)
     apply(nmspc)
-    conf2rst(nmspc.directory, nmspc.output)
+    conf2rst(nmspc.directory, nmspc.output, nmspc.encoding)
     return 0
 
 
@@ -52,7 +53,7 @@
     return 0
 
 
-def conf2rst(directory: str, output=None):
+def conf2rst(directory: str, output=None, encoding: Optional[str] = None):
     """
     :param directory: destination directory
     :param output: file to write to, else prints in stdout
@@ -143,7 +144,7 @@
 
     # output the rst
     if output:
-        with open(output, "w") as output_file:
+        with open(output, "w", encoding=encoding) as output_file:
             write_rst(output_file, rst)
     else:
         write_rst(sys.stdout, rst)
diff --git a/odoo_scripts/config.py b/odoo_scripts/config.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2NvbmZpZy5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2NvbmZpZy5weQ== 100644
--- a/odoo_scripts/config.py
+++ b/odoo_scripts/config.py
@@ -14,7 +14,7 @@
 from packaging.version import Version, parse
 
 from . import __version__ as version
-from .toml import loads as toml_loads
+from ._toml import load as toml_load
 
 SECTION = "odoo_scripts"
 OTHER_SOURCES_KEY = "other_sources"
@@ -84,9 +84,8 @@
             "config.toml",
         )
         if os.path.exists(global_setup_path):
-            with open(global_setup_path, "r") as f:
-                global_setup_str = f.read()
-            self._global_setup = dict(toml_loads(global_setup_str))
+            with open(global_setup_path, "rb") as f:
+                self._global_setup = dict(toml_load(f))
 
         # read expanded configurations information
         expanded_info: defaultdict[Any, Dict] = defaultdict(dict)
@@ -154,7 +153,6 @@
         self.modules: List[str]
         self.dependencies: List[str]
         self.other_sources: List[str]
-        self.excluded_in_sources: List[str]
         for key in (
             "modules",
             "dependencies",
@@ -172,7 +170,10 @@
                 set_values.update(
                     set_from_glob_values(path, values, key != OTHER_SOURCES_KEY)
                 )
-            setattr(self, key, list(set_values))
+            if key == EXCLUDED_IN_SOURCES_KEY:
+                self.excluded_paths = {Path(excluded) for excluded in set_values}
+            else:
+                setattr(self, key, list(set_values))
 
         def read_expanded(
             key: str,
@@ -396,6 +397,5 @@
     def sources_modules(self) -> List[str]:
         """modules without those matching excluded_in_sources"""
         if self.__sources_modules is None:
-            excluded_paths = [Path(excluded) for excluded in self.excluded_in_sources]
             self.__sources_modules = list(
                 filter(
@@ -400,11 +400,8 @@
             self.__sources_modules = list(
                 filter(
-                    lambda module: not any(
-                        excluded_path in Path(module).parents
-                        for excluded_path in excluded_paths
-                    ),
+                    lambda module: self.included(Path(module)),
                     self.modules,
                 )
             )
         return self.__sources_modules
 
@@ -406,8 +403,17 @@
                     self.modules,
                 )
             )
         return self.__sources_modules
 
+    def included(self, module_path: Path) -> bool:
+        """
+        :return: True if the module Path is to be included
+        """
+        return all(
+            excluded_path not in module_path.parents
+            for excluded_path in self.excluded_paths
+        )
+
 
 class Singleton(type):
     """Singleton metaclass. From
diff --git a/odoo_scripts/do_tests.py b/odoo_scripts/do_tests.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvX3Rlc3RzLnB5..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvX3Rlc3RzLnB5 100755
--- a/odoo_scripts/do_tests.py
+++ b/odoo_scripts/do_tests.py
@@ -12,9 +12,10 @@
 
 from odoo_scripts.docker_postgresql import docker_run_postgresql
 
+from ._parsing import apply, basic_parser
 from .config import Config
 from .docker_build import add_build_options, get_build_options
 from .docker_dev_start import main as docker_dev_start_main
 from .docker_flake8 import apply_flake8, parser_add_flake8_group
 from .docker_isort import apply_isort, parser_add_isort_group
 from .docker_postgresql import POSTGRES_PASSWORD
@@ -15,10 +16,9 @@
 from .config import Config
 from .docker_build import add_build_options, get_build_options
 from .docker_dev_start import main as docker_dev_start_main
 from .docker_flake8 import apply_flake8, parser_add_flake8_group
 from .docker_isort import apply_isort, parser_add_isort_group
 from .docker_postgresql import POSTGRES_PASSWORD
-from .parsing import apply, basic_parser
 
 _logger = logging.getLogger(__name__)
 
diff --git a/odoo_scripts/docker_black.py b/odoo_scripts/docker_black.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9ibGFjay5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9ibGFjay5weQ== 100644
--- a/odoo_scripts/docker_black.py
+++ b/odoo_scripts/docker_black.py
@@ -7,5 +7,7 @@
 from argparse import ArgumentParser
 from typing import List, Optional
 
+from ._docker_client import DockerClient, get_volumes
+from ._parsing import apply, basic_parser
 from .config import ODOO_11, ODOO_12, ODOO_13, ODOO_14, ODOO_15, ODOO_16, Config
 from .docker_build import add_build_options, build_local_image, get_build_options
@@ -10,7 +12,5 @@
 from .config import ODOO_11, ODOO_12, ODOO_13, ODOO_14, ODOO_15, ODOO_16, Config
 from .docker_build import add_build_options, build_local_image, get_build_options
-from .docker_client import DockerClient, get_volumes
-from .parsing import apply, basic_parser
 
 __version__ = "2.3.0"
 __date__ = "2022-03-03"
diff --git a/odoo_scripts/docker_build.py b/odoo_scripts/docker_build.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9idWlsZC5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9idWlsZC5weQ== 100644
--- a/odoo_scripts/docker_build.py
+++ b/odoo_scripts/docker_build.py
@@ -14,7 +14,9 @@
 from python_on_whales import docker
 
 from ._cvs import get_repo
+from ._docker_client import CaptureDockerExitCode
+from ._parsing import apply, basic_parser
 from .config import ODOO_7, ODOO_8, ODOO_10, ODOO_11, ODOO_13, ODOO_14, Config
 from .docker_build_clean import clean
 from .docker_build_copy import Configuration as CopyConfiguration
 from .docker_build_copy import add_build_copy_options, copy, get_build_copy_options
@@ -17,10 +19,8 @@
 from .config import ODOO_7, ODOO_8, ODOO_10, ODOO_11, ODOO_13, ODOO_14, Config
 from .docker_build_clean import clean
 from .docker_build_copy import Configuration as CopyConfiguration
 from .docker_build_copy import add_build_copy_options, copy, get_build_copy_options
-from .docker_client import capture_docker_exit_code
-from .parsing import apply, basic_parser
 from .storage import get_orus_api_token
 
 _logger = logging.getLogger(__name__)
 
@@ -23,6 +23,6 @@
 from .storage import get_orus_api_token
 
 _logger = logging.getLogger(__name__)
 
-__version__ = "1.7.0"
+__version__ = "1.7.1"
 __date__ = "2018-04-04"
@@ -28,5 +28,5 @@
 __date__ = "2018-04-04"
-__updated__ = "2024-01-17"
+__updated__ = "2024-10-10"
 
 
 def add_build_options(parser: argparse.ArgumentParser):
@@ -193,7 +193,8 @@
         debug_dockerfile = "Dockerfile.debug"
         call(["cp", dockerfile, debug_dockerfile])
 
-        with open(debug_dockerfile, "a") as myfile:
+        # expect Dockerfile to be in utf-8 too
+        with open(debug_dockerfile, "a", encoding="utf-8") as myfile:
             myfile.write("\n# Developer helpers\nENV PIP_CACHE_DIR=/var/cache/pip\n")
             if odoo_type in (
                 ODOO_7,
@@ -250,7 +251,7 @@
     pull = not nmspc.no_pull
     _logger.debug("Docker Pull %s", pull)
     full_tags = [repository] if nmspc.local else [f"{repository}:{tag}" for tag in tags]
-    with capture_docker_exit_code() as exit_code:
+    with CaptureDockerExitCode() as exit_code:
         if docker.buildx.is_installed():
             _logger.info("Using docker buildx")
             docker.buildx.build(
diff --git a/odoo_scripts/docker_build_clean.py b/odoo_scripts/docker_build_clean.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9idWlsZF9jbGVhbi5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9idWlsZF9jbGVhbi5weQ== 100644
--- a/odoo_scripts/docker_build_clean.py
+++ b/odoo_scripts/docker_build_clean.py
@@ -7,5 +7,6 @@
 import sys
 from typing import List, Optional
 
+from ._parsing import apply, basic_parser
 from .docker_build_copy import _PYTHON_PACKAGES_DIR
 from .list_modules import MODULES_LIST_FILE
@@ -10,6 +11,5 @@
 from .docker_build_copy import _PYTHON_PACKAGES_DIR
 from .list_modules import MODULES_LIST_FILE
-from .parsing import apply, basic_parser
 
 _logger = logging.getLogger(__name__)
 
diff --git a/odoo_scripts/docker_build_copy.py b/odoo_scripts/docker_build_copy.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9idWlsZF9jb3B5LnB5..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9idWlsZF9jb3B5LnB5 100644
--- a/odoo_scripts/docker_build_copy.py
+++ b/odoo_scripts/docker_build_copy.py
@@ -14,6 +14,6 @@
 
 import hglib
 
-from odoo_scripts.logpipe import LogPipe
+from odoo_scripts._logpipe import LogPipe
 
 from ._cvs import get_repo
@@ -18,4 +18,6 @@
 
 from ._cvs import get_repo
+from ._parsing import apply, basic_parser
+from ._toml import load
 from .config import Config
 from .list_modules import list_modules
@@ -20,4 +22,3 @@
 from .config import Config
 from .list_modules import list_modules
-from .parsing import apply, basic_parser
 from .storage import get_orus_api_token
@@ -23,5 +24,4 @@
 from .storage import get_orus_api_token
-from .toml import load
 
 _logger = logging.getLogger(__name__)
 
@@ -25,5 +25,5 @@
 
 _logger = logging.getLogger(__name__)
 
-__version__ = "2.6.1"
+__version__ = "2.6.2"
 __date__ = "2020-06-30"
@@ -29,5 +29,5 @@
 __date__ = "2020-06-30"
-__updated__ = "2024-09-16"
+__updated__ = "2024-10-10"
 
 _ODOO_MODULES_DIR = "odoo_modules"
 _PYTHON_PACKAGES_DIR = "python_packages"
@@ -137,7 +137,9 @@
     list_modules()
     if empty:
         # Add empty requirements
-        with open(os.path.join(_PYTHON_PACKAGES_DIR, "requirements"), "wt") as f:
+        with open(
+            os.path.join(_PYTHON_PACKAGES_DIR, "requirements"), "wt", encoding="utf-8"
+        ) as f:
             f.write("")
         return
 
@@ -218,7 +220,7 @@
     # Write requirements file
     # pip needs to be run with pip install -r <target>/requirements for the paths in the
     # file to be valid
-    with open(os.path.join(target, "requirements"), "wt") as f:
+    with open(os.path.join(target, "requirements"), "wt", encoding="utf-8") as f:
         f.write("\n".join(requirements))
 
     # copy setup files to odoo_setup
@@ -503,7 +505,7 @@
         with open(toml_file, "rb") as f:
             package_name = load(f).get("project", {}).get("name", "")
         if package_name:
-            _logger.debug(f"Package name {package_name} for {package}")
+            _logger.debug("Package name %s for %s", package_name, package)
             # try to find out version
             hg_root = run(["hg", "root"], cwd=package, capture_output=True)
             if not hg_root.returncode:
diff --git a/odoo_scripts/docker_build_doc.py b/odoo_scripts/docker_build_doc.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9idWlsZF9kb2MucHk=..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9idWlsZF9kb2MucHk= 100644
--- a/odoo_scripts/docker_build_doc.py
+++ b/odoo_scripts/docker_build_doc.py
@@ -7,5 +7,7 @@
 import sys
 from typing import List, Optional
 
+from ._docker_client import DockerClient, get_volumes
+from ._parsing import apply, basic_parser
 from .config import Config
 from .docker_build import add_build_options, build_local_image, get_build_options
@@ -10,7 +12,5 @@
 from .config import Config
 from .docker_build import add_build_options, build_local_image, get_build_options
-from .docker_client import DockerClient, get_volumes
-from .parsing import apply, basic_parser
 
 __version__ = "1.0.1"
 __date__ = "2022-11-10"
diff --git a/odoo_scripts/docker_dev_start.py b/odoo_scripts/docker_dev_start.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9kZXZfc3RhcnQucHk=..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9kZXZfc3RhcnQucHk= 100755
--- a/odoo_scripts/docker_dev_start.py
+++ b/odoo_scripts/docker_dev_start.py
@@ -22,6 +22,17 @@
 from psycopg2.errors import DuplicateDatabase, DuplicateObject
 from python_on_whales import docker
 
+from ._docker_client import (
+    CaptureDockerExitCode,
+    DockerClient,
+    Mount,
+    anthem_mounts,
+    modules_mount,
+    mount,
+    odoo_source_mounts,
+)
+from ._parsing import apply, basic_parser
+from ._toml import load
 from .config import (
     ODOO_7,
     ODOO_8,
@@ -35,15 +46,6 @@
     Config,
 )
 from .docker_build import add_build_options, build_local_image, get_build_options
-from .docker_client import (
-    DockerClient,
-    Mount,
-    anthem_mounts,
-    capture_docker_exit_code,
-    modules_mount,
-    mount,
-    odoo_source_mounts,
-)
 from .docker_flake8 import apply_flake8, parser_add_flake8_group
 from .docker_isort import apply_isort, parser_add_isort_group
 from .docker_postgresql import POSTGRES_PASSWORD, docker_run_postgresql
@@ -51,8 +53,6 @@
 from .docker_pylint import apply_pylint, parser_add_pylint_group
 from .docker_redis import DockerRedis
 from .docker_rednerd import DockerRednerd, get_default_redner_database
-from .parsing import apply, basic_parser
-from .toml import load
 
 # TODO auto create list of module
 
@@ -1015,7 +1015,7 @@
         inside_restore_filename = "/tmp/{}".format(restore_basename)
         docker.copy(restore_filename, (pg, inside_restore_filename))
         _logger.info("Restoring database %s", database)
-        with capture_docker_exit_code() as exit_code:
+        with CaptureDockerExitCode() as exit_code:
             pg.execute(
                 [
                     "pg_restore",
@@ -1086,7 +1086,7 @@
                 pre_sql_script_basename,
                 database,
             )
-            with capture_docker_exit_code() as exit_code:
+            with CaptureDockerExitCode() as exit_code:
                 pg.execute(
                     [
                         "psql",
@@ -1135,13 +1135,13 @@
         if start_postgresql:
             # uses the unix socket
             connect_kwargs.update(
-                dict(
-                    user="postgres",
-                    host=db_host,
-                    port="5432",
-                    password=POSTGRES_PASSWORD,
-                )
+                {
+                    "user": "postgres",
+                    "host": db_host,
+                    "port": "5432",
+                    "password": POSTGRES_PASSWORD,
+                }
             )
         else:
             loginname = pwd.getpwuid(os.getuid())[0]
             # use socket to create user
@@ -1144,8 +1144,8 @@
             )
         else:
             loginname = pwd.getpwuid(os.getuid())[0]
             # use socket to create user
-            connect_kwargs.update(dict(user=loginname))
+            connect_kwargs.update({"user": loginname})
         connection = connect(**connect_kwargs)
         connection.autocommit = True
         with connection.cursor() as cursor:
@@ -1525,7 +1525,7 @@
             arg = [nmspc.anthem_song, *arg]
 
     _logger.info("Starting Odoo")
-    with capture_docker_exit_code() as exit_code:
+    with CaptureDockerExitCode() as exit_code:
         docker.container.run(
             image,
             command=arg,
diff --git a/odoo_scripts/docker_flake8.py b/odoo_scripts/docker_flake8.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9mbGFrZTgucHk=..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9mbGFrZTgucHk= 100644
--- a/odoo_scripts/docker_flake8.py
+++ b/odoo_scripts/docker_flake8.py
@@ -7,6 +7,8 @@
 import sys
 from typing import List, Optional, Tuple
 
+from ._docker_client import DockerClient
+from ._parsing import apply, basic_parser
 from .config import (
     ODOO_7,
     ODOO_8,
@@ -21,8 +23,6 @@
     Config,
     Configuration,
 )
-from .docker_client import DockerClient
-from .parsing import apply, basic_parser
 
 __version__ = "1.5.0"
 __date__ = "2020-09-10"
@@ -76,7 +76,7 @@
         if uses_flake8(config):
             flake8(config)
         else:
-            _logger.warning(f"No flake8 for {config.odoo_type}, ignoring running it")
+            _logger.warning("No flake8 for %s, ignoring running it", config.odoo_type)
 
 
 def main(argv: Optional[List[str]] = None) -> int:
@@ -92,6 +92,6 @@
     """determine image to use based on odoo version"""
     if config.odoo_type in (ODOO_7, ODOO_8, ODOO_9, ODOO_10):
         return "xcgd/flake8", "2"
-    elif config.odoo_type in (ODOO_14, ODOO_15, ODOO_16):
+    if config.odoo_type in (ODOO_14, ODOO_15, ODOO_16):
         return config.local_image, config.local_tag
     # TODO vérifier ce qu’il faut faire en v11 et 13
@@ -96,6 +96,6 @@
         return config.local_image, config.local_tag
     # TODO vérifier ce qu’il faut faire en v11 et 13
-    elif config.odoo_type in (ODOO_11, ODOO_12, ODOO_13):
+    if config.odoo_type in (ODOO_11, ODOO_12, ODOO_13):
         return "xcgd/flake8", "3"
     return None
 
diff --git a/odoo_scripts/docker_isort.py b/odoo_scripts/docker_isort.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9pc29ydC5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9pc29ydC5weQ== 100644
--- a/odoo_scripts/docker_isort.py
+++ b/odoo_scripts/docker_isort.py
@@ -7,6 +7,8 @@
 import sys
 from typing import List, Optional
 
+from ._docker_client import DockerClient, get_volumes
+from ._parsing import apply, basic_parser
 from .config import (
     ODOO_7,
     ODOO_8,
@@ -21,8 +23,6 @@
     Config,
 )
 from .docker_build import add_build_options, build_local_image, get_build_options
-from .docker_client import DockerClient, get_volumes
-from .parsing import apply, basic_parser
 
 __version__ = "3.1.0"
 __date__ = "2020-09-10"
@@ -139,8 +139,7 @@
                 directory=getattr(namespace, _ISORT_DIR_DEST),
                 config=config,
             )
-        else:
-            _logger.warning(f"No isort for {config.odoo_type}, ignoring running it")
+        _logger.warning("No isort for %s, ignoring running it", config.odoo_type)
     return 0
 
 
diff --git a/odoo_scripts/docker_postgresql.py b/odoo_scripts/docker_postgresql.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9wb3N0Z3Jlc3FsLnB5..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9wb3N0Z3Jlc3FsLnB5 100644
--- a/odoo_scripts/docker_postgresql.py
+++ b/odoo_scripts/docker_postgresql.py
@@ -14,4 +14,6 @@
 from python_on_whales import Container, docker
 from python_on_whales.exceptions import NoSuchContainer
 
+from ._docker_client import DockerClient, Mount, mount
+from ._parsing import apply, basic_parser
 from .config import Config
@@ -17,6 +19,4 @@
 from .config import Config
-from .docker_client import DockerClient, Mount, mount
-from .parsing import apply, basic_parser
 
 _logger = logging.getLogger(__name__)
 
diff --git a/odoo_scripts/docker_prettier.py b/odoo_scripts/docker_prettier.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9wcmV0dGllci5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9wcmV0dGllci5weQ== 100644
--- a/odoo_scripts/docker_prettier.py
+++ b/odoo_scripts/docker_prettier.py
@@ -6,5 +6,7 @@
 import sys
 from typing import List, Optional
 
+from ._docker_client import DockerClient, get_volumes
+from ._parsing import apply, basic_parser
 from .config import ODOO_7, ODOO_8, ODOO_9, ODOO_10, Config
 from .docker_build import add_build_options, build_local_image, get_build_options
@@ -9,7 +11,5 @@
 from .config import ODOO_7, ODOO_8, ODOO_9, ODOO_10, Config
 from .docker_build import add_build_options, build_local_image, get_build_options
-from .docker_client import DockerClient, get_volumes
-from .parsing import apply, basic_parser
 
 __version__ = "1.1.1"
 __date__ = "2022-02-17"
diff --git a/odoo_scripts/docker_py3o.py b/odoo_scripts/docker_py3o.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9weTNvLnB5..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9weTNvLnB5 100644
--- a/odoo_scripts/docker_py3o.py
+++ b/odoo_scripts/docker_py3o.py
@@ -6,7 +6,7 @@
 
 from python_on_whales import docker
 
-from .docker_client import capture_docker_exit_code, find_container, stop_remove
+from ._docker_client import CaptureDockerExitCode, find_container, stop_remove
 
 _logger = logging.getLogger(__name__)
 
@@ -17,7 +17,7 @@
     fusion_version = "1.0.0"
     fusion_name = "py3o_fusion"
     fusion_image = f"{fusion_repository}:{fusion_version}"
-    with capture_docker_exit_code() as exit_code:
+    with CaptureDockerExitCode() as exit_code:
         _logger.debug("Pulling %s", fusion_repository)
         docker.image.pull(f"{fusion_repository}:{fusion_version}")
     if exit_code:
diff --git a/odoo_scripts/docker_pylint.py b/odoo_scripts/docker_pylint.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9weWxpbnQucHk=..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9weWxpbnQucHk= 100644
--- a/odoo_scripts/docker_pylint.py
+++ b/odoo_scripts/docker_pylint.py
@@ -6,5 +6,7 @@
 import sys
 from typing import Dict, List, Optional
 
+from ._docker_client import DockerClient, Mount, anthem_mounts, modules_mount, mount
+from ._parsing import apply, basic_parser
 from .config import Config, Configuration
 from .docker_build import add_build_options, build_local_image, get_build_options
@@ -9,7 +11,5 @@
 from .config import Config, Configuration
 from .docker_build import add_build_options, build_local_image, get_build_options
-from .docker_client import DockerClient, Mount, anthem_mounts, modules_mount, mount
-from .parsing import apply, basic_parser
 
 __version__ = "1.2.0"
 __date__ = "2022-01-26"
diff --git a/odoo_scripts/docker_redis.py b/odoo_scripts/docker_redis.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9yZWRpcy5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9yZWRpcy5weQ== 100644
--- a/odoo_scripts/docker_redis.py
+++ b/odoo_scripts/docker_redis.py
@@ -9,8 +9,8 @@
 import time
 from typing import List, Optional
 
-from .docker_client import DockerClient, DockerService, mount
-from .parsing import apply, basic_parser
+from ._docker_client import DockerClient, DockerService, mount
+from ._parsing import apply, basic_parser
 
 __version__ = "1.1.0"
 __date__ = "2023-03-20"
@@ -85,7 +85,9 @@
     def _start(self) -> None:
         super()._start()
         if os.path.exists("/proc/sys/vm/overcommit_memory"):
-            with open("/proc/sys/vm/overcommit_memory", "r") as f:
+            # if the file exists, it uses the default system encoding, so disable the
+            # error in pylint
+            with open("/proc/sys/vm/overcommit_memory", "r") as f:  # pylint: disable=unspecified-encoding
                 data = f.read()
                 if data == "0\n":
                     _logger.info(
@@ -99,7 +101,7 @@
 
 def __parser() -> argparse.ArgumentParser:
     program_version_message = f"%(prog)s {__version__} ({__updated__})"
-    program_short_description = __doc__.split(".")[0]
+    program_short_description = __doc__.split(".", maxsplit=1)[0]
     program_license = f"""{program_short_description}
 
       Created by Vincent Hatakeyama on {__date__}.
diff --git a/odoo_scripts/docker_rednerd.py b/odoo_scripts/docker_rednerd.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2RvY2tlcl9yZWRuZXJkLnB5..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2RvY2tlcl9yZWRuZXJkLnB5 100644
--- a/odoo_scripts/docker_rednerd.py
+++ b/odoo_scripts/docker_rednerd.py
@@ -18,4 +18,7 @@
 from psycopg2 import OperationalError
 from python_on_whales import docker
 
+from ._docker_client import DockerClient, DockerService, Mount, mount
+from ._parsing import apply, basic_parser
+from ._postgres import host_from_dsn, postgres_connect_args, postgres_connect_parser
 from .config import Config
@@ -21,7 +24,4 @@
 from .config import Config
-from .docker_client import DockerClient, DockerService, Mount, mount
-from .parsing import apply, basic_parser
-from .postgres import host_from_dsn, postgres_connect_args, postgres_connect_parser
 
 _logger = logging.getLogger(__name__)
 
@@ -133,13 +133,13 @@
         # base parameters for container creation
         ports: List[Tuple[str, str]] = []
         mounts: List[Mount] = []
-        create_param: Dict[str, Any] = dict(
-            name=self.name,
-            publish=ports,
-            envs=self.environment,
-            mounts=mounts,
-            networks="host",
-        )
+        create_param: Dict[str, Any] = {
+            "name": self.name,
+            "publish": ports,
+            "envs": self.environment,
+            "mounts": mounts,
+            "networks": "host",
+        }
         if self.db_is_socket_path:
             if self.db_host:
                 mounts.append(mount(self.db_host, self.db_host, "bind"))
@@ -307,7 +307,7 @@
 def __parser() -> argparse.ArgumentParser:
     """Return a parser for docker_rednerd"""
     program_version_message = f"%(prog)s {__version__} ({__updated__})"
-    program_short_description = __doc__.split(".")[0]
+    program_short_description = __doc__.split(".", maxsplit=1)[0]
     program_license = f"""{program_short_description}
 
       Created by Oury Balde on {__date__}.
diff --git a/odoo_scripts/import_base_import.py b/odoo_scripts/import_base_import.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2ltcG9ydF9iYXNlX2ltcG9ydC5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2ltcG9ydF9iYXNlX2ltcG9ydC5weQ== 100755
--- a/odoo_scripts/import_base_import.py
+++ b/odoo_scripts/import_base_import.py
@@ -11,8 +11,8 @@
 from requests_toolbelt import MultipartEncoder  # type: ignore[import]
 
 from . import odoo_connect_parser, odoo_login
-from .importing import add_importing_file_parsing, extract_model_lang_from_parsed
-from .parsing import apply
+from ._importing import add_importing_file_parsing, extract_model_lang_from_parsed
+from ._parsing import apply
 
 _logger = logging.getLogger(__name__)
 
diff --git a/odoo_scripts/import_jsonrpc.py b/odoo_scripts/import_jsonrpc.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2ltcG9ydF9qc29ucnBjLnB5..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2ltcG9ydF9qc29ucnBjLnB5 100644
--- a/odoo_scripts/import_jsonrpc.py
+++ b/odoo_scripts/import_jsonrpc.py
@@ -11,5 +11,6 @@
 from dateutil.parser import isoparse
 from odoorpc.error import RPCError  # type: ignore[import]
 
-from .importing import add_importing_file_parsing, extract_model_lang_from_parsed
+from ._importing import add_importing_file_parsing, extract_model_lang_from_parsed
+from ._parsing import apply
 from .odoo import odoo_connect_parser, odoo_login
@@ -15,5 +16,4 @@
 from .odoo import odoo_connect_parser, odoo_login
-from .parsing import apply
 
 _logger = logging.getLogger(__name__)
 
@@ -17,5 +17,5 @@
 
 _logger = logging.getLogger(__name__)
 
-__version__ = "1.2.2"
+__version__ = "1.3.0"
 __date__ = "2020-02-17"
@@ -21,5 +21,5 @@
 __date__ = "2020-02-17"
-__updated__ = "2022-12-16"
+__updated__ = "2024-10-10"
 
 
 def import_with_jsonrpc(
@@ -35,6 +35,7 @@
     extra_context: Optional[Dict[str, str]] = None,
     allow_import_errors: bool = False,
     allow_missing_refs: bool = False,
+    encoding: str = "utf-8",
 ) -> int:
     if extra_context is None:
         extra_context = {}
@@ -173,7 +174,7 @@
                     "Importing - reading options from yaml file %s",
                     yaml_filename,
                 )
-                with open(yaml_filename, "r") as stream:
+                with open(yaml_filename, "r", encoding="utf-8") as stream:
                     data = yaml.load(stream, Loader=yaml.BaseLoader)
                     import_yaml_cache[yaml_filename] = data if data is not None else {}
             else:
@@ -197,7 +198,7 @@
         wrote: List[int] = []
         import_errors: List[str] = []  # used with allow_import_errors
         this_file_delimiter = yaml_delimiter if yaml_delimiter else delimiter
-        with open(csv_file, "r") as csvfile:
+        with open(csv_file, "r", encoding=encoding) as csvfile:
             reader = csv.DictReader(
                 csvfile, delimiter=this_file_delimiter, quotechar='"'
             )
@@ -312,7 +313,7 @@
         _logger.info("%s: created %d, wrote %d", model, len(created), len(wrote))
         if import_errors:
             _logger.warning("%s: %d errors", model, len(import_errors))
-            with open(f"{csv_file}-errors.txt", "w") as error_f:
+            with open(f"{csv_file}-errors.txt", "w", encoding=encoding) as error_f:
                 error_f.write("\n".join(import_errors))
         if old_context:
             key_to_pop = []
diff --git a/odoo_scripts/import_sql.py b/odoo_scripts/import_sql.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2ltcG9ydF9zcWwucHk=..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2ltcG9ydF9zcWwucHk= 100644
--- a/odoo_scripts/import_sql.py
+++ b/odoo_scripts/import_sql.py
@@ -6,11 +6,11 @@
 import sys
 from typing import Dict, List, Optional
 
-from .importing import add_importing_file_parsing, extract_model_table_from_parsed
-from .parsing import apply, basic_parser
-from .postgres import postgres_apply, postgres_connect_parser
+from ._importing import add_importing_file_parsing, extract_model_table_from_parsed
+from ._parsing import apply, basic_parser
+from ._postgres import postgres_apply, postgres_connect_parser
 
 _logger = logging.getLogger(__name__)
 
 __version__ = "1.2.0"
 __date__ = "2020-06-08"
@@ -12,9 +12,9 @@
 
 _logger = logging.getLogger(__name__)
 
 __version__ = "1.2.0"
 __date__ = "2020-06-08"
-__updated__ = "2023-12-06"
+__updated__ = "2024-10-10"
 
 
 def _execute(cursor, query, parameters):
@@ -35,7 +35,7 @@
 
 
 def sql_import(
-    connection, table_filenames: List[Dict[str, str]], delimiter: str
+    connection, table_filenames: List[Dict[str, str]], delimiter: str, encoding: str
 ) -> None:
     # quick check to fail quicker
     with connection.cursor() as cur:
@@ -51,7 +51,7 @@
             _logger.info("Importing - %s in %s (table %s)", csv_file, model, table)
             has_date_init = _column_exists(cur, "ir_model_data", "date_init")
             has_date_update = _column_exists(cur, "ir_model_data", "date_update")
-            with open(csv_file, "r") as file:
+            with open(csv_file, "r", encoding=encoding) as file:
                 reader = csv.DictReader(file, delimiter=delimiter, quotechar='"')
                 headers_check = False
                 created = written = 0
@@ -216,6 +216,9 @@
     parser.add_argument(
         "--delimiter", help="CSV delimiter [default: %(default)s]", default=","
     )
+    parser.add_argument(
+        "--encoding", help="CSV encoding [default: %(default)s]", default="utf-8"
+    )
 
     nmspc = parser.parse_args(argv)
     apply(nmspc)
@@ -225,6 +228,7 @@
         connection=conn,
         table_filenames=extract_model_table_from_parsed(nmspc),
         delimiter=nmspc.delimiter,
+        encoding=nmspc.encoding,
     )
     conn.close()
     return 0
diff --git a/odoo_scripts/list_modules.py b/odoo_scripts/list_modules.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL2xpc3RfbW9kdWxlcy5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL2xpc3RfbW9kdWxlcy5weQ== 100644
--- a/odoo_scripts/list_modules.py
+++ b/odoo_scripts/list_modules.py
@@ -5,4 +5,5 @@
 import sys
 from typing import List, Optional
 
+from ._parsing import apply, basic_parser
 from .config import Config
@@ -8,5 +9,4 @@
 from .config import Config
-from .parsing import apply, basic_parser
 
 MODULES_LIST_FILE = "odoo_modules_list"
 
@@ -54,7 +54,7 @@
     filename is provided."""
     output = ",".join(Config().module_list)
     if filename:
-        with open(filename, "w") as f:
+        with open(filename, "w", encoding="utf-8") as f:
             f.write(output)
     else:
         print(output)
diff --git a/odoo_scripts/odoo.py b/odoo_scripts/odoo.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL29kb28ucHk=..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL29kb28ucHk= 100644
--- a/odoo_scripts/odoo.py
+++ b/odoo_scripts/odoo.py
@@ -7,7 +7,7 @@
 
 import odoorpc  # type: ignore[import]
 
-from .parsing import basic_parser
+from ._parsing import basic_parser
 
 _logger = logging.getLogger(__name__)
 
diff --git a/odoo_scripts/odoo_conf_inject_env_var.py b/odoo_scripts/odoo_conf_inject_env_var.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL29kb29fY29uZl9pbmplY3RfZW52X3Zhci5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL29kb29fY29uZl9pbmplY3RfZW52X3Zhci5weQ== 100644
--- a/odoo_scripts/odoo_conf_inject_env_var.py
+++ b/odoo_scripts/odoo_conf_inject_env_var.py
@@ -7,7 +7,7 @@
 from configparser import ConfigParser
 from typing import Collection, Optional, Sequence, Tuple
 
-from .parsing import apply, basic_parser
+from ._parsing import apply, basic_parser
 
 __version__ = "1.0.1"
 __date__ = "2022-02-22"
diff --git a/odoo_scripts/storage.py b/odoo_scripts/storage.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL3N0b3JhZ2UucHk=..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL3N0b3JhZ2UucHk= 100644
--- a/odoo_scripts/storage.py
+++ b/odoo_scripts/storage.py
@@ -8,5 +8,5 @@
 try:
     import secretstorage
 
-    __secretstorage_available = True
+    __SECRETSTORAGE_AVAILABLE = True
 except ModuleNotFoundError:
@@ -12,5 +12,5 @@
 except ModuleNotFoundError:
-    __secretstorage_available = False
+    __SECRETSTORAGE_AVAILABLE = False
 
 
 __version__ = "1.0.0"
@@ -29,7 +29,7 @@
     """Retrieve Orus API token from secret service.
 
     :return: None if there is no token"""
-    if not __secretstorage_available:
+    if not __SECRETSTORAGE_AVAILABLE:
         return None
     with closing(secretstorage.dbus_init()) as conn:
         collection = secretstorage.get_default_collection(conn)
diff --git a/odoo_scripts/update_duplicate_sources.py b/odoo_scripts/update_duplicate_sources.py
index 4c06cab4ed4c92fc946894d42b3fe5a8768cd4cf_b2Rvb19zY3JpcHRzL3VwZGF0ZV9kdXBsaWNhdGVfc291cmNlcy5weQ==..e017508c34f0554fae435e6714493cd75fda42f3_b2Rvb19zY3JpcHRzL3VwZGF0ZV9kdXBsaWNhdGVfc291cmNlcy5weQ== 100644
--- a/odoo_scripts/update_duplicate_sources.py
+++ b/odoo_scripts/update_duplicate_sources.py
@@ -11,5 +11,6 @@
 from typing import List, Optional
 
 from ._cvs import Repo, clone_from, get_repo
+from ._parsing import apply, basic_parser
 from .config import Config, Configuration
 from .docker_build_copy import _find_cvs_parent
@@ -14,6 +15,5 @@
 from .config import Config, Configuration
 from .docker_build_copy import _find_cvs_parent
-from .parsing import apply, basic_parser
 
 _logger = logging.getLogger(__name__)