From 5cf8f448edb4d73a62a4cdad665eed910ef5ef17 Mon Sep 17 00:00:00 2001 From: Ralph Mayola Date: Sun, 23 Aug 2026 18:33:35 +0200 Subject: [PATCH] Un module plat par plateforme, pour les trois frontieres interface/cocoa/overlay.py etait un sous-paquet quand systeme/macos.py et moteur/mlx.py sont des modules plats. Rien n'expliquait la difference : la couche Windows aurait eu a deviner lequel des deux motifs imiter, et aurait reproduit l'incoherence dans un sens ou dans l'autre. interface/cocoa.py est donc mis a plat, contenu inchange (diff vide), et la regle est ecrite dans interface/__init__.py : un module plat par plateforme, sous-paquet seulement le jour ou une plateforme exige plusieurs fichiers. 105 tests inchanges. Co-Authored-By: Claude Opus 5 (1M context) --- interface/__init__.py | 11 +++++++++-- interface/{cocoa/overlay.py => cocoa.py} | 0 interface/cocoa/__init__.py | 0 3 files changed, 9 insertions(+), 2 deletions(-) rename interface/{cocoa/overlay.py => cocoa.py} (100%) delete mode 100644 interface/cocoa/__init__.py diff --git a/interface/__init__.py b/interface/__init__.py index 5f6ca76..4ad0c5e 100644 --- a/interface/__init__.py +++ b/interface/__init__.py @@ -1,4 +1,11 @@ -"""Choisit l'implémentation d'overlay selon la plateforme.""" +"""Choisit l'implémentation d'overlay selon la plateforme. + +Convention des trois frontières (`moteur/`, `interface/`, `systeme/`) : **un module +plat par plateforme** — `interface/cocoa.py`, `systeme/macos.py`, `moteur/mlx.py`. +On ne passe à un sous-paquet que le jour où une plateforme exige réellement +plusieurs fichiers. Sans cette règle écrite, la couche Windows aurait eu à deviner +lequel des deux motifs imiter. +""" import sys @@ -6,6 +13,6 @@ def classe_overlay_pour(plateforme=None): """Rend la CLASSE d'overlay (pas une instance : Cocoa exige `alloc().init()`).""" plateforme = plateforme or sys.platform if plateforme.startswith("darwin"): - from interface.cocoa.overlay import PulseWindow + from interface.cocoa import PulseWindow return PulseWindow raise NotImplementedError(f"Aucune interface pour : {plateforme}") diff --git a/interface/cocoa/overlay.py b/interface/cocoa.py similarity index 100% rename from interface/cocoa/overlay.py rename to interface/cocoa.py diff --git a/interface/cocoa/__init__.py b/interface/cocoa/__init__.py deleted file mode 100644 index e69de29..0000000