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) <noreply@anthropic.com>
19 lines
802 B
Python
19 lines
802 B
Python
"""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
|
|
|
|
|
|
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 import PulseWindow
|
|
return PulseWindow
|
|
raise NotImplementedError(f"Aucune interface pour : {plateforme}")
|